Měnit nastavení portu lze i za běhu, ale žádný z dosavadních modulů v knihovně nic takového nedělá. nejlepší cestou bude vytvoření upraveného modulu na bázi modulu
Com2TCP. Přidat mu jeden parametr, tj. parametr pro druhou paritu (takže budete mít např. parametry
Parity a
ParityMbus) a upravíme stávající kód tak, že mezi řádky:
trap_IoMemReadN ((arg1&0xFFFF)+0x140000,(unsigned char*)(ukdmbuffer),length);
trap_PipeWriteN(ComNr*2,(unsigned char*)ukdmbuffer,length);
vložíme test prvniho znaku (tj. typu zpravy) a podle toho nastavíme parametry komunikačního kanálu. Výsledný kód bude vypadat takto:
trap_IoMemReadN ((arg1&0xFFFF)+0x140000,(unsigned char*)(ukdmbuffer),length);
// test, jde-li o klasickou M-bus zpravu
if (((unsigned char*)ukdmbuffer)[0] == 0x68)
trap_PortInit(ComNr, Baud, ParityMbus);
else trap_PortInit(ComNr, Baud, Parity);
trap_PipeWriteN(ComNr*2,(unsigned char*)ukdmbuffer,length);