[ mishaveseli @ 19.09.2008. 19:28 ] @
U protokolu koji proizvodjaci fisk.kase intracom cr 401 daju programerima pise doslovce ovako: "kontrola zbira se preracunava i dodaje na podatke(HIGH BYTE prvo, onda LOW BYTE)". Radio sam software za CT one, galeb fp 550, wincor/nixdorf i nijedan od nacina preracunavanja kontrolnog zbira koji se kod njih primenjuje ne moze da mi da odgovarajucu check-sumu.
Ako neko ima iskustva u programiranju ove kase ili ima bilo kakvu ideju molio bih ga da mi pomogne.
Za ostale evo primera kako treba da izgleda string sa osencenim check sumama koje treba da se dobiju.

Primer 1.
7E 5C 0F 27 50 45 52 49 43 41 00 00 00 00 00 00
00 00 11 00 C4 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 83 1B 7F

Primer 2.
7E 5C 0F 27 54 45 53 54 31 00 00 00 00 00 00 00
00 00 01 00 C4 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 0C C8 7F


7E je pocetak i 7F je kraj i po iskustvima iz prethodnih kasa ne bi trebali da se uzimaju u obzir kod preracunavanja kontrolne sume.

Unapred hvala.
[ birosys @ 20.09.2008. 14:45 ] @
U pravu si. Malo je konfuzno njihovo objasnjenje.
Iako sam radio dosta komunikacionih protokola za FK, nije mi jasno sta su hteli da kazu.
Oni kazu da se protokol zasniva na specifikaciji HDLC/PPP (RFC 1662), pa ti mozda njegova dokumentacija pomogne.

Izvoli link: http://www.faqs.org/rfcs/rfc1662.html

Javi sta si uradio.
[ mishaveseli @ 21.09.2008. 01:20 ] @
Za sada sam provalio LOW BYTE, koji je cist ostatak zbira svih karaktera podeljen sa 256 (zbir % 256), ostaje mi jos HI BYTE koji nije int(zbir / 256) na zalost. Probacu jos pa cemo videti
[ nikgor86 @ 07.09.2009. 18:12 ] @
Da li je neko možda ipak uspeo da pronađe kompletan checksum za ovu kasu?

Ako jeste, molim odgovor što pre. Hvala
[ Mihajlo Cvetanović @ 07.09.2009. 22:06 ] @
Što ne pitaš proizvođača kase?
[ nikgor86 @ 07.09.2009. 22:52 ] @
Pitao sam. Ovi iz inostranstva ne odgovaraju već nedelju dana na e-mail a naši lokalni kažu da ne znaju i da jedini programer koj je pisao program za tu kasu ne radi više kod njih već je prešao u drugu firmu.

Uzgred ovde je fajl sa jos sređenih podataka koje sam uspeo da izvučem iz kase.

[Ovu poruku je menjao nikgor86 dana 08.09.2009. u 00:39 GMT+1]
[ Mihajlo Cvetanović @ 08.09.2009. 07:23 ] @
Nije mi jasno šta predstavljaju podaci u priloženom fajlu, ali nema veze, što ne nazoveš strance telefonom. To bi ubrzalo stvar.
[ nikgor86 @ 08.09.2009. 10:32 ] @
Citat:
mishaveseli
Primer 1.
7E 5C 0F 27 50 45 52 49 43 41 00 00 00 00 00 00
00 00 11 00 C4 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 83 1B 7F


Citat:
mishaveseli: Za sada sam provalio LOW BYTE, koji je cist ostatak zbira svih karaktera podeljen sa 256 (zbir % 256), ostaje mi jos HI BYTE koji nije int(zbir / 256) na zalost. Probacu jos pa cemo videti :)


Što znači da nam je samo HI BYTE (83 iz primera 1) nepoznato kako se izračunava.

Podaci koje sam postavio su: sumD je decimalni prikaz sume svih podataka u paketu (bez prvog i poslednjeg), sumH heksadecimalni, sumB binarni; chkD predstavlja decimalni HI BYTE, chkH heksadecimalni a chkB binarni.
Ostaje samo da se pronađe odgovarajući algoritam za izračunavanje HI BYTE-a kontrolnog zbria od ukupne sume.

sumD sumH sumB
chkD chkH chkB

00343 0157 0001 0101 0111
00046 002E 0000 0010 1110

00344 0158 0001 0101 1000
00041 0029 0000 0010 1001

00345 0159 0001 0101 1001
00048 0030 0000 0011 0000

*
*
*
[ Mihajlo Cvetanović @ 08.09.2009. 10:53 ] @
Nisi morao ponovo da kačiš isti fajl, prethodni je i dalje dostupan. Ne verujem da HI BYTE checksum zavisi isključivo od sume bajtova, nema smisla kad su već potrošili čitav LO BYTE za to. Verovatno zavisi i od položaja tih bajtova, što znači da priloženi fajl nije od neke koristi. Dobar checksum mora da detektuje dodavanje nula u niz i zamenu mesta para bajtova. Pokušao sam na internetu da pronađem neki od standardnih čeksuma veličine 16 bitova, gde su nižih 8 bitova obična suma, a viših 8 nešto drugo, ali nisam uspeo. Mislim da je najefikasnije da zoveš strance telefonom, ako se već ne javljaju na e-mail.
[ ch0my77 @ 25.01.2010. 22:05 ] @
Da li je neko uspeo da pronadje algoritam za izrachunavanje kontrolne sume. Molim Vas jako mi je potrebno.
[ nikgor86 @ 25.01.2010. 23:12 ] @
Ne, nažalost :( Ako kojim slučajem neko uspe, neka postavi :)
[ ch0my77 @ 26.01.2010. 12:21 ] @
Pada mi na pamet da disasembliram Commander (program koji se dobija uz kasu za sinhronizaciju artikala). Jel zna neko dobre alate za to? Mogao bih da nadjem adresu com porta pa da vidim shta radi pre nego shto shalje podatke na port.
[ artik @ 27.01.2010. 13:19 ] @
Mozda bi ti laksa varijanta bila da napravis virtuelni seriski port ili skines sa neta vec gotov, pomocu njega mozes da posaljes programu sta hoces i da vidis sta on salje nazat. A sto se tice disasemblera probaj da nadjes IDA Pro Advanced , al i debuger bi mozda pomogao probaj sa OllyDbg.