там всё остальное должно быть правильно. ты как раз ошибся в байте №11 а это наша строка 145 т.е. ECUHardwareNumber и ошибся ты как раз на 3 если в DEC рассматривать. А это и есть количество символов, которое он выпускает из номера hardware.
MaksVV не знаю кем ты работаешь но тебе бы в программисты. сработало, 0x03 это действительно разделитель. есть две вещи, отобоажает 0006 вместо 6 и FF всесто 255. на счет 6 не знаю или принцепиально, но FF думаю да. вот результат
я думал, былбы второй ардунино проснифить эумлятор, но увы нет. перепроверил сообщение несколько раз нашел один косяк 0х91 а надо 0х92. но ничего не поменялось. все точняк точняяком. заметил еще одну вещь, опком работает так, полчуает инит, получает данные с двух сообщений, потом посылает без перерыва присутствие, и только если я иду в лайф дата он шлет 21 01 и получает данные . эмулятор делате так, отвечает на инит, отвечает на два идентификатора а потм опком ему шлет присутсвие четыре раза, эмулятор не отвечает и он сново посылает эмулятору инит и так по кругу, вот так
нормально с авто при заходе в лайф дата опком начинает 2-3 раза подряд слать 21 01, а вот что происходит в эмуляторе если я получил данные и сразу иду в лайф дата
вижу первый косяк что он не отвеичает на присутсвие
косяк с присутсвием исправил, сместил байти ои 0-ля были от 1-го
осталась вторая проблем, четыре раза отправляет данные а потом сново инит, щас проверю отправляемое сообщение 21 00 , так поборол и этот косяк сообщение отправляемое было 83 байта а должно было 81 байта, получил данные в проге, отсалься последний косяк почемуто через время вылетает ошибка комуникации, плсмотрел в скетч он переходит на инит, вот результаты
надо было сразу выкладывать сеанс связи эмулятора и опкома. Тут сниффер то и не нужен. Дуня сама всесообщения в сериал выкладывает)) эдакий эмулятор-снифер. А опком быстро связь рвет? можно успеть данные рассомтреть?
да MaksVV это очередная победа. связь рвется гдето черз 5-10 секунд. данные все показывает и можно рассмотреть и даже успеть зайти на вторую страницу где углы и все такое. щас попробую последнее из 361 го сообщения.
почему опком после нескольких полученых ответов присутсвия, просит сново инит?. второй раз получает инит и данные а на третий раз у него не выходит инит и из за этого вылето ошибки комуникации. в последнем снифе видно что он только 21 01 отправляет и ничего больше при входе в лайф дата, причем он посылает 2-3 раза запрос подряд.
когда перехожу на следующую страницу то он почему то снова делает инит. а не должен, должен только 21 00 перезапрашивать. по ходу сам эмулятор рвет соединение и потом не может его дать на третью помытку. вот последний сниффер , ниже много запросов 21 01 , это я по страницам ходил. со строки 079
-18508ms
0 81 11 F1 81 4
106ms
83 F1 11 C1 6B 8F 40
247ms
82 11 F1 1A 81 1F A8 F1 11 5A 81 4 90 6F 62 3 91 6B 3 92 6B 3 93 1 3 94 6A 3 95 2 3 96 66 3 97 69 3
112ms
98 6A 3 99 44 3 9A 2 3 9F 6A FF AC
242ms
82 11 F1 1A 80 1E 80 F1 11 5F 5A 80 57 30 4C 30 54 47 46 37 35 31 32 32 33 33 37 31 34 32 34 34 31 37 31 36 39 20 50
113ms
44 42 4F 53 20 20 30 31 30 35 30 35 FF 4B 4D 37 4D 33 30 34 30 5F 53 0 6 42 30 31 30 31 35 59 32 30 44 54 48 20 44 33 53 30 30 31 30 30 36 39 34 30 20 7 7 25 5 48 30 32 38 31 30
120ms
31 30 32 36 38 FF
2362ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C A2 1 7D C 69 0 0 2 B1 0 0 11 F0 4 3F 0 0 3 22 B B7 3 AC 4
114ms
2F 3 20 F0 6A 0 0 0 0 B 71 3 A9 3 33 8 AA 1 90 C 5E A0 0 1 2C 3 5D A9 8 1 30 0 0 1 7E B FB 3 AC 0 2 5E
811ms
81 11 F1 3E C1 81 F1 11 7E 1
217ms
81 11 F1 3E C1 81 F1 11 7E 1
216ms
81 11 F1 3E C1 81 F1 11 7E 1
233ms
81 11 F1 3E C1 81 F1 11 7E 1
218ms
81 11 F1 3E C1 81 F1 11 7E 1
215ms
81 11 F1 3E C1 81 F1 11 7E 1
217ms
81 11 F1 3E C1 81 F1 11 7E 1
232ms
81 11 F1 3E C1 81 F1 11 7E 1
240ms
81 11 F1 3E C1 81 F1 11 7E 1
239ms
81 11 F1 3E C1 81 F1 11 7E 1
218ms
81 11 F1 3E C1 81 F1 11 7E 1
215ms
81 11 F1 3E C1 81 F1 11 7E 1
223ms
81 11 F1 3E C1
1587ms
81 11 F1 3E C1
355ms
81 11 F1 3E C1
340ms
81 11 F1 3E C1
989ms
0 81 11 F1 81 4
1760ms
0 81 11 F1 81 4 83
103ms
F1 11 C1 6B 8F 40
201ms
82 11 F1 1A 81 1F A8 F1 11 5A 81 4 90 6F 62 3 91 6B 3 92 6B 3 93 1 3 94 6A 3 95 2 3 96 66 3 97 69 3 98 6A 3 99 44 3 9A 2
114ms
3 9F 6A FF AC
225ms
82 11 F1 1A 80 1E
1703ms
82 11 F1 1A 80 1E
341ms
82 11 F1 1A 80 1E
341ms
82 11 F1 1A 80 1E 80 F1 11 5F 5A 80 57 30 4C 30 54 47 46 37 35 31 32 32 33 33 37 31 34 32 34 34 31 37 31 36 39 20
114ms
50 44 42 4F 53 20 20 30 31 30 35 30 35 FF 4B 4D 37 4D 33 30 34 30 5F 53 0 6 42 30 31 30 31 35 59 32 30 44 54 48 20 44 33 53 30 30 31 30 30 36 39 34 30 20 7 7 25 5 48 30 32 38 31
120ms
30 31 30 32 36 38 FF
558ms
0 81 11 F1 81 4
1935ms
0 81 11 F1 81 4 83 F1
103ms
11 C1 6B 8F 40
201ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C A7 1 7E C 6E 0 0 2 B6 0 0 12 55 4
110ms
35 0 0 3 20 B B3 3 AC 4 2F 3 20 F0 5A 0 0 0 0 B 71 2 FB 3 28 8 AB 1 8F C 5E A0 0 1 2C 3 9C A9 8 1 30 0 0 1 7F B F9 3 AC 0 2 38
478ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C A7 1 7B C 6E 0 0 2 B4 0 0 12 21 4 3A 0 0 3 1F B AD 3
112ms
AC 4 2F 3 20 F0 65 0 0 0 0 B 71 2 FF 3 2A 8 AA 1 8F C 5C A0 0 1 2C 3 41 AD 8 1 30 0 0 1 7E B F9 3 AD 0 2 B4
258ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C A7 1 7C C 6D 0 0 2 B3 0 0 12 3F 4 39 0 0 3
110ms
21 B B3 3 AC 4 2F 3 20 F0 5A 0 0 0 0 B B1 2 FB 3 20 8 AA 1 91 C 5C A0 0 1 2C 3 72 AD 8 1 30 0 0 1 7D B F9 3 AD 0 2 31
307ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C A8 1 84 C 6D 0 0 2 B4 0 0 12 2E 4 39 0 0 3 21 B AA
112ms
3 AD 4 2E 3 20 F0 0 0 0 0 0 B 2F 2 BB 3 2B 8 AB 1 8F C 5E A0 0 1 2C 3 44 AD 8 1 30 0 0 1 7E B F9 3 AD 0 2 E4
291ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C A8 1 7D C 6E 0 0 2 B5 0 0 12 31 4 39 0 0 3 1F B B6 3
111ms
AD 4 2F 3 20 F0 50 0 0 0 0 B 70 2 F9 3 26 8 AB 1 8F C 5E A0 0 1 2C 3 96 A9 8 1 30 0 0 1 7F B F9 3 AC 0 2 5
305ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C A8 1 84 C 6E 0 0 2 B4 0 0 11 FF 4 3E 0 0 3 20 B AD 3 AC
111ms
4 2E 3 20 F0 20 0 0 0 0 B 70 3 90 3 23 8 AB 1 91 C 5E A0 0 1 2C 3 7B A9 8 1 30 0 0 1 7E B F9 3 AD 0 2 1F
291ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C A8 1 81 C 6E 0 0 2 B2 0 0 12 44 4 3A 0 0
112ms
3 20 B B6 3 AD 4 2F 3 20 F0 7A 0 0 0 0 B 71 2 C1 3 2E 8 A9 1 8F C 5C A0 0 1 2C 3 4F A9 8 1 30 0 0 1 7F B F9 3 AD 0 2 CC
307ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C A8 1 7D C 6F 0 0 2 B4 0 0 11 F0 4 3A
109ms
0 0 3 22 B AD 3 AD 4 2E 3 20 F0 16 0 0 0 0 B B1 2 EE 3 1B 8 A9 1 91 C 5C A0 0 1 2C 3 34 A9 8 1 30 0 0 1 7E B F9 3 AC 0 2 49
648ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C A8 1 82 C 6F 0 0 2 B2 0 0 12 5B 4 3E 0 0 3 1E B
111ms
B7 3 AC 4 2F 3 20 F0 84 0 0 0 0 B 71 2 C5 3 30 8 AB 1 8F C 5C A0 0 1 2C 3 B4 A9 8 1 30 0 0 1 7F B F9 3 AC 0 2 5D
305ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C A8 1 7C C 6E 0 0 2 B4 0 0 12 30 4 3A 0 0 3
112ms
20 B B1 3 AC 4 2F 3 20 F0 45 0 0 0 0 B 2F 2 FC 3 24 8 AA 1 90 C 5C A0 0 1 2C 3 90 A9 8 1 30 0 0 1 7F B F9 3 AC 0 2 AB
292ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C A8 1 7E C 6F 0 0 2 B4 0 0 12 5 4 3A 0 0 3 22 B AE 3 AC
112ms
4 2E 3 20 F0 25 0 0 0 0 B 73 3 8B 3 1D 8 AA 1 91 C 5C A0 0 1 2C 3 7E A9 8 1 30 0 0 1 7E B F9 3 AD 0 2 1D
363ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C A8 1 82 C 70 0 0 2 B4 0 0 12 44 4 3A 0 0 3 21 B B2 3
113ms
AD 4 2F 3 20 F0 4A 0 0 0 0 B B3 2 F8 3 25 8 A9 1 90 C 5C A0 0 1 2C 3 37 A9 8 1 30 0 0 1 7E B F9 3 AD 0 2 F6
308ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C AA 1 80 C 6F 0 0 2 B3 0 0 12 3A 4 39
109ms
0 0 3 20 B B5 3 AC 4 2F 3 20 F0 6A 0 0 0 0 B 75 3 99 3 2B 8 AA 1 90 C 5C A0 0 1 2C 3 9C A9 8 1 30 0 0 1 7E B F9 3 AC 0 2 D9
334ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C AA 1 7B C 6F 0 0 2 B3 0 0 12 21 4 3A 0 0 3
112ms
1F B B2 3 AD 4 2F 3 20 F0 30 0 0 0 0 B 70 2 F7 3 20 8 AA 1 90 C 5C A0 0 1 2C 3 84 A9 8 1 30 0 0 1 7E B F9 3 AC 0 2 B4
371ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C AA 1 7F C 6F 0 0 2 B2 0 0 12 15 4 39 0 0 3 22 B B2 3 AD
112ms
4 2F 3 20 F0 55 0 0 0 0 B 71 3 8B 3 22 8 A9 1 90 C 5C A0 0 1 2C 3 2F A9 8 1 30 0 0 1 7E B F8 3 AC 0 2 13
290ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C A8 1 7E C 6F 0 0 2 B4 0 0 12 2B 4
111ms
3C 0 0 3 20 B B3 3 AD 4 2F 3 20 F0 40 0 0 0 0 B 70 2 F8 3 23 8 AA 1 90 C 5C A0 0 1 2C 3 8D A9 8 1 30 0 0 1 7E B F9 3 AC 0 2 E1
352ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C A8 1 80 C 70 0 0 2 B4 0 0 11 E7 4 3F 0 0 3 20 B AE
113ms
3 AC 4 2F 3 20 F0 3A 0 0 0 0 B 2F 3 8E 3 22 8 AA 1 90 C 5C A0 0 1 2C 3 37 A9 8 1 30 0 0 1 7E B F9 3 AD 0 2 96
298ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C AA 1 7E C 70 0 0 2 B3 0 0 12 1 4 3C
110ms
0 0 3 20 B B2 3 AD 4 2F 3 20 F0 55 0 0 0 0 B 31 2 FA 3 25 8 A9 1 90 C 5C A0 0 1 2C 3 37 A9 8 1 30 0 0 1 7E B F9 3 AC 0 2 3B
299ms
82 11 F1 21 1 A6
1596ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C AB 1 7B C 6F 0 0 2 B2 0 0 12 56 4 3E
109ms
0 0 3 1D B B5 3 AC 4 2F 3 20 F0 5F 0 0 0 0 B 71 2 B8 3 29 8 AA 1 8F C 5C A0 0 1 2C 3 9F AD 8 1 30 0 0 1 7F B F8 3 AC 0 2 5
515ms
82 11 F1 21 1 A6
1587ms
82 11 F1 21 1 A6 80 21 11 4C 61 1 0 0 0 0 0 0 0 0 C AB 1 7F C 72 0 0 2 B4 0 0 11 D2 4 3A 0 0 3 23 B A9
112ms
3 AD 4 2E 3 20 EF FB 0 0 0 0 B 2F 2 EA 3 16 8 A8 1 91 C 5C A0 0 1 2C 3 F AD 8 1 30 0 0 1 7E B F9 3 AC 0 2 97
291ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C AB 1 7E C 72 0 0 2 B5 0 0 12 3A 4 3A 0
112ms
0 3 20 B B1 3 AC 4 2F 3 20 F0 4A 0 0 0 0 B 73 3 8E 3 25 8 AA 1 8F C 5C A0 0 1 2C 3 93 AD 8 1 30 0 0 1 7E B F8 3 AC 0 2 A0
306ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C AB 1 7E C 72 0 0 2 B2 0 0 12 0 4
109ms
39 0 0 3 21 B B0 3 AD 4 2F 3 20 F0 40 0 0 0 0 B B3 2 B6 3 23 8 A9 1 8F C 5C A0 0 1 2C 3 3A A9 8 1 30 0 0 1 7E B F8 3 AD 0 2 61
276ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C AB 1 80 C 72 0 0 2 B4 0 0 12 15 4 3E 0 0 3 21 B AD
111ms
3 AD 4 2E 3 20 F0 25 0 0 0 0 B 70 2 F1 3 1E 8 A9 1 91 C 5C A0 0 1 2C 3 24 A9 8 1 30 0 0 1 7E B F9 3 AC 0 2 3F
275ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C AC 1 7D C 72 0 0 2 B3 0 0 12 46 4 3A 0 0
111ms
3 1E B AF 3 AD 4 2F 3 20 F0 75 0 0 0 0 B 70 3 9D 3 2E 8 AA 1 8F C 5C A0 0 1 2C 3 49 A9 8 1 30 0 0 1 7E B F8 3 AC 0 2 99
306ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C AB 1 81 C 73 0 0 2 B1 0 0 12 1A 4
109ms
37 0 0 3 22 B A9 3 AD 4 2E 3 20 EF FB 0 0 0 0 B 6E 2 A2 3 16 8 A8 1 90 C 5C A0 0 1 2C 3 81 A9 8 1 30 0 0 1 7E B F9 3 AC 0 2 10
322ms
82 11 F1 21 1 A6
1595ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C AC 1 7E C 73 0 0 2 B2 0 0 12 37 4 3E 0 0
112ms
3 1E B B4 3 AC 4 2F 3 20 EF F1 0 0 0 0 B 2E 2 A1 3 14 8 A8 1 90 C 5C A0 0 1 2C 3 9 A9 8 1 30 0 0 1 7F B F8 3 AD 0 2 76
291ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C AD 1 80 C 72 0 0 2 B2 0 0 12 43 4 3A 0 0 3 22 B A4
111ms
3 AD 4 2E 3 20 EF 30 0 0 0 0 B 71 3 94 3 27 8 AB 1 90 C 5C A0 0 1 2C 3 81 A9 8 1 30 0 0 1 7E B F9 3 AC 0 2 77
306ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C AD 1 7D C 72 0 0 2 B4 0 0 12 40 4 3A 0 0 3 1F B AF 3 AC
113ms
4 2F 3 20 F0 45 0 0 0 0 B 71 3 90 3 24 8 AA 1 90 C 5C A0 0 1 2C 3 90 A9 8 1 30 0 0 1 7E B F9 3 AD 0 2 99
304ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C AC 1 7D C 72 0 0 2 B3 0 0 11 E5 4 3A 0 0 3 24 B A4
112ms
3 AC 4 2E 3 20 EF D1 0 0 0 0 B 2F 2 9C 3 E 8 A8 1 91 C 5C A0 0 1 2C 3 4E AD 8 1 30 0 0 1 7E B FA 3 AC 0 2 33
382ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C AD 1 7A C 73 0 0 2 B4 0 0 11 DF 4 3A 0 0 3 24 B
111ms
A0 3 AC 4 2E 3 20 EF BC 0 0 0 0 B B5 3 70 3 A 8 A8 1 92 C 5C A0 0 1 2C 3 42 A9 8 1 30 0 0 1 7D B F8 3 AC 0 2 59
291ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C AD 1 81 C 73 0 0 2 B1 0 0 12 4C 4 3A 0 0 3 1D B B1 3 AC
114ms
4 2F 3 20 F0 A9 0 0 0 0 B 71 2 CC 3 37 8 AC 1 8E C 5C A0 0 1 2C 3 BF AD 8 1 30 0 0 1 7F B F9 3 AC 0 2 8C
313ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C AD 1 7C C 74 0 0 2 B4 0 0 12 3A 4 39 0 0 3 20 B B1
113ms
3 AC 4 2F 3 20 F0 4A 0 0 0 0 B 71 3 96 3 25 8 AA 1 90 C 5C A0 0 1 2C 3 78 A9 8 1 30 0 0 1 7E B F8 3 AC 0 2 88
296ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C AD 1 80 C 73 0 0 2 B3 0 0 12 C 4
109ms
3A 0 0 3 1F B AE 3 AC 4 2F 3 20 F0 99 0 0 0 0 B 70 2 C7 3 34 8 AA 1 8F C 5C A0 0 1 2C 3 59 AD 8 1 30 0 0 1 7E B F8 3 AC 0 2 CA
447ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C AD 1 7E C 73 0 0 2 B2 0 0 12 1 4 39
112ms
0 0 3 1F B AC 3 AC 4 2F 3 20 F0 55 0 0 0 0 B 31 3 90 3 27 8 AB 1 8F C 5C A0 0 1 2C 3 6C A9 8 1 30 0 0 1 7E B F8 3 AC 0 2 3
300ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C AD 1 80 C 74 0 0 2 B2 0 0 12 3F 4 38 0 0 3 21 B AC 3 AC
111ms
4 2E 3 20 F0 2B 0 0 0 0 B 2C 2 B0 3 1F 8 AA 1 90 C 5C A0 0 1 2C 3 57 A9 8 1 30 0 0 1 7E B F9 3 AC 0 2 18
331ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C AD 1 79 C 74 0 0 2 B4 0 0 12 4A 4 37 0 0 3
112ms
1F B B3 3 AD 4 2F 3 20 F0 6F 0 0 0 0 B 71 3 93 3 2C 8 A9 1 8F C 5C A0 0 1 2C 3 4A A9 8 1 30 0 0 1 7F B F8 3 AD 0 2 90
303ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C AD 1 7F C 74 0 0 2 B2 0 0 11 E6 4
109ms
3A 0 0 3 22 B A7 3 AC 4 2E 3 20 EF F1 0 0 0 0 B 70 2 A6 3 14 8 A9 1 90 C 5C A0 0 1 2C 3 60 A9 8 1 30 0 0 1 7D B F8 3 AD 0 2 B6
306ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C AF 1 79 C 73 0 0 2 B4 0 0 12 65 4 3A 0 0
111ms
3 1D B AE 3 AC 4 2F 3 20 F0 75 0 0 0 0 B 71 3 A7 3 35 8 AB 1 90 C 5C A0 0 1 2C 3 96 A9 8 1 30 0 0 1 7F B F8 3 AD 0 2 19
292ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C AF 1 80 C 74 0 0 2 B3 0 0 12 0 4 3A 0 0 3 21
112ms
B AA 3 AD 4 2E 3 20 F0 10 0 0 0 0 B 70 3 7D 3 1A 8 A9 1 90 C 5C A0 0 1 2C 3 66 A9 8 1 30 0 0 1 7E B F8 3 AC 0 2 DC
304ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C AD 1 83 C 74 0 0 2 B2 0 0 12 3F 4 39 0 0 3 21 B
111ms
A8 3 AC 4 2E 3 20 F0 0 0 0 0 0 B 2E 2 AC 3 25 8 AB 1 8F C 5C A0 0 1 2C 3 8F A9 8 1 30 0 0 1 7E B F6 3 AC 0 2 26
291ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C AF 1 78 C 74 0 0 2 B4 0 0 11 F2 4 3D 0 0 3 1E B AF 3 AD
112ms
4 2F 3 20 F0 7A 0 0 0 0 B 70 3 9F 3 1F 8 AA 1 8F C 5C A0 0 1 2C 3 81 A9 8 1 30 0 0 1 7E B F8 3 AC 0 2 78
289ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C AF 1 81 C 73 0 0 2 B3 0 0 11 E1 4
110ms
3A 0 0 3 21 B AD 3 AC 4 2F 3 20 F0 3A 0 0 0 0 B 70 2 B8 3 22 8 AA 1 91 C 5C A0 0 1 2C 3 8A AD 8 1 30 0 0 1 7E B F8 3 AC 0 2 55
322ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C AF 1 88 C 74 0 0 2 B1 0 0 12 1A 4 3A 0 0 3 1F B AD 3 AC
111ms
4 2F 3 20 F0 55 0 0 0 0 B 70 3 97 3 28 8 AB 1 8F C 5C A0 0 1 2C 3 95 AD 8 1 30 0 0 1 7E B F8 3 AC 0 2 9E
291ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C AD 1 79 C 74 0 0 2 B3 0 0 12 92 4 39
110ms
0 0 3 22 B AC 3 AC 4 2E 3 20 F0 0 0 0 0 0 B B1 3 78 3 17 8 A9 1 90 C 5C A0 0 1 2C 3 69 AD 8 1 30 0 0 1 7E B F6 3 AC 0 2 94
322ms
82 11 F1 21 1 A6
1596ms
82 11 F1 21 1 A6 80 21 11 4C 61 1 0 0 0 0 0 0 0 0 C AF 1 79 C 75 0 0 2 B4 0 0 12 7 4 3A 0 0 3 1E B
111ms
AD 3 AC 4 2F 3 20 F0 75 0 0 0 0 B 2E 3 A3 3 2E 8 AB 1 8F C 5C A0 0 1 2C 3 AA A9 8 1 30 0 0 1 7F B F8 3 AD 0 2 B2
259ms
82 11 F1 21 1 A6
1579ms
82 11 F1 21 1 A6
341ms
82 11 F1 21 1 A6
341ms
82 11 F1 21 1 A6 80 21 11 4C 61 1 0 0 0 0 0 0 0 0 C B0 1 85 C 76 0 0 2 B2 0 0 12 4F 4 3C
111ms
0 0 3 21 B AB 3 AD 4 2E 3 20 F0 2B 0 0 0 0 B 70 3 91 3 19 8 A9 1 8E C 5C A0 0 1 2C 3 17 A9 8 1 30 0 0 1 7E B F6 3 AC 0 2 40
308ms
82 11 F1 21 1 A6
1595ms
82 11 F1 21 1 A6
356ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C B1 1 7A C 76 0 0 2 B1 0 0 12 6 4 3A 0 0 3 1F B
112ms
A6 3 AD 4 2E 3 20 F0 20 0 0 0 0 B 71 3 89 3 1D 8 AA 1 8F C 5C A0 0 1 2C 3 1F AD 8 1 30 0 0 1 7E B F6 3 AD 0 2 B4
307ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C B0 1 7A C 76 0 0 2 B4 0 0 11 EC 4 37 0 0 3 1F
111ms
B B0 3 AC 4 2F 3 20 F0 75 0 0 0 0 B 71 3 8E 3 2D 8 AB 1 90 C 5C A0 0 1 2C 3 A7 AD 8 1 30 0 0 1 7E B F6 3 AC 0 2 95
304ms
82 11 F1 21 1 A6
1580ms
82 11 F1 21 1 A6
277ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C B2 1 7B C 77 0 0 2 B4 0 0 12 5F
110ms
4 3A 0 0 3 1F B AD 3 AC 4 2F 3 20 F0 5A 0 0 0 0 B 2F 3 97 3 28 8 AB 1 8F C 5C A0 0 1 2C 3 98 A9 8 1 30 0 0 1 7E B F5 3 AC 0 2 9F
293ms
82 11 F1 21 1 A6
1580ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C B2 1 87 C 79 0 0 2 B3 0 0 11 E6 4 39 0 0 3 1D B AD 3 AD 4
113ms
2F 3 20 F0 8A 0 0 0 0 B 2C 2 BB 3 33 8 AA 1 8E C 5C A0 0 1 2C 3 4E A9 8 1 30 0 0 1 7E B F5 3 AC 0 2 3F
703ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C B2 1 84 C 77 0 0 2 B5 0 0 12 34 4
111ms
3E 0 0 3 21 B A7 3 AD 4 2E 3 20 EF FB 0 0 0 0 B 73 3 78 3 16 8 A8 1 91 C 5C A0 0 1 2C 3 89 A9 8 1 30 0 0 1 7E B F5 3 AD 0 2 22
1100ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C B4 1 84 C 77 0 0 2 B4 0 0 12 6A 4 3A 0 0
112ms
3 1F B A6 3 AD 4 2E 3 20 F0 1B 0 0 0 0 B 71 3 80 3 1C 8 AA 1 8E C 5C A0 0 1 2C 3 41 A9 8 1 30 0 0 1 7E B F5 3 AD 0 2 36
298ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C B4 1 7A C 79 0 0 2 B3 0 0 12 3F 4 3A 0 0 3 21 B A8 3 AC
111ms
4 2E 3 20 F0 16 0 0 0 0 B 70 2 A0 3 17 8 A9 1 90 C 5C A0 0 1 2C 3 69 A9 8 1 30 0 0 1 7E B F5 3 AC 0 2 41
1087ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C B4 1 82 C 79 0 0 2 B2 0 0 12 25 4 3E
109ms
0 0 3 20 B A6 3 AD 4 2E 3 20 F0 0 0 0 0 0 B 71 3 7E 3 17 8 A9 1 8F C 5C A0 0 1 2C 3 69 A9 8 1 30 0 0 1 7E B F5 3 AD 0 2 FA
525ms
82 11 F1 21 1 A6 80 F1 11 4C 61 1 0 0 0 0 0 0 0 0 C B4 1 7A C 79 0 0 2 B2 0 0 12 B 4 3A 0
111ms
0 3 22 B A6 3 AC 4 2E 3 20 EF DB 0 0 0 0 B 73
сделал задержку на 31 байте. ДА ДА ДА ДА. MaksVV ТЫ ВЕЛИКИЙ ИЗ ВЕЛИКИХ. начинаю штудировать байты. Напомни мне работу кнопки, щас подцеплю и буду штудировать байты.
приду домой попробую написать скетч чтобы не через кнопку, а с компа можно было байты изменять, т.е. дуня будет получать команды на изменение байта по Serial.
и нарисуй или сфоткай ещё распиновку L9637D а то я не могу ключик найти откуда считать ноги. Такто распиноквка у меня есть из даташита. Я подозреваю что у меня не робит, потому что на китайском бредборде собираю, там блин контакнты везде плохие. Надо плату разводить
нарисовал как смог. фотка выходит г.... по этому там же нарисовал L9637D и диод для оринтеровки, схема адаптера из моего 8-го поста. СХЕМА ПОДКЛЮЧЕНИЯ ОП КОМ +АРДУИНО+АДАПТЕР К-ЛИНЕ+БЛОК ПИТАНИЯ 12В
так же выкладываю рабочий скетч, как говорится EMUL.MaksVV vercion final
class BUTTON {
public:
//================================================================
static const byte bounce_ = 50; // длительность отслеживания дребезга.
static const byte doubleclick_ = 200; // длительность отслеживания двойного клика.
static const unsigned long timer_ = 1200000; // длительность отслеживания неактивности.
static const unsigned int retention_ = 1600; // длительность отслеживания нажатия и удержания.
//================================================================
boolean click_down;
boolean click_up;
boolean doubleclick;
boolean timer;
boolean retention;
//=================================
unsigned long m;
boolean p;
boolean b;
boolean dc;
byte c;
boolean t;
boolean r;
//=================================
byte _pb;
//=================================
BUTTON(byte pb) {
_pb = pb;
pinMode(_pb, INPUT);
digitalWrite(_pb, 1);
//====
click_down = 0;
click_up = 0;
doubleclick = 0;
timer = 0;
retention = 0;
//====
m = millis();
p = digitalRead(_pb);
b = 0;
dc = 0;
c = 0;
t = 0;
r = 0;
//====
}
void read() {
//=======================================================
unsigned long nm = millis();
boolean np = digitalRead(_pb);
//=================
boolean nb = 0;
boolean ndc = 0;
boolean nt = 0;
boolean nr = 0;
//================
click_down = 0;
click_up = 0;
doubleclick = 0;
timer = 0;
retention = 0;
//=================
if (np != p) {p = np; m = nm; }
//=======================================================
if (nm - m > bounce_) {nb = 1;}
if (nm - m > doubleclick_) {ndc = 1;}
if (ndc != dc) {dc = ndc; if (dc == 1) {c = 0;}}
if (nb != b) {b = nb;
if (p == 0 && b == 0) {click_down = 1;
++c; if (c == 2) {c = 0; doubleclick = 1;}
}
if (p == 1 && b == 1) {click_up = 1;}
}
//=======================================================
if (nm - m > timer_) {nt = 1;}
if (nt != t) {t = nt;
if (p == 1 && t == 1) {timer = 1;}
}
//=======================================================
if (nm - m > retention_) {nr = 1;}
if (nr != r) {r = nr;
if (p == 0 && r == 1) {retention = 1;}
}
//=======================================================
}
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BUTTON button(12); // вход кнопки (digital pin arduino)
int bytenumber = 0;
///////////////////////////////////////////////////////////////////////
// Всё что выше для считывания кнопки
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); //R,T
unsigned long prevTimedelay = 0;
int length5 = 5;
int length7 = 7;
byte MessageRx[110] = {0}; // массив байтов принимаемого сообщения
byte messageCOMUN[7] = {0x83, 0xF1, 0x11, 0xC1, 0x6B, 0x8F, 0x40};
byte messagePRES[5] = {0x81, 0xF1, 0x11, 0x7E, 0x01};
int length44 = 44;
byte messageIDEN1[44] = {0xA8, 0xF1, 0x11, 0x5A, 0x81, 0x04, 0x90, 0x6F, 0x62, 0x03, 0x91, 0x6B, 0x03,
0x92, 0x6B, 0x03, 0x93, 0x01, 0x03, 0x94, 0x6A, 0x03, 0x95, 0x02, 0x03, 0x96, 0x66, 0x03, 0x97, 0x69,
0x03, 0x98, 0x6A, 0x03, 0x99, 0x44, 0x03, 0x9A, 0x02, 0x03, 0x9F, 0x6A, 0xFF, 0xAC};
// A8 F1 11 5A 81 04 90 6F 62 03 91 6B 03
// 92 6B 03 93 01 03 94 6A 03 95 02 03 96 66 03 97 69
// 03 98 6A 03 99 44 03 9A 02 03 9F 6A FF AC
int length100 = 100;
byte messageIDEN2[100] = {0x80, 0xF1, 0x11, 0x5F, 0x5A, 0x80, 0x57, 0x30, 0x4C, 0x30, 0x54, 0x47, 0x46, 0x37,
0x35, 0x31, 0x32, 0x32, 0x33, 0x33, 0x37, 0x31, 0x34, 0x32, 0x34, 0x34, 0x31, 0x37, 0x31, 0x36, 0x39, 0x20,
0x50, 0x44, 0x42, 0x4F, 0x53, 0x20, 0x20, 0x30, 0x31, 0x30, 0x35, 0x30, 0x35, 0xFF, 0x4B, 0x4D, 0x37, 0x4D,
0x33, 0x30, 0x34, 0x30, 0x5F, 0x53, 0x00, 0x06, 0x42, 0x30, 0x31, 0x30, 0x31, 0x35, 0x59, 0x32, 0x30, 0x44,
0x54, 0x48, 0x20, 0x44, 0x33, 0x53, 0x30, 0x30, 0x31, 0x30, 0x30, 0x36, 0x39, 0x34, 0x30, 0x20, 0x07, 0x07,
0x25, 0x05, 0x48, 0x30, 0x32, 0x38, 0x31, 0x30, 0x031, 0x30, 0x32, 0x36, 0x38, 0xFF};
int length81 = 81;
byte messagePIDS[81] = {0x80, 0xF1, 0x11, 0x4C, 0x61, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0C, //Coolant Temperature
0x37, //Coolant Temperature
0x01, //Actual injection start
0x92, //Actual injection start
0x0C, //Engine Oil Temperature
0xEB, //Engine Oil Temperature
0x00, //Accelerator Position Sensor Signal
0x00, //Accelerator Position Sensor Signal
0x02, //System Voltage
0xB3, //System Voltage
0x00, //High Pressure Diagnosis 1
0x00, //High Pressure Diagnosis 1
0x11, //Mass Air Flow Sensor
0x89, //Mass Air Flow Sensor
0x04, //Boost Pressure
0x30, //Boost Pressure
0x00, //High Pressure Diagnosis 2
0x00, //High Pressure Diagnosis 2
0x03, //Engine Speed
0x20, //Engine Speed
0x0B, //EGR Command (Exhaust-Gas Recirculation Command)
0x55, //EGR Command (Exhaust-Gas Recirculation Command)
0x03, //Barometer Sensor
0xA3, //Barometer Sensor
0x04, //Boost Pressure Command
0x2D, //Boost Pressure Command
0x03, //Desired Engine Idle Speed
0x20, //Desired Engine Idle Speed
0xEE,
0xB9,
0x00, //Vehicle Speed
0x00, //Vehicle Speed
0x00, //Vehicle Speed Command
0x00, //Vehicle Speed Command
0x0C,
0x35,
0x03, //Desired Injection Quantity
0x0A, //Desired Injection Quantity
0x02, //Injection Quantity
0xD9, //Injection Quantity
0x08, //Start of Delivery
0xA3, //Start of Delivery
0x01, //Pump Speed
0x90, //Pump Speed
0x0C, //Fuel Temperature
0x27, //Fuel Temperature
0xA0,
0x00,
0x01, //EGR Pulse Ratio (Exhaust Gas Recirculation)
0x5C, //EGR Pulse Ratio (Exhaust Gas Recirculation)
0x02, //Swirl Level Control Solenoid Valve Pulse Ratio
0x76, //Swirl Level Control Solenoid Valve Pulse Ratio
0xAD,
0x08,
0x01,
0x30,
0x00, //Pulse Ratio Boost Pressure Solenoid Valve
0x03, //Pulse Ratio Boost Pressure Solenoid Valve
0x01, //Desired Injection Start
0x7B, //Desired Injection Start
0x0B, //Intake Air Temperature
0xDB, //Intake Air Temperature
0x03,
0xA3,
0x00,
0x02,
0x1F};
int waitbyte=5;
unsigned long TimeLED, timerLED = 0;
bool timerenabledLED = 0;
#define TIMEREXPIRED_LED (TimeLED - timerLED)> 1200 // время включения светодиода если кнопка длительно нажата, мс
void setup() {
Serial.begin (115200);
mySerial.begin (10400);
pinMode (13, OUTPUT);
digitalWrite (13,0);
Serial.print ("Tekuchiy Nomer Byte dlya izmeneniya: "); Serial.println (bytenumber); Serial.println ("");
}
void loop() {
button.read();
TimeLED = millis ();
if (button.click_down) { messagePIDS[bytenumber]++; } // коротким нажатием на кнопку изменяем значение выбранного байта
if (button.retention) { bytenumber++; digitalWrite (13,1) ; timerLED=TimeLED; timerenabledLED=1;
Serial.print ("Tekuchiy Nomer Byte dlya izmeneniya: "); Serial.println (bytenumber); Serial.println ("");} // длительным нажатием на кнопку изменяем номер байта, который будем менять
if (timerenabledLED){ if (TIMEREXPIRED_LED) {timerenabledLED=0;digitalWrite (13,0);}}
if (mySerial.available()) {
delay(100);
int k=0;
byte inbyte=0;
while( mySerial.available() && k < 100) {
inbyte = mySerial.read();
MessageRx[k] = inbyte;
k++; }
Serial.print ("Recieve: ");
for (int i = 0; i < k; i++) {
Serial.print(MessageRx[i],HEX); Serial.print (" ");}
Serial.println ("");
if ((MessageRx[1]==0x81 && MessageRx[2]==0x11 && MessageRx[3]==0xF1 && MessageRx[4]==0x81 && MessageRx[5]==0x04)|| (MessageRx[0]==0x81 && MessageRx[1]==0x11 && MessageRx[2]==0xF1 && MessageRx[3]==0x81 && MessageRx[4]==0x04)) {
Serial.println ("Prinyat zapros init! "); Serial.println ("");
Serial.print ("Otvechayu: ");
for (int i = 0; i < length7; i++) {
mySerial.write(messageCOMUN[i]);
Serial.print(messageCOMUN[i],HEX); Serial.print (" ");
}
Serial.println("");
}
if (MessageRx[0]==0x81 && MessageRx[1]==0x11 && MessageRx[2]==0xF1 && MessageRx[3]==0x3E && MessageRx[4]==0xC1) {
Serial.println ("Prinyat zapros prisutstvia! "); Serial.println ("");
// Serial.print ("Tekuchiy Nomer Byte dlya izmeneniya: "); Serial.println (bytenumber); Serial.println ("");
Serial.print ("Otvechayu: ");
for (int i = 0; i < length5; i++) {
mySerial.write(messagePRES[i]);
Serial.print(messagePRES[i],HEX); Serial.print (" ");
}
Serial.println("");
}
if (MessageRx[0]==0x82 && MessageRx[1]==0x11 && MessageRx[2]==0xF1 && MessageRx[3]==0x1A && MessageRx[4]==0x81 && MessageRx[5]==0x1F) {
Serial.println ("Prinyat zapros identificacion 1! "); Serial.println ("");
Serial.print ("Otvechayu: ");
for (int i = 0; i < length44; i++) {
mySerial.write(messageIDEN1[i]);
Serial.print(messageIDEN1[i],HEX); Serial.print (" ");
}
Serial.println("");
Serial.print ("Otvechayu DEC: ");
for (int i = 0; i < length44; i++) {
Serial.print(messageIDEN1[i]); Serial.print (" ");
}
Serial.println("");
}
if (MessageRx[0]==0x82 && MessageRx[1]==0x11 && MessageRx[2]==0xF1 && MessageRx[3]==0x1A && MessageRx[4]==0x80 && MessageRx[5]==0x1E) {
Serial.println ("Prinyat zapros identificacion 2! "); Serial.println ("");
Serial.print ("Otvechayu: ");
for (int i = 0; i < length100; i++) {
mySerial.write(messageIDEN2[i]);
Serial.print(messageIDEN2[i],HEX); Serial.print (" ");
}
Serial.println("");
Serial.print ("Otvechayu DEC: ");
for (int i = 0; i < length100; i++) {
Serial.print(messageIDEN2[i]); Serial.print (" ");
}
Serial.println("");
}
if (MessageRx[0]==0x82 && MessageRx[1]==0x11 && MessageRx[2]==0xF1 && MessageRx[3]==0x21 && MessageRx[4]==0x01 && MessageRx[5]==0xA6) {
Serial.println ("Prinyat zapros datos! "); Serial.println ("");
Serial.print ("Otvechayu: ");
for (int i = 0; i < length81; i++) {
mySerial.write(messagePIDS[i]);
if (i==31){ delay (113);Serial.println ("");}
Serial.print(messagePIDS[i],HEX); Serial.print (" ");
}
Serial.println("");
}
}
}
спасибо за схему, я всё также подключал и распиновку в принципе так же делал. Единственное сопротивление в адаптере у меня не 510 Ом а где то 660 чтоли ,но я думаю это пофиг. Где-то видать не контакт. Я добился только, что в монитор одни FF приходят от диагностики и всё. ладно спаяю получше , должно заработать. Ну как у тебя выводятся формулы ? Если какое то число будет представлено двумя байтами, например обороты двигла, то забить их в переменную можно как в сообщении 25.
Да , пробовал и не раз. но правильно RX дуни (пин 10 по нашему скетчу) к RX адаптера. короче кое как добился чтоб между дунями (подключены через к-лайн адаптеры). летала инфа. Но летает в одну сторону. потом подключил опком, выбрал твой двс, короче он шлет такой инит 0 01 11 01 F1 04. почему то не 81 а 01. Ну я ему ответил на инит, а опком молчи грит нет связи, видать адаптер только принимает сообщения но не отсылает. Надо паять явно контакта нет
по формулам, тут другая спецификация, стандартные формулы не канают, тут на каждый пид 2 байта. здесь в пидах 1 байт это целое число а 2 байт это десятичное. единственное что смог прощитать это RPM. стандартная формула это (A*256)+B/4 а здесь (A*256)+B, без деления на четыре. например температура имеет два байт
0x0C, //Coolant Temperature
0x37, //Coolant Temperature
значение 39 градусов
0x0С =DEC 12 а 0x37=DEC 55 нужно получить 39 //Coolant Temperature
нужно тенденцию изменения улавливать, надо две температуры, например байты для значения 39 и для зачения 40. так будет проще. для остальных параметров соответсвенно также хотябы по два замера делать
поставь второй байт температуры 0х00 и поизменяй первый байт, потом наоборот первый байт 0. и почему ты говоришь второй байт шаг в десять градусов? вроде как в один градус
там всё остальное должно быть правильно. ты как раз ошибся в байте №11 а это наша строка 145 т.е. ECUHardwareNumber и ошибся ты как раз на 3 если в DEC рассматривать. А это и есть количество символов, которое он выпускает из номера hardware.
Ох получится, тачняк. :) завтра узнаем.
MaksVV не знаю кем ты работаешь но тебе бы в программисты. сработало, 0x03 это действительно разделитель. есть две вещи, отобоажает 0006 вместо 6 и FF всесто 255. на счет 6 не знаю или принцепиально, но FF думаю да. вот результат
Ты подправь сообщение datos. Скопируй байты из последнего снифа. Просто у нас в скетче вроде больше байт. По поводу FF и 0006 подумаю
ок, щас поищу последний сниф
походу надо еще сниффить сеанс связи опком - эмулятор, чтоб понимать что к чему. Есть ещё ардуино? С адаптерами то у тебя вроде как порядок.
я думал, былбы второй ардунино проснифить эумлятор, но увы нет. перепроверил сообщение несколько раз нашел один косяк 0х91 а надо 0х92. но ничего не поменялось. все точняк точняяком. заметил еще одну вещь, опком работает так, полчуает инит, получает данные с двух сообщений, потом посылает без перерыва присутствие, и только если я иду в лайф дата он шлет 21 01 и получает данные . эмулятор делате так, отвечает на инит, отвечает на два идентификатора а потм опком ему шлет присутсвие четыре раза, эмулятор не отвечает и он сново посылает эмулятору инит и так по кругу, вот так
нормально с авто при заходе в лайф дата опком начинает 2-3 раза подряд слать 21 01, а вот что происходит в эмуляторе если я получил данные и сразу иду в лайф дата
он четыре раза отправил дата а потом почемуто начал опять инит , тут то и выскакивает ошибка комуникации. может сдесь гдето собака порылась?
вот скетч
вижу первый косяк что он не отвеичает на присутсвие
косяк с присутсвием исправил, сместил байти ои 0-ля были от 1-го
осталась вторая проблем, четыре раза отправляет данные а потом сново инит, щас проверю отправляемое сообщение 21 00 , так поборол и этот косяк сообщение отправляемое было 83 байта а должно было 81 байта, получил данные в проге, отсалься последний косяк почемуто через время вылетает ошибка комуникации, плсмотрел в скетч он переходит на инит, вот результаты
я тебе сразу сказал что у нас в скетче datos больше байт чем надо
получил данные в проге
не ужели это произошло? победа однако
надо было сразу выкладывать сеанс связи эмулятора и опкома. Тут сниффер то и не нужен. Дуня сама всесообщения в сериал выкладывает)) эдакий эмулятор-снифер. А опком быстро связь рвет? можно успеть данные рассомтреть?
кстати попробуй в твоем скетче из сообщения 357, вместо строки 179 (проверка байтов на инит) вставить вот так
да MaksVV это очередная победа. связь рвется гдето черз 5-10 секунд. данные все показывает и можно рассмотреть и даже успеть зайти на вторую страницу где углы и все такое. щас попробую последнее из 361 го сообщения.
не помогло. все таже шняга, вот результат
почему опком после нескольких полученых ответов присутсвия, просит сново инит?. второй раз получает инит и данные а на третий раз у него не выходит инит и из за этого вылето ошибки комуникации. в последнем снифе видно что он только 21 01 отправляет и ничего больше при входе в лайф дата, причем он посылает 2-3 раза запрос подряд.
когда перехожу на следующую страницу то он почему то снова делает инит. а не должен, должен только 21 00 перезапрашивать. по ходу сам эмулятор рвет соединение и потом не может его дать на третью помытку. вот последний сниффер , ниже много запросов 21 01 , это я по страницам ходил. со строки 079
вот ттут может задержки 113мс раскоментиовать, в середине сообщений. Так же как в снифе мы видим
чета я туплю, где ты имеешь в виду? рвать отвте 21 00 на две чатси и между ними задержку 113 м/с? на определеннном байте сделать задержку?
да
щас попробуем
может буфер у прогаммы опком не успевает нормально байты принимать, хотя сомневаюсь конечно. А что делать, кому щас легко
тут ты прав. кому щас легко :)
Да черт побери, это сработало, все стабильно
чета кнопочка не там гле нужно меняет, то заголовки исчезаю то кусок интерфейса.
Короче нужно изенять байты, начиная с 3-го. Поставь в строке 95
int bytenubmer =3; если не прокатит 4 пробуй
Крутяк что заработало
приду домой попробую написать скетч чтобы не через кнопку, а с компа можно было байты изменять, т.е. дуня будет получать команды на изменение байта по Serial.
я без кнопки менял в скетче , загружал и опком на ходу мне выдает изменение. почти закончил, щас выложу, это кртяк из крутяков.
вот расшифровка. начинаю работать над скетчем.
каждый второй байт это десятичный байт, после запятой
KWP капитулировал. Хакнули мы этот протокол, е-ее!!!
точняк. с потрохами блин на...
а ты когда опком цепляешь к эмулятору 12В подаешь?
щас схемку нарисую
и нарисуй или сфоткай ещё распиновку L9637D а то я не могу ключик найти откуда считать ноги. Такто распиноквка у меня есть из даташита. Я подозреваю что у меня не робит, потому что на китайском бредборде собираю, там блин контакнты везде плохие. Надо плату разводить
с ключиком просто. ставь надписью к себе и срез с твоей сторы должен быть, левая нижняя нога это 1. щас может сфоткаю.
нарисовал как смог. фотка выходит г.... по этому там же нарисовал L9637D и диод для оринтеровки, схема адаптера из моего 8-го поста. СХЕМА ПОДКЛЮЧЕНИЯ ОП КОМ +АРДУИНО+АДАПТЕР К-ЛИНЕ+БЛОК ПИТАНИЯ 12В
так же выкладываю рабочий скетч, как говорится EMUL.MaksVV vercion final
работаем дальше.
спасибо за схему, я всё также подключал и распиновку в принципе так же делал. Единственное сопротивление в адаптере у меня не 510 Ом а где то 660 чтоли ,но я думаю это пофиг. Где-то видать не контакт. Я добился только, что в монитор одни FF приходят от диагностики и всё. ладно спаяю получше , должно заработать. Ну как у тебя выводятся формулы ? Если какое то число будет представлено двумя байтами, например обороты двигла, то забить их в переменную можно как в сообщении 25.
А блин в натуре срез же есть на микрухе)) чето я сразу его не увидел. Выемку с торца искал, а тут срез, Ну всё равно я правильно подключил.
Щас с формулами сяду разберутся. Есть значения из опком, по ним и буду ориентироваться. А потом скетч
А пробовал менять RX TX местами? Глупый вопрос, но все же.... и прозванивал ли тестером напряжение на микрухе.
Да , пробовал и не раз. но правильно RX дуни (пин 10 по нашему скетчу) к RX адаптера. короче кое как добился чтоб между дунями (подключены через к-лайн адаптеры). летала инфа. Но летает в одну сторону. потом подключил опком, выбрал твой двс, короче он шлет такой инит 0 01 11 01 F1 04. почему то не 81 а 01. Ну я ему ответил на инит, а опком молчи грит нет связи, видать адаптер только принимает сообщения но не отсылает. Надо паять явно контакта нет
сел рисовать плату K-line CAN сниффера
прикольно. ты гений у тебя все получится, я даже не сомневаюсь.
по формулам, тут другая спецификация, стандартные формулы не канают, тут на каждый пид 2 байта. здесь в пидах 1 байт это целое число а 2 байт это десятичное. единственное что смог прощитать это RPM. стандартная формула это (A*256)+B/4 а здесь (A*256)+B, без деления на четыре. например температура имеет два байт
0x0C, //Coolant Temperature
0x37, //Coolant Temperature
значение 39 градусов
0x0С =DEC 12 а 0x37=DEC 55 нужно получить 39 //Coolant Temperature
или вот
0x03, //Desired Injection Quantity
0x0A, //Desired Injection Quantity
значение 7,8 mg/strk , как видишь сдесь есть десятичное число
0x03=DEC 3 ,0x0A=DEC 10, как получить это.......
блин.... может есть какието калькуляторы, забить две цыфры и желаемый результат? или подскажи схему подбора расчета. чет я совсем туплю.
нужно тенденцию изменения улавливать, надо две температуры, например байты для значения 39 и для зачения 40. так будет проще. для остальных параметров соответсвенно также хотябы по два замера делать
Ок. Завтра сделаю по второму измерения
наверное по формулам пидов надо сюда спрашивать http://www.pccar.ru/showthread.php?t=16704
MaksVV, почти подобрал все формулы, последнее это *C ,*CA, никак не потдаются.
в температуре заметил что 0x0B это 8гр, 0x0C это 34гр, 0x0D это 59. получается шаг в 25гр. второй байт это шаг в десять градусов . вот примеи.........
0x0C(DEC=12)(34гр), 0x10(DEC=16)(+1гр)= 35гр,
0x0C(DEC=12)(34гр), 0x15(DEC=21)(+2гр)= 36гр
0x0C(DEC=12)(34гр), 0x20(DEC=32)(+3гр)= 37гр
0x0C(DEC=12)(34гр), 0x25(DEC=37)(+4гр)= 38гр , получается 0х05 это 1 градус.
формула темературы ("A" что то сделать с первым байтом)+(B/5). второй байт надо делить на пять, это точно. а вот что сделать с первым байтом?
0x0C(DEC=12)(34гр) как получить 34 из этого 0x0C(DEC=12)?
0x0D(DEC=13)(59гр) или из этого 59гр?
поставь второй байт температуры 0х00 и поизменяй первый байт, потом наоборот первый байт 0. и почему ты говоришь второй байт шаг в десять градусов? вроде как в один градус
уже делал. я понял примерно формула темературы ("A" что то сделать с первым байтом)+(B/5). не могу просчитать
0C =34гр, 0D =59гр, 0E =85гр. шаг в 26гр. второй байт добавляет единицы. не могу найти как первый байты превратить в его температуры
как DEC 12 сделать 34, DEC 13 в 59, DEC 14 в 85. пробовал так 1 шаг это 26, значит (12-10)*26)+B/5. но не выходит
выше исправил. было по два градуса лишних.