Dmitry Kovalev / Mbed 2 deprecated LG2

Dependencies:   mbed

Fork of LG by igor Apu

Committer:
Diletant
Date:
Sun Jun 05 11:03:33 2016 +0000
Revision:
167:bedc0a9d559a
Parent:
161:efd949e8d536
Child:
178:672ef279c8e0
Device & ... update. Not final!!!

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Diletant 161:efd949e8d536 1 #ifndef __DEVICE_USER_PROTOCOL_H__
Diletant 161:efd949e8d536 2 #define __DEVICE_USER_PROTOCOL_H__
Diletant 161:efd949e8d536 3
Diletant 161:efd949e8d536 4 #include "stdint.h"
Diletant 161:efd949e8d536 5 #include "DeviceUserProtocolRequest.h"
Diletant 161:efd949e8d536 6 #include "DeviceUserProtocolResponse.h"
Diletant 161:efd949e8d536 7 #include "DeviceUserProtocolDecoder.h"
Diletant 161:efd949e8d536 8 #include "DeviceUserProtocolEncoder.h"
Diletant 161:efd949e8d536 9
Diletant 161:efd949e8d536 10 #define BROADCAST_ADDRESS 0x1f
Diletant 161:efd949e8d536 11 #define BROADCAST_FRAME 100 //100 mks
Diletant 161:efd949e8d536 12
Diletant 161:efd949e8d536 13 //All commands
Diletant 161:efd949e8d536 14 #define DELTA_PS 0xa000 //B_DeltaPS command code: output of accumulated pulses and ACS parameters as 22 indexed packets sequence
Diletant 161:efd949e8d536 15 #define DELTA_BINS 0xb000 //B_DeltaBINS command code: output of accumulated pulses and data validity attribute in one packet
Diletant 161:efd949e8d536 16 #define DELTA_SF 0xb200 //B_DeltaSF command code: scale factor measurement data output in one packet
Diletant 161:efd949e8d536 17 #define DEV_MODE 0xa500 //e. the code of the Device_Mode command //r. код команды Device_Mode
Diletant 161:efd949e8d536 18 #define BIT_MODE 0xa700 //e. the code of the B.I.T. command //r. код команды B.I.T.(встороенного тестирования)
Diletant 161:efd949e8d536 19 #define RATE 0x0000 //e. the code of the Rate command //r. код команды Rate
Diletant 161:efd949e8d536 20 #define DELTA 0x0f00 //e. the code of the Delta command //r. код команды Delta
Diletant 161:efd949e8d536 21 #define D_PERIOD_W 0xf000 //e. the code of the D_Period_W command //r. код команды D_Period_W
Diletant 161:efd949e8d536 22
Diletant 161:efd949e8d536 23 #define MAINTENANCE 0x9900 //e. the code of the Maintenance mode command //r. код команды Maintenance mode
Diletant 161:efd949e8d536 24 //Maintenance command set versions
Diletant 161:efd949e8d536 25 #define M0_MAINTENANCE 0x99 //: initial version
Diletant 161:efd949e8d536 26 //Maintenance basic commands group
Diletant 161:efd949e8d536 27 #define M0_BASIC 0xda00 //Basic maintenance commands group code
Diletant 161:efd949e8d536 28 #define M0_CLEAR 0xda00 //group command select: e. reset of the register of errors of line 485 //r. очистка регистра ошибок линии 485
Diletant 161:efd949e8d536 29 #define M0_MIRROR 0xda01 //group command select: e. return previous contents of the receiver buffer //r. возврат предыдущего содержимого буфера приемника
Diletant 161:efd949e8d536 30 #define M0_LDPAR_F 0xda02 //group command select: e. load GLD parameters from Flash-memory //r. загрузить параметры ГЛД из флэш-памяти
Diletant 161:efd949e8d536 31 #define M0_LDPAR_D 0xda03 //group command select: e. set GLD parameters by procedure of initialization //r. установить параметры ГЛД процедурой инициализации
Diletant 161:efd949e8d536 32 #define M0_START 0xda04 //group command select: e. switch on the GLD //r. включить ГЛД
Diletant 161:efd949e8d536 33 #define M0_STOP 0xda40 //group command select: e. switch off the GLD //r. выключить ГЛД
Diletant 161:efd949e8d536 34 #define M0_PULSE 0xda0a //group command select: e. generation of the light-up pulse //r. генерация импульса поджига
Diletant 161:efd949e8d536 35 //Maintenance rate commands group
Diletant 161:efd949e8d536 36 #define M0_RATE 0xdd00 //e. delivery of a stack of parameters M_Rate (Rate2, Rate3) //r. выдача набора параметров M_Rate (Rate2, Rate3)
Diletant 161:efd949e8d536 37 #define M0_RATE_1 0xdd01 //group command select: output parameters set 1?
Diletant 161:efd949e8d536 38 #define M0_RATE_2 0xdd02 //group command select: output parameters set 2
Diletant 161:efd949e8d536 39 #define M0_RATE_3 0xdd03 //group command select: output parameters set 3
Diletant 161:efd949e8d536 40 #define M0_RATE_4 0xdd04 //group command select: output parameters set 4
Diletant 161:efd949e8d536 41 #define M0_RATE_7 0xdd07 //group command select: output parameters set 7
Diletant 161:efd949e8d536 42
Diletant 161:efd949e8d536 43 //Other maintenance commands
Diletant 161:efd949e8d536 44 #define M0_STIMUL 0x0a00 //e. the code of the Stimul command //r. код команды Stimul
Diletant 161:efd949e8d536 45 #define M0_RESET 0x8000 //e. software device reset(restart) //r. программный сброс (рестарт) прибора
Diletant 161:efd949e8d536 46
Diletant 161:efd949e8d536 47 #define M0_CTL_R 0xd900 //e. reading the control register RgConA/B of the device //r. чтение регистра управления устройства
Diletant 161:efd949e8d536 48 #define M0_CTL_A_R 0xd900 //e. reading the control register RgConA of the device //r. чтение регистра управления устройства
Diletant 161:efd949e8d536 49 #define M0_CTL_B_R 0xd910 //e. reading the control register RgConB of the device //r. чтение регистра управления устройства
Diletant 161:efd949e8d536 50 #define M0_CTL_M 0xd800 //e. modification of bit of the control register //r. модификация бита регистра управления
Diletant 161:efd949e8d536 51
Diletant 161:efd949e8d536 52 #define M0_TMP_W 0xe000 //e. writing to the AD7714 circuit (temperature sensors) //r. запись в схемы AD7714 (измерители температуры)
Diletant 161:efd949e8d536 53 #define M0_TMP_R 0xe100 //e. reading from the AD7714 circuit (temperature sensors) //r. чтение из схем AD7714 (измерители температуры)
Diletant 161:efd949e8d536 54 #define M0_E5R_W 0xe200 //e. writing to the register of a mode of the Elio5 card //r. запись в регистр режима платы Elio5
Diletant 161:efd949e8d536 55 #define M0_ADC_R 0xe300 //e. reading data from the ADC of the Elio5 card //r. чтение данных из АЦП платы Elio5
Diletant 161:efd949e8d536 56 #define M0_VIB_W 0xe400 //e. loading of the oscillation period of the dither drive //r. загрузка периода колебаний вибропривода
Diletant 161:efd949e8d536 57 #define M0_CNT_R 0xe500 //e. reading data from the counters of the Elio5 card //r. чтение данных из счетчиков платы Elio5
Diletant 161:efd949e8d536 58 #define M0_GPH_W 0xe600 //e. loading gain factors of photodetector channels //r. загрузка коэффициентов усиления каналов фотоприемника
Diletant 161:efd949e8d536 59 #define M0_FLG_R 0xe700 //e. reading data from the register of input flags //r. чтение данных из регистра входных флагов
Diletant 161:efd949e8d536 60 #define M0_PARAM_W 0xe800 //e. writing working parameter to the data memory //r. запись рабочего параметра в память данных
Diletant 161:efd949e8d536 61 #define M0_PARAM_R 0xe900 //e. reading working parameter of the GLD from the data memory //r. чтение рабочего параметра GLD из памяти данных
Diletant 161:efd949e8d536 62 #define M0_E5RA_W 0xea00 //e. writing in 1st additional (A) register of a mode of the Elio5 card //r. запись в 1-ый дополнительный (А) регистр режима платы Elio5
Diletant 161:efd949e8d536 63
Diletant 161:efd949e8d536 64 //Factory maintenance commands
Diletant 161:efd949e8d536 65 #define FACTORY_ACCESS 0xff00 //Factory access: command mask
Diletant 161:efd949e8d536 66
Diletant 161:efd949e8d536 67 #define H_PARAM8_R 0xff00 //Hash access: 0000b read 1-byte param
Diletant 161:efd949e8d536 68 #define H_PARAM16_R 0xff01 //Hash access: 0001b read 2-byte param
Diletant 161:efd949e8d536 69 #define H_PARAM32_R 0xff03 //Hash access: 0010b read 4-byte param
Diletant 161:efd949e8d536 70 #define H_BYTES_R 0xff0f //Hash access: 1111b read bytes param
Diletant 161:efd949e8d536 71
Diletant 161:efd949e8d536 72 #define H_PARAM8_W 0xff10 //Hash access: 0000b write 1-byte param
Diletant 161:efd949e8d536 73 #define H_PARAM16_W 0xff11 //Hash access: 0001b write 2-byte param
Diletant 161:efd949e8d536 74 #define H_PARAM32_W 0xff13 //Hash access: 0010b write 4-byte param
Diletant 161:efd949e8d536 75 #define H_BYTES_W 0xff1f //Hash access: 1111b write bytes param
Diletant 161:efd949e8d536 76
Diletant 161:efd949e8d536 77 #define H_FUNC_PARAM0_BY_IMM8 0xff20 //Hash access: 0000b set function parameter 0 by 8 bit immediate value
Diletant 161:efd949e8d536 78 #define H_FUNC_PARAM1_BY_IMM8 0xff24 //Hash access: 0100b set function parameter 1 by 8 bit immediate value
Diletant 161:efd949e8d536 79 #define H_FUNC_PARAM2_BY_IMM8 0xff28 //Hash access: 1000b set function parameter 2 by 8 bit immediate value
Diletant 161:efd949e8d536 80 #define H_FUNC_PARAM3_BY_IMM8 0xff2c //Hash access: 1100b set function parameter 3 by 8 bit immediate value
Diletant 161:efd949e8d536 81
Diletant 161:efd949e8d536 82 #define H_FUNC_PARAM0_BY_IMM16 0xff21 //Hash access: 0001b set function parameter 0 by 16 bit immediate value
Diletant 161:efd949e8d536 83 #define H_FUNC_PARAM1_BY_IMM16 0xff25 //Hash access: 0101b set function parameter 1 by 16 bit immediate value
Diletant 161:efd949e8d536 84 #define H_FUNC_PARAM2_BY_IMM16 0xff29 //Hash access: 1001b set function parameter 2 by 16 bit immediate value
Diletant 161:efd949e8d536 85 #define H_FUNC_PARAM3_BY_IMM16 0xff2d //Hash access: 1101b set function parameter 3 by 16 bit immediate value
Diletant 161:efd949e8d536 86
Diletant 161:efd949e8d536 87 #define H_FUNC_PARAM0_BY_IMM32 0xff23 //Hash access: 0011b set function parameter 0 by 32 bit immediate value
Diletant 161:efd949e8d536 88 #define H_FUNC_PARAM1_BY_IMM32 0xff27 //Hash access: 0111b set function parameter 1 by 32 bit immediate value
Diletant 161:efd949e8d536 89 #define H_FUNC_PARAM2_BY_IMM32 0xff2b //Hash access: 1011b set function parameter 2 by 32 bit immediate value
Diletant 161:efd949e8d536 90 #define H_FUNC_PARAM3_BY_IMM32 0xff2f //Hash access: 1111b set function parameter 3 by 32 bit immediate value
Diletant 161:efd949e8d536 91
Diletant 161:efd949e8d536 92 #define H_FUNC_PARAM0_BY_VAL8 0xff30 //Hash access: 0000b set function parameter 0 by 8 bit variable value
Diletant 161:efd949e8d536 93 #define H_FUNC_PARAM1_BY_VAL8 0xff34 //Hash access: 0100b set function parameter 1 by 8 bit variable value
Diletant 161:efd949e8d536 94 #define H_FUNC_PARAM2_BY_VAL8 0xff38 //Hash access: 1000b set function parameter 2 by 8 bit variable value
Diletant 161:efd949e8d536 95 #define H_FUNC_PARAM3_BY_VAL8 0xff3c //Hash access: 1100b set function parameter 3 by 8 bit variable value
Diletant 161:efd949e8d536 96
Diletant 161:efd949e8d536 97 #define H_FUNC_PARAM0_BY_VAL16 0xff31 //Hash access: 0001b set function parameter 0 by 16 bit variable value
Diletant 161:efd949e8d536 98 #define H_FUNC_PARAM1_BY_VAL16 0xff35 //Hash access: 0101b set function parameter 1 by 16 bit variable value
Diletant 161:efd949e8d536 99 #define H_FUNC_PARAM2_BY_VAL16 0xff39 //Hash access: 1001b set function parameter 2 by 16 bit variable value
Diletant 161:efd949e8d536 100 #define H_FUNC_PARAM3_BY_VAL16 0xff3d //Hash access: 1101b set function parameter 3 by 16 bit variable value
Diletant 161:efd949e8d536 101
Diletant 161:efd949e8d536 102 #define H_FUNC_PARAM0_BY_VAL32 0xff33 //Hash access: 0011b set function parameter 0 by 32 bit variable value
Diletant 161:efd949e8d536 103 #define H_FUNC_PARAM1_BY_VAL32 0xff37 //Hash access: 0111b set function parameter 1 by 32 bit variable value
Diletant 161:efd949e8d536 104 #define H_FUNC_PARAM2_BY_VAL32 0xff3b //Hash access: 1011b set function parameter 2 by 32 bit variable value
Diletant 161:efd949e8d536 105 #define H_FUNC_PARAM3_BY_VAL32 0xff3f //Hash access: 1111b set function parameter 3 by 32 bit variable value
Diletant 161:efd949e8d536 106
Diletant 161:efd949e8d536 107 #define H_FUNC_PARAM0_BY_REF8 0xff40 //Hash access: 0000b set function parameter 0 by 8 bit variable reference
Diletant 161:efd949e8d536 108 #define H_FUNC_PARAM1_BY_REF8 0xff44 //Hash access: 0100b set function parameter 1 by 8 bit variable reference
Diletant 161:efd949e8d536 109 #define H_FUNC_PARAM2_BY_REF8 0xff48 //Hash access: 1000b set function parameter 2 by 8 bit variable reference
Diletant 161:efd949e8d536 110 #define H_FUNC_PARAM3_BY_REF8 0xff4c //Hash access: 1100b set function parameter 3 by 8 bit variable reference
Diletant 161:efd949e8d536 111
Diletant 161:efd949e8d536 112 #define H_FUNC_PARAM0_BY_REF16 0xff41 //Hash access: 0001b set function parameter 0 by 16 bit variable reference
Diletant 161:efd949e8d536 113 #define H_FUNC_PARAM1_BY_REF16 0xff45 //Hash access: 0101b set function parameter 1 by 16 bit variable reference
Diletant 161:efd949e8d536 114 #define H_FUNC_PARAM2_BY_REF16 0xff49 //Hash access: 1001b set function parameter 2 by 16 bit variable reference
Diletant 161:efd949e8d536 115 #define H_FUNC_PARAM3_BY_REF16 0xff4d //Hash access: 1101b set function parameter 3 by 16 bit variable reference
Diletant 161:efd949e8d536 116
Diletant 161:efd949e8d536 117 #define H_FUNC_PARAM0_BY_REF32 0xff43 //Hash access: 0011b set function parameter 0 by 32 bit variable reference
Diletant 161:efd949e8d536 118 #define H_FUNC_PARAM1_BY_REF32 0xff47 //Hash access: 0111b set function parameter 1 by 32 bit variable reference
Diletant 161:efd949e8d536 119 #define H_FUNC_PARAM2_BY_REF32 0xff4b //Hash access: 1011b set function parameter 2 by 32 bit variable reference
Diletant 161:efd949e8d536 120 #define H_FUNC_PARAM3_BY_REF32 0xff4f //Hash access: 1111b set function parameter 3 by 32 bit variable reference
Diletant 161:efd949e8d536 121
Diletant 161:efd949e8d536 122 #define FUNCTION_CALL 0xff50 //Hash access: function call - no parameters
Diletant 161:efd949e8d536 123 #define FUNCTION_CALL_1 0xff51 //Hash access: function call - 1 parameter
Diletant 161:efd949e8d536 124 #define FUNCTION_CALL_2 0xff52 //Hash access: function call - 2 parameters
Diletant 161:efd949e8d536 125 #define FUNCTION_CALL_3 0xff53 //Hash access: function call - 3 parameters
Diletant 161:efd949e8d536 126 #define FUNCTION_CALL_4 0xff54 //Hash access: function call - 4 parameters
Diletant 161:efd949e8d536 127
Diletant 161:efd949e8d536 128 #define FLASH_READ_ALL 0xff60 //Flash access: read all from flash
Diletant 161:efd949e8d536 129 #define FLASH_WRITE_ALL 0xff70 //Flash access: write all to flash
Diletant 161:efd949e8d536 130
Diletant 161:efd949e8d536 131 //Common response messages
Diletant 161:efd949e8d536 132 #define MESSAGE_OK 0x0000
Diletant 161:efd949e8d536 133 #define MESSAGE_UNKNOWN_REQUEST_CODE 0x8000
Diletant 161:efd949e8d536 134 #define MESSAGE_UNKNOWN_REQUEST_PARAMETER 0x8001
Diletant 161:efd949e8d536 135 #define MESSAGE_UNKNOWN_REQUEST_HASH 0x8002
Diletant 161:efd949e8d536 136 #define MESSAGE_WRONG_REQUEST_VALUE_SIZE 0x8003
Diletant 161:efd949e8d536 137 #define MESSAGE_WRONG_REQUEST_VALUE_RANGE 0x8004
Diletant 161:efd949e8d536 138
Diletant 161:efd949e8d536 139 //Actual commands:
Diletant 161:efd949e8d536 140 //BINS
Diletant 161:efd949e8d536 141 // GLD initialization sequence:
Diletant 161:efd949e8d536 142 // a5 04 - external latch with DeltaPS format
Diletant 161:efd949e8d536 143 // a0 70 - DeltaPS 921600/921600 by request only
Diletant 161:efd949e8d536 144 // Other:
Diletant 161:efd949e8d536 145 // 80 00 - reset
Diletant 161:efd949e8d536 146 //BINS/AskGLD/Techno
Diletant 161:efd949e8d536 147 // 99 99 - maintenance
Diletant 161:efd949e8d536 148 //Techno
Diletant 161:efd949e8d536 149 // d8 90 - set bit 0 of RgConB
Diletant 161:efd949e8d536 150 // d8 10 - reset bit 0 of RgConB
Diletant 161:efd949e8d536 151 // dd 81 - periodic 38400 MRate
Diletant 161:efd949e8d536 152 // a0 b0 - periodic 115200/115200 DeltaPS
Diletant 161:efd949e8d536 153
Diletant 161:efd949e8d536 154 //Registers:
Diletant 161:efd949e8d536 155 // RgConA - flags of regulator loops
Diletant 161:efd949e8d536 156 // RgConB - counting mode: 00 - reference counters, 01 - dither counters and moving average filter
Diletant 161:efd949e8d536 157
Diletant 161:efd949e8d536 158 //User protocol typedefs
Diletant 161:efd949e8d536 159 typedef struct _DeviceUserProtocol {
Diletant 161:efd949e8d536 160 //Device address
Diletant 161:efd949e8d536 161 uint16_t address;
Diletant 161:efd949e8d536 162 //Units
Diletant 161:efd949e8d536 163 DeviceUserProtocolDecoder decoder;
Diletant 161:efd949e8d536 164 DeviceUserProtocolEncoder encoder;
Diletant 161:efd949e8d536 165 DeviceRequest request;
Diletant 161:efd949e8d536 166 DeviceResponse response;
Diletant 161:efd949e8d536 167 } DeviceUserProtocol;
Diletant 161:efd949e8d536 168
Diletant 161:efd949e8d536 169 //User communication initialization functions
Diletant 167:bedc0a9d559a 170 void InitUserProtocolDefaultSettings(void);
Diletant 167:bedc0a9d559a 171 void InitUserProtocolState(void);
Diletant 167:bedc0a9d559a 172 void DeviceStartUserProtocol(void);
Diletant 161:efd949e8d536 173
Diletant 161:efd949e8d536 174 #endif /* __DEVICE_USER_PROTOCOL_H__ */