/* * RS_Function_terminal.h * * Created on: 12 нояб. 2020 г. * Author: stud */ #ifndef SRC_XILINX_NIO12_RS_FUNCTION_TERMINAL_H_ #define SRC_XILINX_NIO12_RS_FUNCTION_TERMINAL_H_ #include "RS_Functions.h" typedef struct { CHAR analog1_lo; // младший байт заданной скорости CHAR analog1_hi; // старший байт заданной скорости CHAR analog2_lo; // младший байт заданной скорости CHAR analog2_hi; // старший байт заданной скорости CHAR analog3_lo; // младший байт заданной скорости CHAR analog3_hi; // старший байт заданной скорости //Добавлено длЯ Ледокола CHAR analog4_lo; // младший байт заданной скорости CHAR analog4_hi; // старший байт заданной скорости CHAR analog5_lo; // младший байт заданной скорости CHAR analog5_hi; // старший байт заданной скорости CHAR analog6_lo; // младший байт заданной скорости CHAR analog6_hi; // старший байт заданной скорости // CHAR analog7_lo; // младший байт заданной скорости CHAR analog7_hi; // старший байт заданной скорости CHAR analog8_lo; // младший байт заданной скорости CHAR analog8_hi; // старший байт заданной скорости CHAR analog9_lo; // младший байт заданной скорости CHAR analog9_hi; // старший байт заданной скорости CHAR analog10_lo; // младший байт заданной скорости CHAR analog10_hi; // старший байт заданной скорости CHAR analog11_lo; // младший байт заданной скорости CHAR analog11_hi; // старший байт заданной скорости CHAR analog12_lo; // младший байт заданной скорости CHAR analog12_hi; // старший байт заданной скорости CHAR analog13_lo; // младший байт заданной скорости CHAR analog13_hi; // старший байт заданной скорости CHAR analog14_lo; // младший байт заданной скорости CHAR analog14_hi; // старший байт заданной скорости CHAR analog15_lo; // младший байт заданной скорости CHAR analog15_hi; // старший байт заданной скорости } CMD_ANALOG_DATA_STRUCT; typedef union { struct { unsigned int bit0: 1; unsigned int bit1: 1; unsigned int bit2: 1; unsigned int bit3: 1; unsigned int bit4: 1; unsigned int bit5: 1; unsigned int bit6: 1; unsigned int bit7: 1; } bit_data; // Дискретные величины посылки побитно CHAR byte_data; // Дискретные величины посылки вместе } CMD_DIGIT_BYTE_STRUCT; // Дискретные величины typedef struct { CMD_DIGIT_BYTE_STRUCT Byte01; CMD_DIGIT_BYTE_STRUCT Byte02; CMD_DIGIT_BYTE_STRUCT Byte03; CMD_DIGIT_BYTE_STRUCT Byte04; } CMD_DIGIT_DATA_STRUCT; typedef struct { CHAR Address; // Адрес контроллера CHAR Number; // Номер команды } CMD_TMS_HEAD_STRUCT; typedef struct { // Заголовок CMD_TMS_HEAD_STRUCT head; // Аналоговые величины CMD_ANALOG_DATA_STRUCT analog_data; // Цифровые значениy CMD_DIGIT_DATA_STRUCT digit_data; // Контрольнаy сумма CHAR crc_lo; CHAR crc_hi; // Дополнительный байт CHAR add_byte; } CMD_TO_TMS_STRUCT; typedef struct { CHAR Address; // Адрес контроллера CHAR Number; // Номер команды } CMD_TMS_HEAD_TEST_ALL_STRUCT; typedef struct { CHAR analog1_lo; // младший байт заданной скорости CHAR analog1_hi; // старший байт заданной скорости CHAR analog2_lo; // младший байт заданной скорости CHAR analog2_hi; // старший байт заданной скорости } CMD_ANALOG_DATA_TEST_ALL_STRUCT; typedef struct { CMD_DIGIT_BYTE_STRUCT byte01; CMD_DIGIT_BYTE_STRUCT byte02; CMD_DIGIT_BYTE_STRUCT byte03; CMD_DIGIT_BYTE_STRUCT byte04; CMD_DIGIT_BYTE_STRUCT byte05; CMD_DIGIT_BYTE_STRUCT byte06; CMD_DIGIT_BYTE_STRUCT byte07; CMD_DIGIT_BYTE_STRUCT byte08; CMD_DIGIT_BYTE_STRUCT byte09; CMD_DIGIT_BYTE_STRUCT byte10; CMD_DIGIT_BYTE_STRUCT byte11; CMD_DIGIT_BYTE_STRUCT byte12; } CMD_DIGIT_DATA_TEST_ALL_STRUCT; typedef struct { // Заголовок CMD_TMS_HEAD_TEST_ALL_STRUCT head; // Аналоговые величины CMD_ANALOG_DATA_TEST_ALL_STRUCT analog_data; // Цифровые значениy CMD_DIGIT_DATA_TEST_ALL_STRUCT digit_data; // Контрольнаy сумма CHAR crc_lo; CHAR crc_hi; // Дополнительный байт CHAR add_byte; } CMD_TO_TMS_TEST_ALL_STRUCT; typedef struct { CMD_DIGIT_BYTE_STRUCT byte01; CMD_DIGIT_BYTE_STRUCT byte02; CMD_DIGIT_BYTE_STRUCT byte03; CMD_DIGIT_BYTE_STRUCT byte04; CMD_DIGIT_BYTE_STRUCT byte05; CMD_DIGIT_BYTE_STRUCT byte06; CMD_DIGIT_BYTE_STRUCT byte07; CMD_DIGIT_BYTE_STRUCT byte08; CMD_DIGIT_BYTE_STRUCT byte09; CMD_DIGIT_BYTE_STRUCT byte10; CMD_DIGIT_BYTE_STRUCT byte11; CMD_DIGIT_BYTE_STRUCT byte12; CMD_DIGIT_BYTE_STRUCT byte13; CMD_DIGIT_BYTE_STRUCT byte14; CMD_DIGIT_BYTE_STRUCT byte15; CMD_DIGIT_BYTE_STRUCT byte16; CMD_DIGIT_BYTE_STRUCT byte17; CMD_DIGIT_BYTE_STRUCT byte18; CMD_DIGIT_BYTE_STRUCT byte19; CMD_DIGIT_BYTE_STRUCT byte20; CMD_DIGIT_BYTE_STRUCT byte21; CMD_DIGIT_BYTE_STRUCT byte22; CMD_DIGIT_BYTE_STRUCT byte23; CMD_DIGIT_BYTE_STRUCT byte24; CMD_DIGIT_BYTE_STRUCT byte25; CMD_DIGIT_BYTE_STRUCT byte26; CMD_DIGIT_BYTE_STRUCT byte27; CMD_DIGIT_BYTE_STRUCT byte28; CMD_DIGIT_BYTE_STRUCT byte29; CMD_DIGIT_BYTE_STRUCT byte30; CMD_DIGIT_BYTE_STRUCT byte31; CMD_DIGIT_BYTE_STRUCT byte32; CMD_DIGIT_BYTE_STRUCT byte33; CMD_DIGIT_BYTE_STRUCT byte34; CMD_DIGIT_BYTE_STRUCT byte35; CMD_DIGIT_BYTE_STRUCT byte36; CMD_DIGIT_BYTE_STRUCT byte37; CMD_DIGIT_BYTE_STRUCT byte38; CMD_DIGIT_BYTE_STRUCT byte39; CMD_DIGIT_BYTE_STRUCT byte40; CMD_DIGIT_BYTE_STRUCT byte41; CMD_DIGIT_BYTE_STRUCT byte42; CMD_DIGIT_BYTE_STRUCT byte43; CMD_DIGIT_BYTE_STRUCT byte44; CMD_DIGIT_BYTE_STRUCT byte45; CMD_DIGIT_BYTE_STRUCT byte46; CMD_DIGIT_BYTE_STRUCT byte47; CMD_DIGIT_BYTE_STRUCT byte48; CMD_DIGIT_BYTE_STRUCT byte49; CMD_DIGIT_BYTE_STRUCT byte50; } ANS_DIGIT_DATA_TO_TERMINAL_STRUCT; // Дискретные величины посылки от СУ typedef struct { CHAR analog1_lo; CHAR analog1_hi; CHAR analog2_lo; CHAR analog2_hi; CHAR analog3_lo; CHAR analog3_hi; CHAR analog4_lo; CHAR analog4_hi; CHAR analog5_lo; CHAR analog5_hi; CHAR analog6_lo; CHAR analog6_hi; CHAR analog7_lo; CHAR analog7_hi; CHAR analog8_lo; CHAR analog8_hi; CHAR analog9_lo; CHAR analog9_hi; CHAR analog10_lo; CHAR analog10_hi; CHAR analog11_lo; CHAR analog11_hi; CHAR analog12_lo; CHAR analog12_hi; CHAR analog13_lo; CHAR analog13_hi; CHAR analog14_lo; CHAR analog14_hi; CHAR analog15_lo; CHAR analog15_hi; CHAR analog16_lo; CHAR analog16_hi; CHAR analog17_lo; CHAR analog17_hi; CHAR analog18_lo; CHAR analog18_hi; CHAR analog19_lo; CHAR analog19_hi; CHAR analog20_lo; CHAR analog20_hi; CHAR analog21_lo; CHAR analog21_hi; CHAR analog22_lo; CHAR analog22_hi; CHAR analog23_lo; CHAR analog23_hi; CHAR analog24_lo; CHAR analog24_hi; CHAR analog25_lo; CHAR analog25_hi; CHAR analog26_lo; CHAR analog26_hi; CHAR analog27_lo; CHAR analog27_hi; CHAR analog28_lo; CHAR analog28_hi; CHAR analog29_lo; CHAR analog29_hi; CHAR analog30_lo; CHAR analog30_hi; CHAR analog31_lo; CHAR analog31_hi; CHAR analog32_lo; CHAR analog32_hi; CHAR analog33_lo; CHAR analog33_hi; CHAR analog34_lo; CHAR analog34_hi; CHAR analog35_lo; CHAR analog35_hi; CHAR analog36_lo; CHAR analog36_hi; CHAR analog37_lo; CHAR analog37_hi; CHAR analog38_lo; CHAR analog38_hi; CHAR analog39_lo; CHAR analog39_hi; CHAR analog40_lo; CHAR analog40_hi; CHAR analog41_lo; CHAR analog41_hi; CHAR analog42_lo; CHAR analog42_hi; CHAR analog43_lo; CHAR analog43_hi; CHAR analog44_lo; CHAR analog44_hi; CHAR analog45_lo; CHAR analog45_hi; CHAR analog46_lo; CHAR analog46_hi; CHAR analog47_lo; CHAR analog47_hi; CHAR analog48_lo; CHAR analog48_hi; CHAR analog49_lo; CHAR analog49_hi; CHAR analog50_lo; CHAR analog50_hi; CHAR analog51_lo; CHAR analog51_hi; CHAR analog52_lo; CHAR analog52_hi; CHAR analog53_lo; CHAR analog53_hi; CHAR analog54_lo; CHAR analog54_hi; CHAR analog55_lo; CHAR analog55_hi; CHAR analog56_lo; CHAR analog56_hi; CHAR analog57_lo; CHAR analog57_hi; CHAR analog58_lo; CHAR analog58_hi; CHAR analog59_lo; CHAR analog59_hi; CHAR analog60_lo; CHAR analog60_hi; CHAR analog61_lo; CHAR analog61_hi; CHAR analog62_lo; CHAR analog62_hi; CHAR analog63_lo; CHAR analog63_hi; CHAR analog64_lo; CHAR analog64_hi; CHAR analog65_lo; CHAR analog65_hi; CHAR analog66_lo; CHAR analog66_hi; CHAR analog67_lo; CHAR analog67_hi; CHAR analog68_lo; CHAR analog68_hi; } TMS_ANALOG_DATA_STRUCT; typedef struct { // Заголовок CMD_TMS_HEAD_STRUCT head; // Цифровые значениy ANS_DIGIT_DATA_TO_TERMINAL_STRUCT digit_data; // Аналоговые величины TMS_ANALOG_DATA_STRUCT analog_data; // Контрольнаy сумма CHAR crc_lo; CHAR crc_hi; // Дополнительный байт CHAR add_byte; } TMS_TO_TERMINAL_STRUCT; #define TMS_TO_TERMINAL_STRUCT_DEFAULT {{0}, {0}, {0}, 0, 0, 0} typedef struct { CMD_DIGIT_BYTE_STRUCT byte01; CMD_DIGIT_BYTE_STRUCT byte02; CMD_DIGIT_BYTE_STRUCT byte03; CMD_DIGIT_BYTE_STRUCT byte04; CMD_DIGIT_BYTE_STRUCT byte05; CMD_DIGIT_BYTE_STRUCT byte06; CMD_DIGIT_BYTE_STRUCT byte07; CMD_DIGIT_BYTE_STRUCT byte08; CMD_DIGIT_BYTE_STRUCT byte09; CMD_DIGIT_BYTE_STRUCT byte10; CMD_DIGIT_BYTE_STRUCT byte11; CMD_DIGIT_BYTE_STRUCT byte12; CMD_DIGIT_BYTE_STRUCT byte13; CMD_DIGIT_BYTE_STRUCT byte14; CMD_DIGIT_BYTE_STRUCT byte15; CMD_DIGIT_BYTE_STRUCT byte16; CMD_DIGIT_BYTE_STRUCT byte17; CMD_DIGIT_BYTE_STRUCT byte18; CMD_DIGIT_BYTE_STRUCT byte19; CMD_DIGIT_BYTE_STRUCT byte20; CMD_DIGIT_BYTE_STRUCT byte21; CMD_DIGIT_BYTE_STRUCT byte22; CMD_DIGIT_BYTE_STRUCT byte23; CMD_DIGIT_BYTE_STRUCT byte24; } ANS_DIGIT_DATA_TO_TERMINAL_TEST_ALL_STRUCT; typedef struct { CHAR analog1_lo; CHAR analog1_hi; CHAR analog2_lo; CHAR analog2_hi; CHAR analog3_lo; CHAR analog3_hi; CHAR analog4_lo; CHAR analog4_hi; CHAR analog5_lo; CHAR analog5_hi; CHAR analog6_lo; CHAR analog6_hi; CHAR analog7_lo; CHAR analog7_hi; CHAR analog8_lo; CHAR analog8_hi; CHAR analog9_lo; CHAR analog9_hi; CHAR analog10_lo; CHAR analog10_hi; CHAR analog11_lo; CHAR analog11_hi; CHAR analog12_lo; CHAR analog12_hi; CHAR analog13_lo; CHAR analog13_hi; CHAR analog14_lo; CHAR analog14_hi; CHAR analog15_lo; CHAR analog15_hi; CHAR analog16_lo; CHAR analog16_hi; CHAR analog17_lo; CHAR analog17_hi; CHAR analog18_lo; CHAR analog18_hi; CHAR analog19_lo; CHAR analog19_hi; CHAR analog20_lo; CHAR analog20_hi; CHAR analog21_lo; CHAR analog21_hi; CHAR analog22_lo; CHAR analog22_hi; CHAR analog23_lo; CHAR analog23_hi; CHAR analog24_lo; CHAR analog24_hi; } TMS_ANALOG_DATA_TEST_ALL_STRUCT; typedef struct { // Заголовок CMD_TMS_HEAD_TEST_ALL_STRUCT head; // Цифровые значениy ANS_DIGIT_DATA_TO_TERMINAL_TEST_ALL_STRUCT digit_data; // Аналоговые величины TMS_ANALOG_DATA_TEST_ALL_STRUCT analog_data; // Контрольнаy сумма CHAR crc_lo; CHAR crc_hi; // Дополнительный байт CHAR add_byte; //Указатель на массив данных из TMS // unsigned int pcommand; //Функциу формированиу ответа // void (*fill_answer)(); } TMS_TO_TERMINAL_TEST_ALL_STRUCT; void ReceiveCommandTestAll(RS_DATA_STRUCT *RS232_Arr); void ReceiveCommand(RS_DATA_STRUCT *RS232_Arr); extern TMS_TO_TERMINAL_TEST_ALL_STRUCT reply_test_all; extern TMS_TO_TERMINAL_STRUCT reply; #endif /* SRC_XILINX_NIO12_RS_FUNCTION_TERMINAL_H_ */