|
|
Elektronika.lt portalo forumas
Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo.
Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.
Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius,
kurie nesilaiko forumo taisyklių.
Pastebėjus nusižengimus, prašome pranešti.
Dabar yra 2025 01 09, 23:49. Visos datos yra GMT + 2 valandos.
|
|
|
|
Forumas » Programavimas » Duomenu desifravimas
|
Jūs negalite rašyti naujų pranešimų į šį forumą Jūs negalite atsakinėti į pranešimus šiame forume Jūs negalite redaguoti savo pranešimų šiame forume Jūs negalite ištrinti savo pranešimų šiame forume Jūs negalite dalyvauti apklausose šiame forume
|
|
|
|
|
|
Duomenu desifravimas |
Parašytas: 2014 06 25, 14:50 |
|
|
|
Sveiki,
Turiu valdiklį kuris per RS485/RS232 konverterį jungiasi su kompiuteriu. Kompiuteryje yra specifinis softas gautų duomenų apdorojimui.
Su programa Serial Port Monitor nuskaitau kaip kompiuteris draugauja su tuo valdikliu, bet nelabai suprantu kaip įvyksta tolimesnis duomenų konvertavimas.
Su snifferiu gaunu tokius duomenis:
Čia kaip suprantu siunčiama užklausa į SLAVE įrenginį:
3257 IRP_MJ_WRITE - Request transfers data from a client to a COM port
STATUS_SUCCESS
3a 30 b2 b1 b8 30 b1 b8 b4 30 b1 30 39 35 b7 :0²±ø0±ø“0±095·
Čia gaunu atsakymą iš SLAVE:
[25/06/2014 15:33:36]
3261 IRP_MJ_READ - Transfers data from a COM port to a client
STATUS_TIMEOUT
30 41 b1 b8 30 b1 b8 b4 30 b1 c3 33 30 30 30 30 0A±ø0±ø“0±Ć30000
30 30 30 30 30 30 30 30 30 b4 30 30 39 b1 000000000“009±
Toliau originalus softas apdirba visą šitą mišrainę ir man į log failą įpiešia štai ką:
1403698803 15:20:03 06/25/14 : 02DC02D702A902CF0000000000AC02C20000000000000400
Iš log failo duomenis nusiskaitau, čia viskas kaip ir aišku, paprasta matematika, bet norėčiau turėti galimybę iš pačio SLAVE nuskaityti tiesiogiai be originalaus softo (yra mintis padaryti bluetooth priedą tam prietaisui ir pakurt android apps`ą, kad kompo nereiktų tampytis). Gal kas įžvelgtų kažkokią tai giją kaip galėtų vykti konvertavimas iš tų raw duomenų į jau apdorotus t.y kaip programa iš serial port pasiėmusi duomenis juos apdoroja? |
|
|
|
|
|
|
Duomenu desifravimas |
Parašytas: 2014 06 25, 15:01 |
|
|
|
Su kita programa truputi gražesnė keverzonė gavos.
Užklausa:
3a 30 32 31 38 30 31 38 34 30 31 30 39 35 37 :02180184010957
Atsakymas:
30 41 31 38 30 31 38 34 30 31 43 37 30 30 30 30 0A18018401C70000
30 30 30 30 30 30 30 30 30 34 30 30 38 44 0000000004008D
Log faile:
1403699643 15:34:03 06/25/14 : 02DD02D902A902D10000000000AC02C30000000000000400 |
|
|
|
|
|
Duomenu desifravimas |
Parašytas: 2014 06 25, 16:29 |
|
|
|
Kažkada irgi tokiom maklėm užsiiminėjau, bet aš žinojau kokiems būtent valdikliams siunčiama užklausa (nes jų pas mane ne vienas buvo), ir žinojau ką būtent siunčiu - ar užklausa, ar parametrus naujus ar kitka, tai prisirinkęs logų atradau ryšį. |
|
|
|
|
|
Duomenu desifravimas |
Parašytas: 2014 06 26, 07:58 |
|
|
|
Na aš kaip ir turiu visą informaciją taipogi, ir sleivo adresą kuriam siunčiu ir kas per duomenys keliauja. Reikės pabandyti pakaitalioti kintamųjų reikšmes ir žiūrėti kas keičiasi. |
|
|
|
|
|
Duomenu desifravimas |
Parašytas: 2014 06 26, 09:16 |
|
|
|
- Pats idealiausias būtų sprendimas gauti protokolo formato aprašymą iš gamintojo/konstruktorio ar iš interneto džiunglių.
p.s.
.. neturint formato, viltis iššifruoti artima nuliui.
p.s.2
.. paprastai eina: "komanda:duomenys:kontrolinė suma", bet komandų egzistuoja daug, duomenys gali būti supakuoti, o CRC irgi ne vienas metodas yra.
|
|
|
|
|
|
Duomenu desifravimas |
Parašytas: 2014 06 26, 12:03 |
|
|
|
Tai paklausiau tos įmonės kuri užsakinėjo tą programą pas programuotojus, bet turbūt, kad nepavys kažko išpešti. |
|
|
|
|
|
Duomenu desifravimas |
Parašytas: 2014 06 26, 13:17 |
|
|
|
Vistik gavau paaiškinimą.
Dėkui prisidėjusiems prie diskusijos. |
|
|
|
|
|
Duomenu desifravimas |
Parašytas: 2014 06 26, 14:24 |
|
|
|
Na tamsta galėtumėte ir išsamiau aprašyti kas kaip kodėl, kad būtų ateities kartoms. |
|
_________________ Do not argue with an idiot. He will drag you down to his level and beat you with experience.
mane rasite: mano profilyje |
|
|
|
|
|
Duomenu desifravimas |
Parašytas: 2014 06 27, 08:38 |
|
|
|
Na nemanau, kad kažkam ateityje būtent to prisireiks, bet gal bus kabliukas už ko užsikabinti.
Užklausimas iš kompiuterio:
3a 30 32 31 38 30 31 38 34 30 31 30 39 35 37 :02180184010957
Tai čia pirma dalis HEX, o antra dalis jau paversta į ASCII.
: transmission start
02 message length - 2 bytes in excess of the minimum message
1801 master address (PdM) + master prefix 0x1800
84 master please tx readings
01 start from reading address 15 = 0x01 x 15, where 15 is a fixed number, denoting the maximum number of chars which may be transmitted
09 send 9 chars
57 parity check as to make the message sum to be 0 mod 256, in other words the message sum should be of the form 0xYZ0000, where Y and Z are any hex digits
Toliau iš instrumento į PC atsakymas:
30 41 31 38 30 31 38 34 30 31 43 37 30 30 30 30 :0A18018401C70000
30 30 30 30 30 30 30 30 30 34 30 30 38 44 0000000004008D
Vėl analogiškai pirma dalis hex, antra ASCII.
: transmission start
0A message length - 10 bytes in excess of the minimum message
1801 master address (PdM) + master prefix 0x1800
84 answering to "master please tx readings"
01 start from reading address 15 = 0x01 x 15, where 15 is a fixed number, denoting the maximum number of chars which may be transmitted
09 send 9 chars
C7 char nr. 1
00 char nr. 2
00 ...
00
00
00
00
04
00 char nr. 9
8D parity check
After receiving all the chars, they are chained together into the log string.
Niekaip nepavyksta man apskaičiuoti to PARITY CHECK, gal kas užvestumėte ant kelio? Ieškojau internete, bet toks vaizdas, kad visi kažką savo išradinėja. RS232 nustatytmai: word lenght 7 bits, even parity, 1 stop bit, 9600 kbps.
Paklausimas iš pc bitais:
00111010 00110000 00110010 00110001 00111000 00110000 00110011 00111000 00110100 00110000 00110001 00110000 00111001 00110101 00110101 :02180384010955 |
|
|
|
|
|
|
Duomenu desifravimas |
Parašytas: 2014 06 27, 13:19 |
|
|
|
sumuojant visus baitus (CRC baita imtinai) turi gautis 0x00
sumuoti reikia ne baitus is nuoseklaus, o hex stringa
pvz
02+18+03+84+01+09+55=00
0A+18+01+84+01+C7+00+00+00+00+00+00+04+00+8D=00 |
|
|
|
|
|
Duomenu desifravimas |
Parašytas: 2014 06 27, 16:12 |
|
|
|
Supratau, dėkui už pagalbą, jau pasidariau excel`yje kalkuliatorių kuris man sugeneruoja norimą užklausą. |
|
|
|
|
|
Duomenu desifravimas |
Parašytas: 2014 06 27, 17:51 |
|
|
|
kai nori gauti CRC siuo algoritmu:
CRC = 0x00 - SUM[bytes] & 0xFF |
|
|
|
|
|
Duomenu desifravimas |
Parašytas: 2014 06 27, 20:31 |
|
|
|
Šiuo atveju parity baitą gaunu taip:
02+18+03+84+01+09=AB
0xAB mod 0x100 = 0xAB
0x100 - 0xAB = 0x55
02+18+03+84+01+09+55=00 |
|
|
|
|
|
|
Google paieška forume |
|
|
Naujos temos forume |
|
|
FS25 Tractors
Farming Simulator 25 Mods,
FS25 Maps,
FS25 Trucks |
|
ETS2 Mods
ETS2 Trucks,
ETS2 Bus,
Euro Truck Simulator 2 Mods
|
|
FS22 Tractors
Farming Simulator 22 Mods,
FS22 Maps,
FS25 Mods |
|
VAT calculator
VAT number check,
What is VAT,
How much is VAT |
|
LEGO
Mänguköök,
mudelautod,
nukuvanker |
|
Thermal monocular
Thermal vision camera,
Night vision ar scope,
Night vision spotting scope |
|
FS25 Mods
FS25 Harvesters,
FS25 Tractors Mods,
FS25 Maps Mods |
|
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija |
|
FS25 Mods
FS25 Maps,
FS25 Cheats,
FS25 Install Mods |
|
GTA 6 Weapons
GTA 6 Characters,
GTA 6 Map,
GTA 6 Vehicles |
|
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps |
|
ATS Trailers
American Truck Simulator Mods,
ATS Trucks,
ATS Maps |
|
|
|