Modul sk.ipesoft.sgcom.hdlc obsahuje implementáciu protokolu IEC62056-46 HDLC. HDLC primárne zabezpečuje spojovo orientovanú komunikáciu po sériovej zbernici podobne, ako TCP/IP nad Ethernet-om alebo WiFi, aj keď neobsahuje toľko sofistikovaných rozšírení. Použitie tejto implementácie HDLC protokolu pred vstavanou podporou v jDLMS knižnici je kvôli tomu, že umožňuje posielať aj dlhé správy, ktoré sa nezmestia do jedného HDLC Information Frame-u. Taktiež je ho možné lepšie ladiť, vďaka konfigurovateľnému a podrobnému výstupu do LOG-u.
Hlavnou triedou modulu je HdlcLayer, ktorá udržiava stav komunikácie a riadi prijímanie a zasielanie frame-ov. Je implementovaná tak, že dokáže operovať nad ľubovoľnou fyzickou vrstvou, ktorej rozhraním sú InputStream, OutputStream a setTimeout, čiže nad TCP/IP socketom, sériovou linkou aj DatagramSocketWrapper-om.
Narozdiel od iných komunikačných vrstiev sa v HdlcLayer nenachádza čítacia programová slučka vykonávaná v samostatnom vlákne, ako je tomu napr. v module Serial alebo Udp. Je to z toho dôvodu, že komunikácia je prísne half-duplexná – v každom okamihu komunikácie je jednoznačne zrejmé, ktorý z partnerov čaká a ktorý môže poslať frame.
Pridať komentár