Обновление
This commit is contained in:
parent
9cde8e5ead
commit
5d3da3d028
|
|
@ -925,13 +925,17 @@ _Noreturn void CanXcpProcessing_ServiceTask(tCanSerialPortFrameXCP *env) {
|
|||
env->response[1] = i; // DAQ
|
||||
size = 0;
|
||||
|
||||
for (uint8_t k = 0; k < env->DAQ[i].ODT_NUMBER[j].ODT_ENTRIES_COUNT; ++k) {
|
||||
for (uint8_t k = 0; k < MAX_ODT_ENTRIES_SIZE; ++k) {
|
||||
|
||||
memcpy(&env->DATA[size],
|
||||
(uint8_t *) env->DAQ[i].ODT_NUMBER[j].ODT_ENTRIES_ADR[k],
|
||||
env->DAQ[i].ODT_NUMBER[j].ODT_ENTRIES_SIZE[k]);
|
||||
if (env->DAQ[i].ODT_NUMBER[j].ODT_ENTRIES_SIZE[k]) {
|
||||
|
||||
size += env->DAQ[i].ODT_NUMBER[j].ODT_ENTRIES_SIZE[k];
|
||||
memcpy(&env->DATA[size],
|
||||
(uint8_t *) env->DAQ[i].ODT_NUMBER[j].ODT_ENTRIES_ADR[k],
|
||||
env->DAQ[i].ODT_NUMBER[j].ODT_ENTRIES_SIZE[k]);
|
||||
|
||||
size += env->DAQ[i].ODT_NUMBER[j].ODT_ENTRIES_SIZE[k];
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -943,12 +947,13 @@ _Noreturn void CanXcpProcessing_ServiceTask(tCanSerialPortFrameXCP *env) {
|
|||
for (uint8_t k = 0; k < count_size; ++k) {
|
||||
memcpy(&env->response[2], &env->DATA[size], BODY_MAX_LEN);
|
||||
env->ioCanFrame->transmit(env->ioCanFrame->env, env->response, MAX_DTO, 1000);
|
||||
size += 6;
|
||||
size += BODY_MAX_LEN;
|
||||
}
|
||||
|
||||
if (count_size_tail) {
|
||||
memcpy(&env->response[2], &env->DATA[size], count_size_tail);
|
||||
env->ioCanFrame->transmit(env->ioCanFrame->env, env->response, count_size_tail, 1000);
|
||||
env->ioCanFrame->transmit(env->ioCanFrame->env, env->response, count_size_tail,
|
||||
1000);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -959,15 +964,43 @@ _Noreturn void CanXcpProcessing_ServiceTask(tCanSerialPortFrameXCP *env) {
|
|||
|
||||
size = 0;
|
||||
|
||||
for (uint8_t k = 0; k < env->DAQ[i].ODT_NUMBER[j].ODT_ENTRIES_COUNT; ++k) {
|
||||
for (uint8_t k = 0; k < MAX_ODT_ENTRIES_SIZE; ++k) {
|
||||
|
||||
memcpy((uint8_t *) env->DAQ[i].ODT_NUMBER[j].ODT_ENTRIES_ADR[k],
|
||||
&env->DAQ[i].ODT_NUMBER[j].DATA_STM[size],
|
||||
env->DAQ[i].ODT_NUMBER[j].ODT_ENTRIES_SIZE[k]);
|
||||
if (env->DAQ[i].ODT_NUMBER[j].ODT_ENTRIES_SIZE[k]) {
|
||||
|
||||
memcpy(&env->DATA[size],
|
||||
env->DAQ[i].ODT_NUMBER[j].DATA_STM[k].DATA,
|
||||
env->DAQ[i].ODT_NUMBER[j].ODT_ENTRIES_SIZE[k]);
|
||||
|
||||
size += env->DAQ[i].ODT_NUMBER[j].ODT_ENTRIES_SIZE[k];
|
||||
|
||||
}
|
||||
|
||||
size += env->DAQ[i].ODT_NUMBER[j].ODT_ENTRIES_SIZE[k];
|
||||
}
|
||||
|
||||
uint8_t size_stim = size;
|
||||
|
||||
for (uint8_t k = 0; k < MAX_ODT_ENTRIES_SIZE; ++k) {
|
||||
|
||||
if (env->DAQ[i].ODT_NUMBER[j].ODT_ENTRIES_SIZE[k]) {
|
||||
|
||||
if (size_stim <= size) {
|
||||
memcpy((uint8_t *) env->DAQ[i].ODT_NUMBER[j].ODT_ENTRIES_ADR[k],
|
||||
&env->DAQ[i].ODT_NUMBER[j].DATA_STM[k].DATA[size_stim],
|
||||
env->DAQ[i].ODT_NUMBER[j].ODT_ENTRIES_SIZE[k]);
|
||||
|
||||
size_stim += env->DAQ[i].ODT_NUMBER[j].ODT_ENTRIES_SIZE[k];
|
||||
} else {
|
||||
asm("nop");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue