WorkMan HVS - Protocol DIP

From WorkManSoft Wiki
Revision as of 14:55, 28 August 2013 by Frla (talk | contribs) (Created page with "== About == === History === == Transport == Hårdvara Anslutningen till hotellservern sker via en full seriekabel (se koppling nedan). Serieporten är en standard 9 polig ...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

About

History

Transport

Hårdvara Anslutningen till hotellservern sker via en full seriekabel (se koppling nedan). Serieporten är en standard 9 polig Dsub hane á la PC. Kommunikationen sker med 9600 Baud, 1 startbit, 8 databitar, 1 stopbit, ingen paritet, ingen handskakning.


Protokoll Innan något paket kan skickas mellan hotellservern och hotellsystemet måste länken mellan dessa ha statusen ”alive”. När hotellservern har startat upp aktiverar den signalen DTR och RTS för att tala om för hotellsystemet att den är igång för kommunikation. Hotellsystemet är igång skall då svara på samma sätt (aktivera RTS och DTR).

För att hotellservern skall skicka något måste DCD, DSR och CTS vara aktiva samtidigt, alla tre signaler behandlas på samma sätt av mjukvaran. På samma sätt skall hotellsystemet göra.

Statusen ”alive” skall inte användas som någon form av handskakning utan enbart indikera att systemen är igång och beredda på att ta emot och skicka paket.

Är länken inte ”alive” skall hotellsystemet buffra information så att den kan skickas när länken blir ”alive” igen.

Formatet på alla paket oavsett riktning skall se ut på följande sätt.

STX CMD ARGS … ETX CSUM (Hi) CSUM (Lo) 1 byte 1 byte ?? bytes 1 byte 1 byte 1 byte

Paketet börjar med tecknet STX (start of text) följt av ett tecken vi kallar CMD (command). Detta tecken (CMD) anger vilken funktion som önskas och därmed hur argumenten (ARGS) skall tolkas. Möjliga tecken på CMD finns i tabellen längre fram. ARGS längd varierar beroende på CMD. Paketet avslutas sedan med tecknet ETX följt av en checksumma (CSUM).

När ett paket är mottaget av mottagaren skall denna skicka en ACK eller NAK för att bekräfta att paket är mottaget korrekt eller inte. Får sändande sida svaret NAK skall paketet skickas en gång till, uteblir svaret ACK/NAK skall sändande skicka paketet igen efter 3 sekunder. Ett och samma paket får bara skickas 4 gånger, därefter skall det kasseras för att förhindra låsning. Om båda sidorna börjar skicka ett paket samtidigt kan det inträffa att en av sidorna har hunnit motta ett helt paket innan utgående paket är skickat. Bekräftelsen med ACK och NAK får då vänta till paketet är skickat klart. (ACK och NAK bekräftelse får inte skickas i ett paket).

Värdena på specialtecken i hexadecimal form. STX = 02 h ETX = 03 h NAK = 15 h ACK= 06 h

Checksumman CSUM (Hi) och CSUM (Lo) beräknas på fäljande sätt. CSUM = STX + CMD + ARGS + ETX (Modulo 100 h) CSUM (Hi) = Hexadecimal representation av de översta 4 bitarna i CSUM CSUM (Lo) = Hexadecimal representation av de lägsta 4 bitarna i CSUM

Exempel av beräkning av ett paket där CMD är tecknet 3 och ARGS är två A. CSUM = STX + ”3” + ”AA” + ETX = 02h+33h+41h+41h+ 03h mod 100h = BAh mod 100h CSUM (Hi) = ”B” = 42h CSUM (Lo) = ”A” = 41h

Paketet blir alltså; Text STX ”3” ”AA” ETX ”B” ”8” Hexadecimalt 02 33 41 41 03 42 41

Exempel på annat paket; Text STX ”4” ”EEEE” ETX ”4” ”D” Hexadecimalt 02 34 45 45 45 45 03 34 44

Applikationsprotokoll De olika funktionerna som man kan skicka och ta emot från hotellservern finns i tabellen nedan. Observera att några skickas åt båda hållen.

CMD Riktning Funktion I Hotell -> Server Check In O Hotell -> Server Check Out E Hotell -> Server Extension S Hotell <- Server Room Status P Hotell <- Server Call Charge Posting T Hotell <-> Server Time and date sync H Hotell <- Server Health

Nedan kommer en kort förklaring till de olika funktionerna och vilka argumenten är till dessa. Argument som inte fyller ut sina bytes skall paddas med mellanslag i slutet om inget annat anges. Check In Checkar in en gäst på rummet. Det är bara en gäst som kan vara incheckad samtidigt per rum. Vid incheckning sätts namnet på anknytningen till gästens namn, telefonen öppnas för utgående samtal.

CMD ARGS … I ROOM LANGUAGE NAME 1 byte 8 bytes 2 bytes 16 bytes

CMD Bokstaven I ROOM Numret på rummet. LANGUAGE Språket som skall användas mot denna hotellgäst. DL = Default Language (Språket väljs i hotellservern) EA = English/American SW = Swedish NO = Norway DK = Danish FI = Finnish SP = Spanish GE = German FR = French IT = Italian AB = Arabic JP = Japanese NAME Namnet på hotellgästen. Å=C5h Ä=C4h Ö=D6h Ü=DCh å=E5h ä=E4h ö=F6h ü=FCh é=E9h è=E8h

Check Out Checkar ut gästen från rummet. Telefonen låses för utgående samtal, namnet på anknytningen sätts till samma som rummets namn/nummer.

CMD ARGS … O ROOM 1 byte 8 bytes

CMD Bokstaven O ROOM Numret på rummet. Extension Låser eller låser upp anknytningen för utgående samtal.

CMD ARGS … E ROOM STATUS 1 byte 8 bytes 1 byte

CMD Bokstaven E ROOM Numret på rummet. STATUS Parameter som talar om om anknytningen får ringa externa samtal. L = Lock (Går inte att ringa) U = Unlock (Går att ringa) Room Status Meddelar att städerskan eller någon annan har rapporterat en statuskod från rummet.

CMD ARGS … S ROOM STATUS 1 byte 8 bytes 1 byte

CMD Bokstaven S ROOM Numret på rummet. STATUS Siffran (0-9) som inmatades av städerskan. Innebörden av siffran bestäms av hotellapplikationen. Exempel 1 = Dirty/Vacant (DIV) 2 = Dirty/Occupied (DIO) 3 = Clean/Vacant (CLV) 4 = Clean/Occupied (CLO) 5 = Inspected/Vacant (ISV) 6 = Inspected/Occupied (ISO) 7=? 8=? 9=?

Call Charge Posting Detta paket skickas så fort ett samtal avslutas. Paketet skickas oberoende om gästen är incheckad eller ej.

CMD ARGS … P ROOM DATE TIME DURATION DIALED COST TEXT 1 byte 8 bytes 8 bytes 6 bytes 6 bytes 20 bytes 6 bytes 16 bytes

CMD Bokstaven P ROOM Numret på rummet. DATE Datum då samtalet påbörjades. Format YYYYMMDD TIME Klockslag då samtalet påbörjades. Format HHMMSS DURATION Längden på samtalet i sekunder. (12 sekunder skickas som 000012) DIALED Numret som hotellgästen slog på telefonen. COST En statistisk beräknad kostand för samtalet i lägsta valuta. Fältet innehåller inga decimaltecken eller komma. (123 kr och 50 öre skickas som 012350) TEXT Namnet på området som gästen ringde till.

Följande två paket skall förberedas i hotellsystemet så att dessa inte ställer till problem när de implementeras i hotellservern.

Time and date sync (Ej implementerad ännu) Detta paket används för att synkronisera hotellserverns klocka mot hotellsystemet. När hotellservern vill kontrollera sin klocka skickas ett ”Time and date sync” paket till hotellsystemet. Hotellsystemet skall då svara med ett ”Time and date sync paket” som hotellservern ställer sin klocka mot.

CMD ARGS … T DATE TIME 1 byte 8 bytes 6 bytes

CMD Bokstaven T DATE Aktuellt datum från hotellserver resp hotellsystem. Format YYYYMMDD TIME Aktuellt klockslag från hotellserver resp hotellsystem. Format HHMMSS Health (Ej implementerad ännu) Paketet skickas till hotellsystemet så fort hälsan/statusen på hotellservern ändras samt minst var 5’e minut. Om hotellsystemet inte får detta paket skall hotellsystemet påkalla hjälp om att kommunikationen mellan hotellsystemet och hotellservern inte fungerar. Paketet används för att detektera felaktigheter i systemet.

CMD ARGS … H STATUS 1 byte 1 byte

CMD Bokstaven H STATUS Statusen på hotellserven. 0 = Allt är ok (Skickas var 5’e minut när allt är OK) 1 = Fel typ 1 2 = Fel typ 2 . 9 = Fel typ 9