Вот получил я пакет:
Code: Select all
40 71 00 00 01 CB 00 00 FB CE 00 00 00 00 00 00 00 11 00 00 00 00 00 00 0A 82 C8 00 00 00 00 00 7F FF 00 00 7F FF 7F FF 7F FF 7F FF 7F FF 00 00 00 00 00 00 0D
71 - q \\ SENSOR_DAT
...
0D - CR \\ Конец пакета
Расписал этот пакет:
Code: Select all
\\ 40 \ Начало пакета
case SENSOR_DAT: \\ 71 \ SENSOR_DAT
build_i16h(d->sens.frequen); \\ 00 00 \ 0
build_i16h(d->sens.map); \\ 01 CB \ 7,17
build_i16h(d->sens.voltage); \\ 00 00 \ 0
build_i16h(d->sens.temperat); \\ FB CE \ 16115,5=64462\4
build_i16h(d->corr.curr_angle); \\ 00 00 \ 0
build_i16h(d->sens.knock_k); \\ 00 00 \ 0
build_i16h(d->corr.knock_retard); \\ 00 00 \ 0
build_i8h(d->airflow); \\ 00 \ 0
build_i8h((d->ie_valve << 0) | \\ 11 \ ЭПХХ=1 СЕ=1
(d->sens.carb << 1) |
(d->sens.gas << 2) |
(d->fe_valve << 3) |
(d->ce_state << 4) |
(d->cool_fan << 5) |
(d->st_block << 6));
build_i8h(d->sens.tps); \\ 00 \ 0
build_i16h(d->sens.add_i1); \\ 00 00 \ 0
build_i16h(d->sens.add_i2); \\ 00 00 \ 0
build_i16h(d->ecuerrors_for_transfer); \\ 00 0A \ 0000000000001010
build_i8h(d->choke_pos); \\ 82
build_i16h(d->sens.speed); \\ C8 00 \ 0
build_i24h(d->sens.distance); \\ 00 00 \ 0
build_i16h(d->sens.air_temp); \\ 00 00 \ 0
build_i16h(d->corr.strt_aalt); \\ 7F FF \
build_i16h(d->corr.idle_aalt); \\ 00 00 \
build_i16h(d->corr.work_aalt); \\ 7F FF \
build_i16h(d->corr.temp_aalt); \\ 7F FF \
build_i16h(d->corr.airt_aalt); \\ 7F FF \
build_i16h(d->corr.idlreg_aac); \\ 7F FF \
build_i16h(d->corr.octan_aac); \\ 7F FF \
build_i16h(d->corr.lambda); \\ 00 00 \
build_i16h(d->inj_pw); \\ 00 00 \
\\ 00 00 \
\\ 0D \ Конец пакета
Можешь объяснить какие коэффициенты нужно применять и к каким данным?
Например:
Code: Select all
Абсолютное давление во впускном коллекторе (давление кПа * 64)