Добавлен CAN-доступ к регистратору УМП через отдельный канал ответов
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
#include "../../Source/Internal/log_to_mem.c"
|
||||
#include "../../Source/Internal/Include/ump_can_protocol.h"
|
||||
struct mock_gpio GpioDataRegs;
|
||||
int READY = 1, Desk = 6, Mode = 5;
|
||||
int modbus[128];
|
||||
@@ -10,7 +11,7 @@ unsigned int ADC_table[4];
|
||||
/* Возвращаем номер строки при ошибке, ноль при успехе; CRT не требуется. */
|
||||
__declspec(dllexport) int run_tests(void)
|
||||
{
|
||||
unsigned int i, generation, archived;
|
||||
unsigned int i, generation, archived, reply[UMP_CAN_MAX_WORDS], error, length;
|
||||
unsigned long sequence;
|
||||
CHECK(!ump_log_write(UMP_LOG_BASE+1, 0));
|
||||
CHECK(!ump_log_write(UMP_LOG_BASE+1, 1001));
|
||||
@@ -67,5 +68,22 @@ __declspec(dllexport) int run_tests(void)
|
||||
CHECK(ump_post == 1000);
|
||||
for (i=0; i<1000; i++) ump_log_tick();
|
||||
CHECK(ump_generation == generation+1);
|
||||
/* CAN читает те же регистры и формирует цельный снимок из 124 слов.
|
||||
* Запись по старым технологическим адресам через сервис запрещена. */
|
||||
length = ump_can_prepare(3, UMP_LOG_BASE, 16, reply, &error);
|
||||
CHECK(!error && length == 16 && reply[0] == 0x554D && reply[1] == 2);
|
||||
length = ump_can_prepare(3, UMP_LOG_LIVE, 124, reply, &error);
|
||||
CHECK(!error && length == 124);
|
||||
ump_can_prepare(3, UMP_LOG_LIVE, 126, reply, &error);
|
||||
CHECK(error == 2);
|
||||
ump_can_prepare(6, 127, 0x80, reply, &error);
|
||||
CHECK(error == 2 && modbus[127] == 0);
|
||||
length = ump_can_prepare(6, UMP_LOG_BASE, 0, reply, &error);
|
||||
CHECK(!error && length == 2 && reply[0] == UMP_LOG_BASE && reply[1] == 0);
|
||||
CHECK(ump_state == 3);
|
||||
ump_can_prepare(6, UMP_LOG_BASE+1, 0, reply, &error);
|
||||
CHECK(error == 3);
|
||||
ump_can_prepare(99, UMP_LOG_BASE, 16, reply, &error);
|
||||
CHECK(error == 1);
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user