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