Skumt format på data inkommand på serieport
Postat: 28 januari 2015, 22:13:46
Leker lite med ett mätinstrument som jag seriellt kopplar till min dator
Inställningar för den seriella kommunikationen är korrekt det har jag verifierat. Så ingen felsökning behövs där.
Problemet jag har är att datan som kommer över är ej läsbar.
Tog för givet att det kommer över en datasträng man kan "anse" vara ascii det brukar ju fungera.
Men datan är helt oläslig, bara skräptecken.
Då tog jag och läste in byte för byte, alla 25 som skickas och så skrev jag ut byte i form av 0-255 dvs dec ej Hex.
får en ströng som ser ut så här 213|240|0|20|0|1|2|1|239|255|255|255|0|0|7|185|0|0|7|172|239|255|255|254|13|0| de stående | lgger jag bara till för att det skall bli lätt och se vart vardera byte är.
Man ser ju direkt att det inte kan vara vanlig ascii, går ju bara till 127, extended ascii går ju till 255 men på de högre ligger ju bara en massa skumma symboler etc.
Så testade att läsa in allt som bytes och skriva ut som UTF7/8/16/32, Unicode, Unicode(BigEndian), ascii men det blir bara skräp i alla, kanske man kan förstå då i alla varianter bör ju det vi kan läsa/tolka ligga runt 20ish till 120ish. innan och efter är ju specialtecken inte a-z, 0-9
Det ända jag vet om strängen är att den innehåller ett avstånd som är 1.964 meter.
Ska posta en till med liknande siffror tex 1.111 meter. kanske lättare att avkoda.
Någon som har någon bra ide.
Mätaren har ingen märkning, är någon China Export så inte googlebar
EDIT mätte lite och loggade datan. Förstår ännu mindre. man tycker ju att oavsätt vad bör ju alla 1.111 meter mätningar ge samma data, men inte då!
1.111 alt. 1.112 är vad som visas på instrumentet.
213|240|0|20|0|1|2|1|0|0|4|86|0|0|4|86|0|0|4|87|0|0|4|87|13|0| 1.111meter
213|240|0|20|0|1|2|1|0|0|4|87|0|0|4|87|0|0|4|86|0|0|4|87|13|0| 1.111m
213|240|0|20|0|1|2|1|0|0|4|87|0|0|4|86|0|0|4|87|0|0|4|87|13|0| 1.111m
213|240|0|20|0|1|2|1|0|0|4|86|0|0|4|87|0|0|4|87|0|0|4|88|13|0| 1.112m
213|240|0|20|0|1|2|1|0|0|4|87|0|0|4|88|0|0|4|88|0|0|4|88|13|0| 1.112m
213|240|0|20|0|1|2|1|0|0|6|136|0|0|6|136|0|0|6|136|0|0|6|136|13|0| alla är 1.672 meter
213|240|0|20|0|1|2|1|0|0|6|136|0|0|6|136|0|0|6|136|0|0|6|136|13|0|
213|240|0|20|0|1|2|1|0|0|6|136|0|0|6|136|0|0|6|136|0|0|6|136|13|0|
213|240|0|20|0|1|2|1|0|0|6|136|0|0|6|136|0|0|6|136|0|0|6|136|13|0|
213|240|0|20|0|1|2|1|0|0|6|136|0|0|6|136|0|0|6|136|0|0|6|136|13|0|
213|240|0|20|0|1|2|1|0|0|6|136|0|0|6|136|0|0|6|136|0|0|6|136|13|0|
213|240|0|20|0|1|2|1|0|0|5|183|0|0|5|182|0|0|5|183|0|0|5|182|13|0| alla är 1.462
213|240|0|20|0|1|2|1|0|0|5|182|0|0|5|183|0|0|5|182|0|0|5|182|13|0|
213|240|0|20|0|1|2|1|0|0|5|183|0|0|5|182|0|0|5|182|0|0|5|182|13|0|
Inställningar för den seriella kommunikationen är korrekt det har jag verifierat. Så ingen felsökning behövs där.
Problemet jag har är att datan som kommer över är ej läsbar.
Tog för givet att det kommer över en datasträng man kan "anse" vara ascii det brukar ju fungera.
Men datan är helt oläslig, bara skräptecken.
Då tog jag och läste in byte för byte, alla 25 som skickas och så skrev jag ut byte i form av 0-255 dvs dec ej Hex.
får en ströng som ser ut så här 213|240|0|20|0|1|2|1|239|255|255|255|0|0|7|185|0|0|7|172|239|255|255|254|13|0| de stående | lgger jag bara till för att det skall bli lätt och se vart vardera byte är.
Man ser ju direkt att det inte kan vara vanlig ascii, går ju bara till 127, extended ascii går ju till 255 men på de högre ligger ju bara en massa skumma symboler etc.
Så testade att läsa in allt som bytes och skriva ut som UTF7/8/16/32, Unicode, Unicode(BigEndian), ascii men det blir bara skräp i alla, kanske man kan förstå då i alla varianter bör ju det vi kan läsa/tolka ligga runt 20ish till 120ish. innan och efter är ju specialtecken inte a-z, 0-9
Det ända jag vet om strängen är att den innehåller ett avstånd som är 1.964 meter.
Ska posta en till med liknande siffror tex 1.111 meter. kanske lättare att avkoda.
Någon som har någon bra ide.
Mätaren har ingen märkning, är någon China Export så inte googlebar
EDIT mätte lite och loggade datan. Förstår ännu mindre. man tycker ju att oavsätt vad bör ju alla 1.111 meter mätningar ge samma data, men inte då!
1.111 alt. 1.112 är vad som visas på instrumentet.
213|240|0|20|0|1|2|1|0|0|4|86|0|0|4|86|0|0|4|87|0|0|4|87|13|0| 1.111meter
213|240|0|20|0|1|2|1|0|0|4|87|0|0|4|87|0|0|4|86|0|0|4|87|13|0| 1.111m
213|240|0|20|0|1|2|1|0|0|4|87|0|0|4|86|0|0|4|87|0|0|4|87|13|0| 1.111m
213|240|0|20|0|1|2|1|0|0|4|86|0|0|4|87|0|0|4|87|0|0|4|88|13|0| 1.112m
213|240|0|20|0|1|2|1|0|0|4|87|0|0|4|88|0|0|4|88|0|0|4|88|13|0| 1.112m
213|240|0|20|0|1|2|1|0|0|6|136|0|0|6|136|0|0|6|136|0|0|6|136|13|0| alla är 1.672 meter
213|240|0|20|0|1|2|1|0|0|6|136|0|0|6|136|0|0|6|136|0|0|6|136|13|0|
213|240|0|20|0|1|2|1|0|0|6|136|0|0|6|136|0|0|6|136|0|0|6|136|13|0|
213|240|0|20|0|1|2|1|0|0|6|136|0|0|6|136|0|0|6|136|0|0|6|136|13|0|
213|240|0|20|0|1|2|1|0|0|6|136|0|0|6|136|0|0|6|136|0|0|6|136|13|0|
213|240|0|20|0|1|2|1|0|0|6|136|0|0|6|136|0|0|6|136|0|0|6|136|13|0|
213|240|0|20|0|1|2|1|0|0|5|183|0|0|5|182|0|0|5|183|0|0|5|182|13|0| alla är 1.462
213|240|0|20|0|1|2|1|0|0|5|182|0|0|5|183|0|0|5|182|0|0|5|182|13|0|
213|240|0|20|0|1|2|1|0|0|5|183|0|0|5|182|0|0|5|182|0|0|5|182|13|0|