Linux seriovy port
Jaroslav Buchta
jaroslav.buchta na hascomp.cz
Pondělí Březen 30 15:16:08 CEST 2020
Takze v principu muzou 2 aplikace otevrit jeden port zaroven?
Ono to tim ale asi nebude, ta druha aplikace pouziva komunikaci jen v
pripade, ze dela reset modemu a to je velmi sporadicky - ta funguje
stylem open-w-r-close. Podle logu casy nekoreluji s chybami.
Jeste uplne nechapu API funkci select, ta skonci pri prichodu jednoho a
vice znaku nebo zadanem timeoutu? Kdy vznikne chyba EINTR? A rset je
nejake bitove pole se seznamem periferii na ktere se ceka?
Pouzita je takto:
while ((s_rc = select(ctx->s+1, rset, NULL, NULL, tv)) == -1) {
if (errno == EINTR) {
if (ctx->debug) {
fprintf(stderr, "A non blocked signal was caught\n");
}
/* Necessary after an error */
FD_ZERO(rset);
FD_SET(ctx->s, rset);
} else {
return -1;
}
}
if (s_rc == 0) {
/* Timeout */
errno = ETIMEDOUT;
return -1;
}
#endif
return s_rc;
Dne 30.03.2020 v 14:29 Ladislav Vaiz napsal(a):
> Hádal bych, že problém bude čtení z portu - data dostane vždy právě
> jedna aplikace a to bude ten problém. Lepší by bylo udělat nějakou
> proxy, která bude znát Modbus.
>
> L.
>
> Dne 30.03.2020 v 14:20 Jaroslav Buchta napsal(a):
>> Takova zasadni otazka - lze otevrit port napr. /dev/ttyS1 zaroven z
>> vice aplikaci? Predpokladam, ze ne ale chova se to divne jako by ano
>> (je to embeded system na ARM) Zase ale vzhledem k tomu, ze se
>> rychlost a dalsi parametry nastavuji az po otevreni, tak mi neni
>> jasne, kdy vlastne k fyzickemu otevreni HW portu dojde?
>>
>> Je to modbus-rtu komunikace jako master, pouzivaji ji 2 aplikace,
>> jedna velmi sporadicky a druha by mela mit port otevreny stale (tu
>> momentalne ladim, ta druha je trosku black box). Zda se mi divne, ze
>> by to fungovalo, kazdopadne ta hlavni aplikace s castou komunikaci
>> nekdy hlasi chybu - bud CRC nebo neshoda cisla funkce, prijata data v
>> bufferu nedavaji smysl, jedine, co me jeste napada, ze by si do
>> komunikace nejak vzajemne kecaly...
>
>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
Další informace o konferenci Hw-list