Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

Welke encoding is dit bij serieel ontvangst

Pagina: 1
Acties:

  • voodoo202
  • Registratie: Januari 2002
  • Laatst online: 04-08 20:29
Ik heb een weegschaal gekocht welke op een USB poort aangesloten kan worden. Een MBSC Ultra u-2
Deze maakt gebruik van een Prolific USB-to-Serial comm poort. Alleen het programma wat er bij komt werkt niet onder windows vista en nieuwer. Nu ben ik begonnen met een Serial port monitor, om te kijken welke data er precies verstuurt wordt.

Het programma stuurt maar 2 dingen. ".GM." dit geeft het merk weer. En ".GS." dit geeft het type weer.

Als je op de weegschaal op de knop Send drukt komt er in Windows XP op de positie waar de cursor zich op dat moment bevindt het gewicht te staan. Alleen dit komt binnen door middel van zeer onbekende tekens voor mij. Weet iemand hoe ik onderstaand moet vertalen. De eerste 5 regels zouden ieder apart het resultaat 0.000 moeten geven de volgende 3 regels zouden ieder apart 0.334 moeten geven

<STX>uYxssc}ccc<EOT>5<ETX>
<STX>Q}\WWGYGGG<ETX>M<ETX>
<STX>øÔõþþîðîîî<HT>e<ETX>


(HEX waarde)

02B39FBEB5B5A5BBA5A5A506C903
02E2CEEFE4E4F4EAF4F4F4092103


0.000


<STX>@lMFFVHUUR<ETX><US><ETX>
<STX>Sryyiwjjm<EOT>W<ETX>
<STX>s_~uue{ffa<EOT>G<ETX>


0.334

  • Feanathiel
  • Registratie: Juni 2007
  • Niet online

Feanathiel

Cup<Coffee>

Wellicht dat je wat aan dit draadje hebt?

Een kopietje voor wanneer de link down gaat:

Python:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def decodeData(data):

    output = []
    lookup = [6,7,4,5,2,3,0,1,11,11,11,11,11,11,8,9]

    #XOR and mask all the values
    for x in range(4,11) :
        output.append(  ( ord(data[x]) ^ ord(data[1]) ) & 0x0f )

    #use lookup to change to decimal
    value=0
    print "Converted: ",
    for x in range(7):
        digit = lookup[output[x]]
        print hex(digit) + " ",
        value += digit * 10**(6-x)
    print ""

    return value

[ Voor 69% gewijzigd door Feanathiel op 13-04-2013 23:58 ]


  • Matis
  • Registratie: Januari 2007
  • Laatst online: 20:57

Matis

Rubber Rocket

Zoals de link van Feanathiel al aangeeft, lijkt de baudrate fout. Normaliter is deze 9600 of 15200.
Daarnaast kun je ook nog kijken naar de bitcount en pariteit. Normaal is dat 8N1, maar misschien heb je iets exotisch te pakken.
De datasheet van jouw hardware zal dat vast wel vertellen.
Ook is het handig om te checken of het uart of usart is.

If money talks then I'm a mime
If time is money then I'm out of time


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 23-11 13:12
Matis schreef op maandag 15 april 2013 @ 07:24:
Zoals de link van Feanathiel al aangeeft, lijkt de baudrate fout.
Onwaarschijnlijk aangezien de STX en ETX wel kloppen en de checksum in het bericht ook.
Het zou natuurlijk prima kunnen dat er helemaal geen encoding is, maar dat het gewoon een binair protocol is.
Dat is het ook idd.

[ Voor 22% gewijzigd door farlane op 15-04-2013 21:20 ]

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Het zou natuurlijk prima kunnen dat er helemaal geen encoding is, maar dat het gewoon een binair protocol is.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 22-11 16:29
Het draadje geeft toch al aardig de oplossing?
14 bytes (1-14)
byte 1, 0x02 = STX
byte 2, xor masker
byte 3 tm 11, zie hieronder
byte 12+13 is gelijk aan de som van byte 2 tm 11 (ruw, dus niet met xor)
byte 14, 0x03 = ETX

byte 3 tm 11: xor byte 2 xor 38 (0x0010 0110) dan krijg je ascii codes: (laatste zelf uitgepuzzeld)
10 => LF
32 => spatie
43 => +
46 => .
48 => 0
etc
57 => 9

byte 3: +
byte 4: LF
byte 5 tm 11: meting

De 2 gegeven HEX-regels geven dan:
code:
1
2
+  0.000
+  0.000

Give me more hex :)

PS: Nog een draadje, misschien vergelijkbaar?

[ Voor 134% gewijzigd door Bolukan op 16-04-2013 05:41 . Reden: wat uitschrijven ]


  • voodoo202
  • Registratie: Januari 2002
  • Laatst online: 04-08 20:29
Sorry voor de late reactie, ik denk dat het zo wel gaat lukken van het weekend. Ik hou jullie op de hoogte.
Pagina: 1