123
Fork of LG by
DeviceUserProtocolDecoder.c@177:672ef279c8e0, 2016-07-03 (annotated)
- Committer:
- Diletant
- Date:
- Sun Jul 03 13:40:48 2016 +0000
- Revision:
- 177:672ef279c8e0
- Parent:
- 173:7f938afb0447
Device&... update. Some Ask_Gld functionality. Not final!!!
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Diletant | 161:efd949e8d536 | 1 | #include "Device.h" |
Diletant | 161:efd949e8d536 | 2 | |
Diletant | 161:efd949e8d536 | 3 | extern Device device; |
Diletant | 161:efd949e8d536 | 4 | extern HashParam hashParamTable[HASH_PARAM_COUNT]; |
Diletant | 161:efd949e8d536 | 5 | extern HashFunc hashFuncTable[HASH_FUNC_COUNT]; |
Diletant | 161:efd949e8d536 | 6 | |
Diletant | 167:bedc0a9d559a | 7 | void InitUserProtocolDecoderDefaultSettings(void) { |
Diletant | 167:bedc0a9d559a | 8 | } |
Diletant | 167:bedc0a9d559a | 9 | |
Diletant | 167:bedc0a9d559a | 10 | void InitUserProtocolDecoderState(void) { |
Diletant | 161:efd949e8d536 | 11 | device.user.decoder.error = 0; |
Diletant | 161:efd949e8d536 | 12 | device.user.decoder.count = 0; |
Diletant | 177:672ef279c8e0 | 13 | device.user.decoder.last = 0; |
Diletant | 161:efd949e8d536 | 14 | device.user.decoder.canceled = 1; |
Diletant | 161:efd949e8d536 | 15 | device.user.decoder.address = 0; |
Diletant | 161:efd949e8d536 | 16 | device.user.decoder.version = 0; |
Diletant | 161:efd949e8d536 | 17 | device.user.decoder.code = 0; |
Diletant | 161:efd949e8d536 | 18 | device.user.decoder.position = 0; |
Diletant | 161:efd949e8d536 | 19 | device.user.decoder.CRC = 0; |
Diletant | 161:efd949e8d536 | 20 | } |
Diletant | 161:efd949e8d536 | 21 | |
Diletant | 167:bedc0a9d559a | 22 | void DeviceStartUserProtocolDecoder(void) { |
Diletant | 167:bedc0a9d559a | 23 | } |
Diletant | 167:bedc0a9d559a | 24 | |
Diletant | 177:672ef279c8e0 | 25 | void userDecodeRequests(void) { |
Diletant | 161:efd949e8d536 | 26 | do { |
Diletant | 161:efd949e8d536 | 27 | DecodeStart(); if (device.user.decoder.error) continue; |
Diletant | 161:efd949e8d536 | 28 | DecodeAddress(); if (device.user.decoder.error) continue; |
Diletant | 161:efd949e8d536 | 29 | DecodeCode(); if (device.user.decoder.error) continue; |
Diletant | 161:efd949e8d536 | 30 | switch(device.user.decoder.code){ |
Diletant | 161:efd949e8d536 | 31 | case FACTORY_ACCESS: DecodeFactory(); break; |
Diletant | 161:efd949e8d536 | 32 | case DEV_MODE: DecodeDeviceMode(); break; |
Diletant | 161:efd949e8d536 | 33 | case DELTA_BINS: DecodeDelta(); break; |
Diletant | 161:efd949e8d536 | 34 | case DELTA_PS: DecodeDelta(); break; |
Diletant | 161:efd949e8d536 | 35 | case DELTA_SF: DecodeDelta(); break; |
Diletant | 161:efd949e8d536 | 36 | case BIT_MODE: DecodeBITMode(); break; |
Diletant | 161:efd949e8d536 | 37 | case MAINTENANCE: DecodeMaintenanceMode(); break; |
Diletant | 161:efd949e8d536 | 38 | case M0_BASIC: DecodeMBasic(); break; |
Diletant | 161:efd949e8d536 | 39 | case M0_RATE: DecodeMRate(); break; |
Diletant | 161:efd949e8d536 | 40 | case M0_STIMUL: DecodeMStymul(); break; |
Diletant | 161:efd949e8d536 | 41 | case M0_RESET: DecodeMReset(); break; |
Diletant | 177:672ef279c8e0 | 42 | case M0_CTL_R: DecodeMCtlR(); break; |
Diletant | 177:672ef279c8e0 | 43 | case M0_CTL_M: DecodeMCtlM(); break; |
Diletant | 161:efd949e8d536 | 44 | case M0_TMP_W: DecodeMTmpW(); break; |
Diletant | 161:efd949e8d536 | 45 | case M0_TMP_R: DecodeMTmpR(); break; |
Diletant | 161:efd949e8d536 | 46 | //case M0_E5R_W: break; |
Diletant | 161:efd949e8d536 | 47 | //case M0_ADC_R: break; |
Diletant | 161:efd949e8d536 | 48 | //case M0_VIB_W: break; |
Diletant | 177:672ef279c8e0 | 49 | case M0_CNT_R: DecodeMCntR(); break; |
Diletant | 161:efd949e8d536 | 50 | case M0_GPH_W: DecodeMGphW(); break; |
Diletant | 161:efd949e8d536 | 51 | //case M0_FLG_R: break; |
Diletant | 161:efd949e8d536 | 52 | case M0_PARAM_W: DecodeMParamW(); break; |
Diletant | 161:efd949e8d536 | 53 | case M0_PARAM_R: DecodeMParamR(); break; |
Diletant | 161:efd949e8d536 | 54 | //case M0_E5RA_W: break; |
Diletant | 161:efd949e8d536 | 55 | default: DecodeFail(); |
Diletant | 161:efd949e8d536 | 56 | } |
Diletant | 161:efd949e8d536 | 57 | } while (device.user.decoder.count > 0); |
Diletant | 161:efd949e8d536 | 58 | } |
Diletant | 161:efd949e8d536 | 59 | |
Diletant | 161:efd949e8d536 | 60 | uint8_t Decode8(void) { |
Diletant | 161:efd949e8d536 | 61 | if (device.user.decoder.position != device.user.request.buffer.end) { |
Diletant | 161:efd949e8d536 | 62 | uint8_t param = device.user.request.buffer.data[device.user.decoder.position]; |
Diletant | 161:efd949e8d536 | 63 | |
Diletant | 177:672ef279c8e0 | 64 | //sprintf(device.service.buffer, "Decode8(): %02x %04d %04d %04d\r\n", param, device.user.decoder.position, device.user.request.buffer.start, device.user.request.buffer.end); WriteConcole(); //Development message |
Diletant | 161:efd949e8d536 | 65 | |
Diletant | 161:efd949e8d536 | 66 | device.user.decoder.position = (device.user.decoder.position + 1) % InputBufferSize; |
Diletant | 161:efd949e8d536 | 67 | device.user.decoder.count++; |
Diletant | 161:efd949e8d536 | 68 | device.user.decoder.CRC += param; |
Diletant | 177:672ef279c8e0 | 69 | if (device.user.decoder.count > device.user.decoder.last) { |
Diletant | 177:672ef279c8e0 | 70 | //sprintf(device.service.buffer, "+ %02x %04d\r\n", param, device.user.decoder.position); WriteConcole(); //Development message |
Diletant | 177:672ef279c8e0 | 71 | device.user.decoder.last = device.user.decoder.count; |
Diletant | 177:672ef279c8e0 | 72 | } |
Diletant | 161:efd949e8d536 | 73 | return param; |
Diletant | 161:efd949e8d536 | 74 | } else { |
Diletant | 161:efd949e8d536 | 75 | DecodeCancel(); |
Diletant | 161:efd949e8d536 | 76 | return 0; |
Diletant | 161:efd949e8d536 | 77 | } |
Diletant | 161:efd949e8d536 | 78 | } |
Diletant | 161:efd949e8d536 | 79 | |
Diletant | 161:efd949e8d536 | 80 | uint16_t Decode16(void) { |
Diletant | 161:efd949e8d536 | 81 | uint8_t hi = Decode8(); if (device.user.decoder.error) return 0; |
Diletant | 161:efd949e8d536 | 82 | uint8_t lo = Decode8(); if (device.user.decoder.error) return 0; |
Diletant | 161:efd949e8d536 | 83 | return (hi << 8) | lo; |
Diletant | 161:efd949e8d536 | 84 | } |
Diletant | 161:efd949e8d536 | 85 | |
Diletant | 161:efd949e8d536 | 86 | uint32_t Decode32(void) { |
Diletant | 161:efd949e8d536 | 87 | uint32_t b3 = Decode8(); if (device.user.decoder.error) return 0; |
Diletant | 161:efd949e8d536 | 88 | uint32_t b2 = Decode8(); if (device.user.decoder.error) return 0; |
Diletant | 161:efd949e8d536 | 89 | uint32_t b1 = Decode8(); if (device.user.decoder.error) return 0; |
Diletant | 161:efd949e8d536 | 90 | uint32_t b0 = Decode8(); if (device.user.decoder.error) return 0; |
Diletant | 161:efd949e8d536 | 91 | return (b3 << 24) | (b2 << 16) | (b1 << 8) | b0; |
Diletant | 161:efd949e8d536 | 92 | } |
Diletant | 161:efd949e8d536 | 93 | |
Diletant | 161:efd949e8d536 | 94 | void DecodeStart(void) { |
Diletant | 161:efd949e8d536 | 95 | if (device.user.decoder.canceled){ |
Diletant | 161:efd949e8d536 | 96 | DecodeCancel(); //Prevent next decode attempts until more data arrive |
Diletant | 161:efd949e8d536 | 97 | } else { |
Diletant | 161:efd949e8d536 | 98 | device.user.decoder.error = 0; |
Diletant | 161:efd949e8d536 | 99 | device.user.decoder.count = 0; |
Diletant | 161:efd949e8d536 | 100 | device.user.decoder.position = device.user.request.buffer.start; |
Diletant | 161:efd949e8d536 | 101 | device.user.response.enabled = 0; |
Diletant | 161:efd949e8d536 | 102 | uint8_t param = Decode8(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 103 | |
Diletant | 161:efd949e8d536 | 104 | //sprintf(tmp,"DecodeStart()\r\n"); WriteConcole(tmp); //Development message |
Diletant | 161:efd949e8d536 | 105 | |
Diletant | 161:efd949e8d536 | 106 | if (param != 0xcc) DecodeFail(); |
Diletant | 161:efd949e8d536 | 107 | |
Diletant | 161:efd949e8d536 | 108 | device.user.response.type = RESPONSE_IMMEDIATE; //Default type |
Diletant | 177:672ef279c8e0 | 109 | device.user.response.packet = 0; |
Diletant | 161:efd949e8d536 | 110 | } |
Diletant | 161:efd949e8d536 | 111 | } |
Diletant | 161:efd949e8d536 | 112 | |
Diletant | 161:efd949e8d536 | 113 | void DecodeAddress(void) { |
Diletant | 161:efd949e8d536 | 114 | uint8_t address = Decode8(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 115 | device.user.decoder.CRC = 0; |
Diletant | 161:efd949e8d536 | 116 | if ((address == device.user.address) || (address == BROADCAST_ADDRESS)) { |
Diletant | 161:efd949e8d536 | 117 | device.user.decoder.address = address; |
Diletant | 161:efd949e8d536 | 118 | } else { |
Diletant | 161:efd949e8d536 | 119 | DecodeFail(); |
Diletant | 161:efd949e8d536 | 120 | } |
Diletant | 161:efd949e8d536 | 121 | //sprintf(tmp,"DecodeAddress()\r\n"); WriteConcole(tmp); //Development message |
Diletant | 161:efd949e8d536 | 122 | } |
Diletant | 161:efd949e8d536 | 123 | |
Diletant | 161:efd949e8d536 | 124 | void DecodeCode(void) { |
Diletant | 161:efd949e8d536 | 125 | uint8_t code = Decode8(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 126 | device.user.decoder.code = code << 8; |
Diletant | 161:efd949e8d536 | 127 | //sprintf(tmp,"DecodeCode()\r\n"); WriteConcole(tmp); //Development message |
Diletant | 161:efd949e8d536 | 128 | } |
Diletant | 161:efd949e8d536 | 129 | |
Diletant | 161:efd949e8d536 | 130 | void DecodeExtentionCode(void) { |
Diletant | 161:efd949e8d536 | 131 | uint8_t ext = Decode8(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 132 | device.user.decoder.code |= ext; |
Diletant | 161:efd949e8d536 | 133 | //sprintf(tmp,"DecodeExtensionCode()\r\n"); WriteConcole(tmp); //Development message |
Diletant | 161:efd949e8d536 | 134 | } |
Diletant | 161:efd949e8d536 | 135 | |
Diletant | 161:efd949e8d536 | 136 | void DecodeEnd(void) { |
Diletant | 161:efd949e8d536 | 137 | //sprintf(tmp,"DecodeEnd()\r\n"); WriteConcole(tmp); //Development message |
Diletant | 161:efd949e8d536 | 138 | |
Diletant | 161:efd949e8d536 | 139 | device.user.request.buffer.start = (device.user.request.buffer.start + device.user.decoder.count) % InputBufferSize; |
Diletant | 161:efd949e8d536 | 140 | if (device.user.request.buffer.start == device.user.request.buffer.end) device.user.request.buffer.empty = 1; |
Diletant | 161:efd949e8d536 | 141 | |
Diletant | 161:efd949e8d536 | 142 | device.user.decoder.count = 0; |
Diletant | 177:672ef279c8e0 | 143 | device.user.decoder.last = 0; |
Diletant | 161:efd949e8d536 | 144 | if (device.user.decoder.error == 0) { |
Diletant | 161:efd949e8d536 | 145 | device.user.response.code = device.user.decoder.code; |
Diletant | 161:efd949e8d536 | 146 | |
Diletant | 161:efd949e8d536 | 147 | if (device.user.decoder.address == BROADCAST_ADDRESS) { |
Diletant | 161:efd949e8d536 | 148 | device.user.response.type = RESPONSE_DELAYED; |
Diletant | 161:efd949e8d536 | 149 | device.user.response.counter = 0; |
Diletant | 161:efd949e8d536 | 150 | device.user.response.trigger = BROADCAST_FRAME * device.user.address; //0/100/200 mks |
Diletant | 161:efd949e8d536 | 151 | } |
Diletant | 161:efd949e8d536 | 152 | |
Diletant | 161:efd949e8d536 | 153 | device.user.response.enabled = 1; |
Diletant | 161:efd949e8d536 | 154 | } |
Diletant | 161:efd949e8d536 | 155 | } |
Diletant | 161:efd949e8d536 | 156 | |
Diletant | 161:efd949e8d536 | 157 | void DecodeCancel(void) { |
Diletant | 161:efd949e8d536 | 158 | device.user.decoder.error = 1; |
Diletant | 161:efd949e8d536 | 159 | device.user.decoder.canceled = 1; //Set canceled flag: do not try to decode until new data arrive |
Diletant | 161:efd949e8d536 | 160 | device.user.decoder.count = 0; |
Diletant | 161:efd949e8d536 | 161 | } |
Diletant | 161:efd949e8d536 | 162 | |
Diletant | 161:efd949e8d536 | 163 | void DecodeFail(void) { |
Diletant | 161:efd949e8d536 | 164 | //sprintf(tmp,"DecodeFail()\r\n"); WriteConcole(tmp); //Development message |
Diletant | 161:efd949e8d536 | 165 | |
Diletant | 161:efd949e8d536 | 166 | device.user.decoder.error = 2; |
Diletant | 161:efd949e8d536 | 167 | device.user.decoder.count = 1; |
Diletant | 161:efd949e8d536 | 168 | DecodeEnd(); |
Diletant | 161:efd949e8d536 | 169 | } |
Diletant | 161:efd949e8d536 | 170 | |
Diletant | 161:efd949e8d536 | 171 | void DecodeCRC(void) { |
Diletant | 161:efd949e8d536 | 172 | uint16_t CRC = device.user.decoder.CRC; |
Diletant | 161:efd949e8d536 | 173 | //sprintf(tmp,"CS1 %4x\r\n", device.host.decoder.CRC); WriteConcole(tmp); //Development message |
Diletant | 161:efd949e8d536 | 174 | |
Diletant | 161:efd949e8d536 | 175 | device.user.decoder.CRC = Decode16(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 176 | //sprintf(tmp,"CS2 %4x\r\n", device.host.decoder.CRC); WriteConcole(tmp); //Development message |
Diletant | 161:efd949e8d536 | 177 | |
Diletant | 161:efd949e8d536 | 178 | if (CRC == device.user.decoder.CRC) |
Diletant | 161:efd949e8d536 | 179 | DecodeEnd(); |
Diletant | 161:efd949e8d536 | 180 | else |
Diletant | 161:efd949e8d536 | 181 | DecodeFail(); |
Diletant | 161:efd949e8d536 | 182 | } |
Diletant | 161:efd949e8d536 | 183 | |
Diletant | 161:efd949e8d536 | 184 | void DecodeHashParam(uint32_t * size, void ** ref) { |
Diletant | 161:efd949e8d536 | 185 | uint32_t hash = Decode32(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 186 | for (uint32_t i = 0; i < HASH_PARAM_COUNT; i++){ |
Diletant | 161:efd949e8d536 | 187 | if (hashParamTable[i].hash == hash){ |
Diletant | 161:efd949e8d536 | 188 | *ref = hashParamTable[i].ref; |
Diletant | 161:efd949e8d536 | 189 | *size = hashParamTable[i].size; |
Diletant | 161:efd949e8d536 | 190 | return; |
Diletant | 161:efd949e8d536 | 191 | } |
Diletant | 161:efd949e8d536 | 192 | } |
Diletant | 161:efd949e8d536 | 193 | DecodeFail(); |
Diletant | 161:efd949e8d536 | 194 | } |
Diletant | 161:efd949e8d536 | 195 | |
Diletant | 161:efd949e8d536 | 196 | void DecodeFactoryReadParam(void) { |
Diletant | 161:efd949e8d536 | 197 | void * ref; |
Diletant | 161:efd949e8d536 | 198 | uint32_t size; |
Diletant | 161:efd949e8d536 | 199 | |
Diletant | 161:efd949e8d536 | 200 | DecodeHashParam(&size, &ref); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 201 | switch (device.user.decoder.code & 0x0f) { |
Diletant | 161:efd949e8d536 | 202 | //Read 8 bit |
Diletant | 161:efd949e8d536 | 203 | case 0x00: |
Diletant | 161:efd949e8d536 | 204 | DecodeCRC(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 205 | device.user.response.parametersCount = 1; |
Diletant | 161:efd949e8d536 | 206 | device.user.response.parameters[0].ref = ref; |
Diletant | 161:efd949e8d536 | 207 | device.user.response.parameters[0].size = size; |
Diletant | 161:efd949e8d536 | 208 | device.user.response.message = MESSAGE_OK; |
Diletant | 161:efd949e8d536 | 209 | break; |
Diletant | 161:efd949e8d536 | 210 | //Read 16 bit |
Diletant | 161:efd949e8d536 | 211 | case 0x01: |
Diletant | 161:efd949e8d536 | 212 | DecodeCRC(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 213 | device.user.response.parametersCount = 1; |
Diletant | 161:efd949e8d536 | 214 | device.user.response.parameters[0].ref = ref; |
Diletant | 161:efd949e8d536 | 215 | device.user.response.parameters[0].size = size; |
Diletant | 161:efd949e8d536 | 216 | device.user.response.message = MESSAGE_OK; |
Diletant | 161:efd949e8d536 | 217 | break; |
Diletant | 161:efd949e8d536 | 218 | //Read 32 bit |
Diletant | 161:efd949e8d536 | 219 | case 0x03: |
Diletant | 161:efd949e8d536 | 220 | DecodeCRC(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 221 | device.user.response.parametersCount = 1; |
Diletant | 161:efd949e8d536 | 222 | device.user.response.parameters[0].ref = ref; |
Diletant | 161:efd949e8d536 | 223 | device.user.response.parameters[0].size = size; |
Diletant | 161:efd949e8d536 | 224 | device.user.response.message = MESSAGE_OK; |
Diletant | 161:efd949e8d536 | 225 | break; |
Diletant | 161:efd949e8d536 | 226 | //Read array |
Diletant | 161:efd949e8d536 | 227 | case 0x0f: |
Diletant | 161:efd949e8d536 | 228 | DecodeCRC(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 229 | device.user.response.parametersCount = 1; |
Diletant | 161:efd949e8d536 | 230 | device.user.response.parameters[0].ref = ref; |
Diletant | 161:efd949e8d536 | 231 | device.user.response.parameters[0].size = size; |
Diletant | 161:efd949e8d536 | 232 | device.user.response.message = MESSAGE_OK; |
Diletant | 161:efd949e8d536 | 233 | break; |
Diletant | 161:efd949e8d536 | 234 | default: |
Diletant | 161:efd949e8d536 | 235 | DecodeFail(); |
Diletant | 161:efd949e8d536 | 236 | device.user.response.message = MESSAGE_UNKNOWN_REQUEST_CODE; |
Diletant | 161:efd949e8d536 | 237 | device.user.response.parametersCount = 0; |
Diletant | 161:efd949e8d536 | 238 | } |
Diletant | 161:efd949e8d536 | 239 | } |
Diletant | 161:efd949e8d536 | 240 | |
Diletant | 161:efd949e8d536 | 241 | void DecodeFactoryWriteParam(void) { |
Diletant | 161:efd949e8d536 | 242 | void * ref; |
Diletant | 161:efd949e8d536 | 243 | uint32_t size; |
Diletant | 161:efd949e8d536 | 244 | uint8_t param8; |
Diletant | 161:efd949e8d536 | 245 | uint16_t param16; |
Diletant | 161:efd949e8d536 | 246 | uint32_t param32; |
Diletant | 161:efd949e8d536 | 247 | |
Diletant | 161:efd949e8d536 | 248 | DecodeHashParam(&size, &ref); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 249 | switch (device.user.decoder.code & 0x0f) { |
Diletant | 161:efd949e8d536 | 250 | //Write 8 bit |
Diletant | 161:efd949e8d536 | 251 | case 0x00: |
Diletant | 161:efd949e8d536 | 252 | param8 = Decode8(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 253 | DecodeCRC(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 254 | *((uint8_t *)ref) = param8; |
Diletant | 161:efd949e8d536 | 255 | device.user.response.message = MESSAGE_OK; |
Diletant | 161:efd949e8d536 | 256 | device.user.response.parametersCount = 0; |
Diletant | 161:efd949e8d536 | 257 | break; |
Diletant | 161:efd949e8d536 | 258 | //Write 16 bit |
Diletant | 161:efd949e8d536 | 259 | case 0x01: |
Diletant | 161:efd949e8d536 | 260 | param16 = Decode8(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 261 | DecodeCRC(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 262 | *((uint16_t *)ref) = param16; |
Diletant | 161:efd949e8d536 | 263 | device.user.response.message = MESSAGE_OK; |
Diletant | 161:efd949e8d536 | 264 | device.user.response.parametersCount = 0; |
Diletant | 161:efd949e8d536 | 265 | break; |
Diletant | 161:efd949e8d536 | 266 | //Write 32 bit |
Diletant | 161:efd949e8d536 | 267 | case 0x03: |
Diletant | 161:efd949e8d536 | 268 | param32 = Decode8(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 269 | DecodeCRC(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 270 | *((uint32_t *)ref) = param32; |
Diletant | 161:efd949e8d536 | 271 | device.user.response.message = MESSAGE_OK; |
Diletant | 161:efd949e8d536 | 272 | device.user.response.parametersCount = 0; |
Diletant | 161:efd949e8d536 | 273 | break; |
Diletant | 161:efd949e8d536 | 274 | //Write array |
Diletant | 161:efd949e8d536 | 275 | case 0x0f: |
Diletant | 161:efd949e8d536 | 276 | param16 = Decode16(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 277 | for (uint16_t i = 0; i < param16; i++){ |
Diletant | 161:efd949e8d536 | 278 | param8 = Decode8(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 279 | *(((uint8_t *)ref + i)) = param8; |
Diletant | 161:efd949e8d536 | 280 | } |
Diletant | 161:efd949e8d536 | 281 | DecodeCRC(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 282 | device.user.response.message = MESSAGE_OK; |
Diletant | 161:efd949e8d536 | 283 | device.user.response.parametersCount = 0; |
Diletant | 161:efd949e8d536 | 284 | break; |
Diletant | 161:efd949e8d536 | 285 | default: |
Diletant | 161:efd949e8d536 | 286 | DecodeFail(); |
Diletant | 161:efd949e8d536 | 287 | device.user.response.message = MESSAGE_UNKNOWN_REQUEST_CODE; |
Diletant | 161:efd949e8d536 | 288 | device.user.response.parametersCount = 0; |
Diletant | 161:efd949e8d536 | 289 | } |
Diletant | 161:efd949e8d536 | 290 | } |
Diletant | 161:efd949e8d536 | 291 | |
Diletant | 161:efd949e8d536 | 292 | void DecodeFactoryFunctionCall(uint16_t parametersLength) { |
Diletant | 161:efd949e8d536 | 293 | uint32_t hash = Decode32(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 294 | for (uint32_t i = 0; i < HASH_FUNC_COUNT; i++){ |
Diletant | 161:efd949e8d536 | 295 | if (hashFuncTable[i].hash == hash){ |
Diletant | 161:efd949e8d536 | 296 | void * ref = hashFuncTable[i].ref; |
Diletant | 161:efd949e8d536 | 297 | uint32_t resultSize = hashFuncTable[i].resultSize; |
Diletant | 161:efd949e8d536 | 298 | uint32_t paramCount = hashFuncTable[i].paramCount; |
Diletant | 161:efd949e8d536 | 299 | if (paramCount == parametersLength){ |
Diletant | 161:efd949e8d536 | 300 | if (paramCount == 0){ |
Diletant | 161:efd949e8d536 | 301 | //FunctionCall(ref); |
Diletant | 161:efd949e8d536 | 302 | ((void (*)())ref)(); |
Diletant | 161:efd949e8d536 | 303 | return; |
Diletant | 161:efd949e8d536 | 304 | } else if (paramCount == 1){ |
Diletant | 161:efd949e8d536 | 305 | ((void (*)())ref)(device.user.decoder.param0); |
Diletant | 161:efd949e8d536 | 306 | return; |
Diletant | 161:efd949e8d536 | 307 | } else if (paramCount == 2){ |
Diletant | 161:efd949e8d536 | 308 | ((void (*)())ref)(device.user.decoder.param0, device.user.decoder.param1); |
Diletant | 161:efd949e8d536 | 309 | return; |
Diletant | 161:efd949e8d536 | 310 | } else if (paramCount == 3){ |
Diletant | 161:efd949e8d536 | 311 | ((void (*)())ref)(device.user.decoder.param0, device.user.decoder.param1, device.user.decoder.param2); |
Diletant | 161:efd949e8d536 | 312 | return; |
Diletant | 161:efd949e8d536 | 313 | } else if (paramCount == 4){ |
Diletant | 161:efd949e8d536 | 314 | ((void (*)())ref)(device.user.decoder.param0, device.user.decoder.param1, device.user.decoder.param2, device.user.decoder.param3); |
Diletant | 161:efd949e8d536 | 315 | return; |
Diletant | 161:efd949e8d536 | 316 | } |
Diletant | 161:efd949e8d536 | 317 | } |
Diletant | 161:efd949e8d536 | 318 | } |
Diletant | 161:efd949e8d536 | 319 | } |
Diletant | 161:efd949e8d536 | 320 | DecodeFail(); |
Diletant | 161:efd949e8d536 | 321 | } |
Diletant | 161:efd949e8d536 | 322 | |
Diletant | 161:efd949e8d536 | 323 | void DecodeFactory(void) { |
Diletant | 161:efd949e8d536 | 324 | //sprintf(tmp," DecodeFactory()\r\n"); WriteConcole(tmp); //Development message |
Diletant | 161:efd949e8d536 | 325 | DecodeExtentionCode(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 326 | |
Diletant | 161:efd949e8d536 | 327 | switch (device.user.decoder.code & 0xf0) { |
Diletant | 161:efd949e8d536 | 328 | //Read param |
Diletant | 161:efd949e8d536 | 329 | case 0x00: |
Diletant | 161:efd949e8d536 | 330 | DecodeFactoryReadParam(); |
Diletant | 161:efd949e8d536 | 331 | break; |
Diletant | 161:efd949e8d536 | 332 | //Write param |
Diletant | 161:efd949e8d536 | 333 | case 0x10: |
Diletant | 161:efd949e8d536 | 334 | DecodeFactoryWriteParam(); |
Diletant | 161:efd949e8d536 | 335 | break; |
Diletant | 161:efd949e8d536 | 336 | //Set function parameter by immediate value |
Diletant | 161:efd949e8d536 | 337 | case 0x20: |
Diletant | 161:efd949e8d536 | 338 | break; |
Diletant | 161:efd949e8d536 | 339 | //Set function parameter by variable value |
Diletant | 161:efd949e8d536 | 340 | case 0x30: |
Diletant | 161:efd949e8d536 | 341 | break; |
Diletant | 161:efd949e8d536 | 342 | //Set function parameter by variable reference |
Diletant | 161:efd949e8d536 | 343 | case 0x40: |
Diletant | 161:efd949e8d536 | 344 | break; |
Diletant | 161:efd949e8d536 | 345 | //Call function - no parameters |
Diletant | 161:efd949e8d536 | 346 | case 0x50: |
Diletant | 161:efd949e8d536 | 347 | case 0x51: |
Diletant | 161:efd949e8d536 | 348 | case 0x52: |
Diletant | 161:efd949e8d536 | 349 | case 0x53: |
Diletant | 161:efd949e8d536 | 350 | case 0x54: |
Diletant | 161:efd949e8d536 | 351 | DecodeFactoryFunctionCall(device.user.decoder.code & 0x0f); |
Diletant | 161:efd949e8d536 | 352 | break; |
Diletant | 161:efd949e8d536 | 353 | //Read flash |
Diletant | 161:efd949e8d536 | 354 | case 0x60: |
Diletant | 161:efd949e8d536 | 355 | DecodeCRC(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 356 | DeviceFlashReadAll(); |
Diletant | 161:efd949e8d536 | 357 | device.user.response.message = MESSAGE_OK; |
Diletant | 161:efd949e8d536 | 358 | device.user.response.parametersCount = 0; |
Diletant | 161:efd949e8d536 | 359 | break; |
Diletant | 161:efd949e8d536 | 360 | //Write flash |
Diletant | 161:efd949e8d536 | 361 | case 0x70: |
Diletant | 161:efd949e8d536 | 362 | DecodeCRC(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 363 | DeviceFlashWriteAll(); |
Diletant | 161:efd949e8d536 | 364 | device.user.response.message = MESSAGE_OK; |
Diletant | 161:efd949e8d536 | 365 | device.user.response.parametersCount = 0; |
Diletant | 161:efd949e8d536 | 366 | break; |
Diletant | 161:efd949e8d536 | 367 | default: |
Diletant | 161:efd949e8d536 | 368 | DecodeFail(); |
Diletant | 161:efd949e8d536 | 369 | device.user.response.message = MESSAGE_UNKNOWN_REQUEST_CODE; |
Diletant | 161:efd949e8d536 | 370 | } |
Diletant | 161:efd949e8d536 | 371 | } |
Diletant | 161:efd949e8d536 | 372 | |
Diletant | 161:efd949e8d536 | 373 | void DecodeDeviceMode(void) { |
Diletant | 161:efd949e8d536 | 374 | uint8_t mode = Decode8(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 375 | if ((mode > 0) && (mode < 7)){ |
Diletant | 161:efd949e8d536 | 376 | DecodeCRC(); if (device.user.decoder.error) return; |
Diletant | 177:672ef279c8e0 | 377 | |
Diletant | 177:672ef279c8e0 | 378 | sprintf(device.service.buffer, "Dev_Mode %02x\r\n", mode); WriteConcole(); //Development message |
Diletant | 177:672ef279c8e0 | 379 | |
Diletant | 161:efd949e8d536 | 380 | switch (mode) { |
Diletant | 177:672ef279c8e0 | 381 | case 1: |
Diletant | 177:672ef279c8e0 | 382 | //DM_INT_10KHZ_LATCH: latch by pulses 10 kHz (power on default mode) |
Diletant | 177:672ef279c8e0 | 383 | device.counters.latch.state.enabled = 0;//Internal latch |
Diletant | 177:672ef279c8e0 | 384 | //TODO: should switch meander/dither latched counters here or ignore command and continue to use use RgConB setting instead? |
Diletant | 177:672ef279c8e0 | 385 | break; |
Diletant | 177:672ef279c8e0 | 386 | case 2: |
Diletant | 177:672ef279c8e0 | 387 | //DM_INT_SIGN_MEANDER_LATCH: latch by signed meander pulses |
Diletant | 177:672ef279c8e0 | 388 | device.counters.latch.state.enabled = 0;//Internal latch |
Diletant | 177:672ef279c8e0 | 389 | //TODO: should switch meander/dither latched counters here or ignore command and continue to use use RgConB setting instead? |
Diletant | 177:672ef279c8e0 | 390 | break; |
Diletant | 177:672ef279c8e0 | 391 | case 3: |
Diletant | 177:672ef279c8e0 | 392 | //DM_EXT_LATCH_DELTA_PS_LINE: external latch mode with B_Delta_PS format data and RS422 request by command B_Delta_PS |
Diletant | 177:672ef279c8e0 | 393 | device.counters.latch.state.enabled = 1;//External latch |
Diletant | 177:672ef279c8e0 | 394 | device.counters.latch.state.signal = 0; //RS422 latch signal |
Diletant | 177:672ef279c8e0 | 395 | device.counters.latch.state.format = 0; //DeltaPS output format |
Diletant | 177:672ef279c8e0 | 396 | break; |
Diletant | 177:672ef279c8e0 | 397 | case 4: |
Diletant | 177:672ef279c8e0 | 398 | //DM_EXT_LATCH_DELTA_PS_PULSE: external latch mode with B_Delta_PS format data and latch pulse request |
Diletant | 177:672ef279c8e0 | 399 | device.counters.latch.state.enabled = 1;//External latch |
Diletant | 177:672ef279c8e0 | 400 | device.counters.latch.state.signal = 1; //Wire latch signal |
Diletant | 177:672ef279c8e0 | 401 | device.counters.latch.state.format = 0; //DeltaPS output format |
Diletant | 177:672ef279c8e0 | 402 | break; |
Diletant | 177:672ef279c8e0 | 403 | case 5: |
Diletant | 177:672ef279c8e0 | 404 | //DM_EXT_LATCH_DELTA_BINS_LINE: external latch mode with B_Delta_BINS format data and RS422 request by command B_Delta_BINS |
Diletant | 177:672ef279c8e0 | 405 | device.counters.latch.state.enabled = 1;//External latch |
Diletant | 177:672ef279c8e0 | 406 | device.counters.latch.state.signal = 0; //RS422 latch signal |
Diletant | 177:672ef279c8e0 | 407 | device.counters.latch.state.format = 1; //DeltaBINS output format |
Diletant | 177:672ef279c8e0 | 408 | break; |
Diletant | 177:672ef279c8e0 | 409 | case 6: |
Diletant | 177:672ef279c8e0 | 410 | //DM_EXT_LATCH_DELTA_BINS_PULSE: external latch mode with B_Delta_BINS format data and latch pulse request |
Diletant | 177:672ef279c8e0 | 411 | device.counters.latch.state.enabled = 1;//External latch |
Diletant | 177:672ef279c8e0 | 412 | device.counters.latch.state.signal = 1; //Wire latch signal |
Diletant | 177:672ef279c8e0 | 413 | device.counters.latch.state.format = 1; //DeltaBINS output format |
Diletant | 177:672ef279c8e0 | 414 | break; |
Diletant | 161:efd949e8d536 | 415 | } |
Diletant | 161:efd949e8d536 | 416 | } else { |
Diletant | 161:efd949e8d536 | 417 | DecodeFail(); |
Diletant | 161:efd949e8d536 | 418 | } |
Diletant | 161:efd949e8d536 | 419 | } |
Diletant | 161:efd949e8d536 | 420 | |
Diletant | 161:efd949e8d536 | 421 | void DecodeBITMode(void) { |
Diletant | 161:efd949e8d536 | 422 | //In commandset.c - look as useless: set not used Is_BIT and BIT_Number variables |
Diletant | 161:efd949e8d536 | 423 | //Consume required amount of input: |
Diletant | 161:efd949e8d536 | 424 | Decode8(); if (device.user.decoder.error) return; //Is_BIT = 1/0; |
Diletant | 161:efd949e8d536 | 425 | Decode8(); if (device.user.decoder.error) return; //BIT_number = (long)(rcv_buf[4] & 0x00FF) << 24; |
Diletant | 161:efd949e8d536 | 426 | Decode8(); if (device.user.decoder.error) return; //BIT_number |= (long)(rcv_buf[5] & 0x00FF) << 16; |
Diletant | 161:efd949e8d536 | 427 | Decode8(); if (device.user.decoder.error) return; //BIT_number |= (long)(rcv_buf[6] & 0x00FF) << 8; |
Diletant | 161:efd949e8d536 | 428 | Decode8(); if (device.user.decoder.error) return; //BIT_number |= (long)(rcv_buf[7] & 0x00FF); |
Diletant | 161:efd949e8d536 | 429 | DecodeCRC(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 430 | } |
Diletant | 161:efd949e8d536 | 431 | |
Diletant | 161:efd949e8d536 | 432 | void DecodeDelta(void) { |
Diletant | 161:efd949e8d536 | 433 | //Same for DELTA_PS,DELTA_BINS,DELTA_SF - only code different and it processed already |
Diletant | 161:efd949e8d536 | 434 | uint8_t mode = Decode8(); if (device.user.decoder.error) return; |
Diletant | 177:672ef279c8e0 | 435 | |
Diletant | 177:672ef279c8e0 | 436 | sprintf(device.service.buffer, "Delta %02x\r\n", mode); WriteConcole(); //Development message |
Diletant | 177:672ef279c8e0 | 437 | |
Diletant | 161:efd949e8d536 | 438 | //if ((mode && 0x0f) == 0){ //DELTA_PS,DELTA_BINS |
Diletant | 161:efd949e8d536 | 439 | if ((mode && 0x0e) == 0){ //DELTA_PS,DELTA_BINS,DELTA_SF |
Diletant | 161:efd949e8d536 | 440 | DecodeCRC(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 441 | //SRgR bits 4-5 - reponse rate |
Diletant | 161:efd949e8d536 | 442 | switch ((mode >> 5) & 0x03){ |
Diletant | 161:efd949e8d536 | 443 | case 0: device.user.response.rate = 38400; break; |
Diletant | 161:efd949e8d536 | 444 | case 1: device.user.response.rate = 115200; break; |
Diletant | 161:efd949e8d536 | 445 | case 2: device.user.response.rate = 460800; break; |
Diletant | 161:efd949e8d536 | 446 | case 3: device.user.response.rate = 921600; break; |
Diletant | 161:efd949e8d536 | 447 | } |
Diletant | 161:efd949e8d536 | 448 | if (mode & 0x04) { |
Diletant | 161:efd949e8d536 | 449 | device.user.request.rate = device.user.response.rate; |
Diletant | 161:efd949e8d536 | 450 | } else { |
Diletant | 161:efd949e8d536 | 451 | device.user.request.rate = 38400; |
Diletant | 161:efd949e8d536 | 452 | } |
Diletant | 161:efd949e8d536 | 453 | if (mode & 0x01) { //DELTA_SF |
Diletant | 177:672ef279c8e0 | 454 | device.counters.latch.state.reset = 0; |
Diletant | 161:efd949e8d536 | 455 | } else { |
Diletant | 177:672ef279c8e0 | 456 | device.counters.latch.state.reset = 1; |
Diletant | 161:efd949e8d536 | 457 | } |
Diletant | 177:672ef279c8e0 | 458 | |
Diletant | 161:efd949e8d536 | 459 | if (device.user.decoder.address == device.user.address) { |
Diletant | 161:efd949e8d536 | 460 | if (mode & 0x80) { |
Diletant | 177:672ef279c8e0 | 461 | //Reset device counters here |
Diletant | 177:672ef279c8e0 | 462 | device.counters.dither.state.angle = 0; |
Diletant | 177:672ef279c8e0 | 463 | |
Diletant | 161:efd949e8d536 | 464 | device.user.response.counter = 0; |
Diletant | 161:efd949e8d536 | 465 | device.user.response.trigger = 2000; //2000 mks - 500Hz |
Diletant | 161:efd949e8d536 | 466 | device.user.response.type = RESPONSE_PERIODIC; //Override default type |
Diletant | 161:efd949e8d536 | 467 | device.user.response.packet = 0; |
Diletant | 161:efd949e8d536 | 468 | } |
Diletant | 161:efd949e8d536 | 469 | } |
Diletant | 161:efd949e8d536 | 470 | } else { |
Diletant | 161:efd949e8d536 | 471 | DecodeFail(); |
Diletant | 161:efd949e8d536 | 472 | } |
Diletant | 161:efd949e8d536 | 473 | } |
Diletant | 161:efd949e8d536 | 474 | |
Diletant | 161:efd949e8d536 | 475 | void DecodeMaintenanceMode(void) { |
Diletant | 161:efd949e8d536 | 476 | uint8_t version = Decode8(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 477 | if (version == 0x99) { |
Diletant | 161:efd949e8d536 | 478 | DecodeCRC(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 479 | device.user.decoder.version = 0; |
Diletant | 177:672ef279c8e0 | 480 | |
Diletant | 177:672ef279c8e0 | 481 | sprintf(device.service.buffer, "MaintenanceMode()\r\n"); WriteConcole(); //Development message |
Diletant | 161:efd949e8d536 | 482 | } else { |
Diletant | 161:efd949e8d536 | 483 | DecodeFail(); |
Diletant | 161:efd949e8d536 | 484 | } |
Diletant | 161:efd949e8d536 | 485 | } |
Diletant | 161:efd949e8d536 | 486 | |
Diletant | 161:efd949e8d536 | 487 | void DecodeMBasic(void) { |
Diletant | 161:efd949e8d536 | 488 | DecodeExtentionCode(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 489 | switch (device.user.decoder.code) { |
Diletant | 161:efd949e8d536 | 490 | case M0_CLEAR: |
Diletant | 161:efd949e8d536 | 491 | DecodeCRC(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 492 | DoMaintenanceClear(); |
Diletant | 161:efd949e8d536 | 493 | break; |
Diletant | 161:efd949e8d536 | 494 | case M0_MIRROR: |
Diletant | 161:efd949e8d536 | 495 | DecodeCRC(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 496 | DoMaintenanceMirror(); |
Diletant | 161:efd949e8d536 | 497 | break; |
Diletant | 161:efd949e8d536 | 498 | case M0_LDPAR_F: |
Diletant | 161:efd949e8d536 | 499 | DecodeCRC(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 500 | DeviceFlashReadAll(); |
Diletant | 167:bedc0a9d559a | 501 | DeviceInitState(); |
Diletant | 161:efd949e8d536 | 502 | break; |
Diletant | 161:efd949e8d536 | 503 | case M0_LDPAR_D: |
Diletant | 161:efd949e8d536 | 504 | DecodeCRC(); if (device.user.decoder.error) return; |
Diletant | 167:bedc0a9d559a | 505 | DeviceInitDefaultSettings(); |
Diletant | 167:bedc0a9d559a | 506 | DeviceInitState(); |
Diletant | 161:efd949e8d536 | 507 | break; |
Diletant | 161:efd949e8d536 | 508 | case M0_START: |
Diletant | 161:efd949e8d536 | 509 | DecodeCRC(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 510 | DoMaintenanceStart(); |
Diletant | 161:efd949e8d536 | 511 | break; |
Diletant | 161:efd949e8d536 | 512 | case M0_STOP: |
Diletant | 161:efd949e8d536 | 513 | DecodeCRC(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 514 | DoMaintenanceStop(); |
Diletant | 161:efd949e8d536 | 515 | break; |
Diletant | 161:efd949e8d536 | 516 | case M0_PULSE: |
Diletant | 161:efd949e8d536 | 517 | DecodeCRC(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 518 | DeviceStartLightUp(); |
Diletant | 161:efd949e8d536 | 519 | break; |
Diletant | 161:efd949e8d536 | 520 | default: DecodeFail(); |
Diletant | 161:efd949e8d536 | 521 | } |
Diletant | 161:efd949e8d536 | 522 | } |
Diletant | 161:efd949e8d536 | 523 | |
Diletant | 161:efd949e8d536 | 524 | void DoMaintenanceClear(void) { |
Diletant | 161:efd949e8d536 | 525 | //TODO |
Diletant | 161:efd949e8d536 | 526 | } |
Diletant | 161:efd949e8d536 | 527 | |
Diletant | 161:efd949e8d536 | 528 | void DoMaintenanceMirror(void) { |
Diletant | 161:efd949e8d536 | 529 | //TODO |
Diletant | 161:efd949e8d536 | 530 | } |
Diletant | 161:efd949e8d536 | 531 | |
Diletant | 161:efd949e8d536 | 532 | void DoMaintenanceStart(void) { |
Diletant | 161:efd949e8d536 | 533 | //TODO |
Diletant | 161:efd949e8d536 | 534 | } |
Diletant | 161:efd949e8d536 | 535 | |
Diletant | 161:efd949e8d536 | 536 | void DoMaintenanceStop(void) { |
Diletant | 161:efd949e8d536 | 537 | //TODO |
Diletant | 161:efd949e8d536 | 538 | } |
Diletant | 161:efd949e8d536 | 539 | |
Diletant | 161:efd949e8d536 | 540 | void DecodeMRate(void) { |
Diletant | 161:efd949e8d536 | 541 | uint8_t mode = Decode8(); if (device.user.decoder.error) return; |
Diletant | 177:672ef279c8e0 | 542 | if ((mode & 0x1f) == 1){ |
Diletant | 161:efd949e8d536 | 543 | DecodeCRC(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 544 | |
Diletant | 177:672ef279c8e0 | 545 | sprintf(device.service.buffer, "MRate %02x\r\n", mode); WriteConcole(); //Development message |
Diletant | 177:672ef279c8e0 | 546 | |
Diletant | 177:672ef279c8e0 | 547 | device.user.response.code |= mode & 0x1f; |
Diletant | 177:672ef279c8e0 | 548 | |
Diletant | 177:672ef279c8e0 | 549 | switch ((mode>>5) & 0x03) { |
Diletant | 177:672ef279c8e0 | 550 | case 0: device.user.response.rate = 38400; break; |
Diletant | 177:672ef279c8e0 | 551 | case 1: device.user.response.rate = 115200; break; |
Diletant | 177:672ef279c8e0 | 552 | } |
Diletant | 177:672ef279c8e0 | 553 | |
Diletant | 177:672ef279c8e0 | 554 | if (mode & 0x80) { |
Diletant | 177:672ef279c8e0 | 555 | //Reset device counters here |
Diletant | 177:672ef279c8e0 | 556 | device.counters.dither.state.angle = 0; |
Diletant | 177:672ef279c8e0 | 557 | device.counters.meander.state.angle[0] = 0; |
Diletant | 177:672ef279c8e0 | 558 | |
Diletant | 177:672ef279c8e0 | 559 | device.user.response.type = RESPONSE_PERIODIC; //Override default type |
Diletant | 177:672ef279c8e0 | 560 | device.user.response.trigger = 1000000; //1000000mks - 1Hz |
Diletant | 177:672ef279c8e0 | 561 | device.user.response.counter = device.user.response.trigger; //Ask_Gld expect immediate answer |
Diletant | 177:672ef279c8e0 | 562 | } |
Diletant | 177:672ef279c8e0 | 563 | } else { |
Diletant | 177:672ef279c8e0 | 564 | DecodeFail(); |
Diletant | 177:672ef279c8e0 | 565 | } |
Diletant | 177:672ef279c8e0 | 566 | } |
Diletant | 177:672ef279c8e0 | 567 | |
Diletant | 177:672ef279c8e0 | 568 | /* Template for MRate2,... |
Diletant | 177:672ef279c8e0 | 569 | void DecodeMRate(void) { |
Diletant | 177:672ef279c8e0 | 570 | uint8_t mode = Decode8(); if (device.user.decoder.error) return; |
Diletant | 177:672ef279c8e0 | 571 | if ((mode && 0x1f) == 0){ |
Diletant | 177:672ef279c8e0 | 572 | //MRate |
Diletant | 177:672ef279c8e0 | 573 | DecodeCRC(); if (device.user.decoder.error) return; |
Diletant | 177:672ef279c8e0 | 574 | |
Diletant | 177:672ef279c8e0 | 575 | device.user.response.code |= mode & 0x1f; |
Diletant | 161:efd949e8d536 | 576 | |
Diletant | 161:efd949e8d536 | 577 | switch ((mode>>5) & 0x03) { |
Diletant | 161:efd949e8d536 | 578 | case 0: device.user.response.rate = 38400; break; |
Diletant | 161:efd949e8d536 | 579 | case 1: device.user.response.rate = 115200; break; |
Diletant | 161:efd949e8d536 | 580 | case 2: device.user.response.rate = 460800; break; |
Diletant | 161:efd949e8d536 | 581 | case 3: device.user.response.rate = 921600; break; |
Diletant | 161:efd949e8d536 | 582 | } |
Diletant | 161:efd949e8d536 | 583 | |
Diletant | 161:efd949e8d536 | 584 | if (mode & 0x80) { |
Diletant | 161:efd949e8d536 | 585 | //TODO: reset device.counters here |
Diletant | 161:efd949e8d536 | 586 | device.user.response.counter = 0; |
Diletant | 161:efd949e8d536 | 587 | switch (mode & 0x03) { |
Diletant | 161:efd949e8d536 | 588 | case 1: device.user.response.trigger = 1000000; break; //1 000 000 mks - 1Hz |
Diletant | 161:efd949e8d536 | 589 | case 2: device.user.response.trigger = 3276700; break; //??? |
Diletant | 161:efd949e8d536 | 590 | case 3: device.user.response.trigger = 100; break; //100 mks - 10000Hz |
Diletant | 161:efd949e8d536 | 591 | case 4: device.user.response.trigger = 800; break; //800 mks - 1250Hz |
Diletant | 161:efd949e8d536 | 592 | case 7: device.user.response.trigger = 800; break; //800 mks - 1250Hz |
Diletant | 161:efd949e8d536 | 593 | } |
Diletant | 161:efd949e8d536 | 594 | device.user.response.type = RESPONSE_PERIODIC; //Override default type |
Diletant | 161:efd949e8d536 | 595 | } |
Diletant | 161:efd949e8d536 | 596 | } else { |
Diletant | 161:efd949e8d536 | 597 | DecodeFail(); |
Diletant | 161:efd949e8d536 | 598 | } |
Diletant | 177:672ef279c8e0 | 599 | }*/ |
Diletant | 161:efd949e8d536 | 600 | |
Diletant | 161:efd949e8d536 | 601 | void DecodeMStymul(void) { |
Diletant | 161:efd949e8d536 | 602 | uint8_t param = Decode8(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 603 | if ((param && 0x18) == 0){ |
Diletant | 161:efd949e8d536 | 604 | uint8_t hi = Decode8(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 605 | uint8_t lo = Decode8(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 606 | DecodeCRC(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 607 | |
Diletant | 177:672ef279c8e0 | 608 | sprintf(device.service.buffer, "MStymul %02x %02x %02x\r\n", param, hi, lo); WriteConcole(); //Development message |
Diletant | 177:672ef279c8e0 | 609 | |
Diletant | 161:efd949e8d536 | 610 | device.user.decoder.code |= param & 0x04; |
Diletant | 161:efd949e8d536 | 611 | device.user.response.rate = 38400; |
Diletant | 161:efd949e8d536 | 612 | |
Diletant | 161:efd949e8d536 | 613 | device.user.response.enabled = (param & 0x80) >> 7; |
Diletant | 161:efd949e8d536 | 614 | |
Diletant | 161:efd949e8d536 | 615 | uint8_t channel = param & 0x03; |
Diletant | 161:efd949e8d536 | 616 | if (param & 0x04) { |
Diletant | 161:efd949e8d536 | 617 | uint32_t flags = (hi << 8) | lo; |
Diletant | 161:efd949e8d536 | 618 | //TODO: write flags - only flag register 0 defined |
Diletant | 161:efd949e8d536 | 619 | if (channel == 0){ |
Diletant | 161:efd949e8d536 | 620 | //Potentiometers data |
Diletant | 161:efd949e8d536 | 621 | if (flags & 0x01){ |
Diletant | 161:efd949e8d536 | 622 | } else { |
Diletant | 161:efd949e8d536 | 623 | } |
Diletant | 161:efd949e8d536 | 624 | //Potentiometers data input enable/disable flag |
Diletant | 161:efd949e8d536 | 625 | if (flags & 0x02){ |
Diletant | 161:efd949e8d536 | 626 | } else { |
Diletant | 161:efd949e8d536 | 627 | } |
Diletant | 161:efd949e8d536 | 628 | //Laser Up |
Diletant | 161:efd949e8d536 | 629 | if (flags & 0x03){ |
Diletant | 161:efd949e8d536 | 630 | } else { |
Diletant | 161:efd949e8d536 | 631 | } |
Diletant | 161:efd949e8d536 | 632 | //Software reper |
Diletant | 161:efd949e8d536 | 633 | if (flags & 0x04){ |
Diletant | 161:efd949e8d536 | 634 | } else { |
Diletant | 161:efd949e8d536 | 635 | } |
Diletant | 161:efd949e8d536 | 636 | } |
Diletant | 161:efd949e8d536 | 637 | } else { |
Diletant | 161:efd949e8d536 | 638 | uint32_t voltage = ((hi << 4) | (lo >> 4)); //TODO: do correct transformations |
Diletant | 161:efd949e8d536 | 639 | //TODO: write DAC |
Diletant | 161:efd949e8d536 | 640 | switch (channel){ |
Diletant | 161:efd949e8d536 | 641 | case 0://PLC regulator |
Diletant | 161:efd949e8d536 | 642 | break; |
Diletant | 161:efd949e8d536 | 643 | case 1://PLC modulator |
Diletant | 161:efd949e8d536 | 644 | break; |
Diletant | 161:efd949e8d536 | 645 | case 2://laser power regulator |
Diletant | 161:efd949e8d536 | 646 | break; |
Diletant | 161:efd949e8d536 | 647 | case 3://worms |
Diletant | 161:efd949e8d536 | 648 | break; |
Diletant | 161:efd949e8d536 | 649 | } |
Diletant | 161:efd949e8d536 | 650 | } |
Diletant | 161:efd949e8d536 | 651 | } else { |
Diletant | 161:efd949e8d536 | 652 | DecodeFail(); |
Diletant | 161:efd949e8d536 | 653 | } |
Diletant | 161:efd949e8d536 | 654 | } |
Diletant | 161:efd949e8d536 | 655 | |
Diletant | 161:efd949e8d536 | 656 | void DecodeMReset(void) { |
Diletant | 161:efd949e8d536 | 657 | DecodeCRC(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 658 | |
Diletant | 161:efd949e8d536 | 659 | while (1); //Wait watch dog reset |
Diletant | 161:efd949e8d536 | 660 | } |
Diletant | 161:efd949e8d536 | 661 | |
Diletant | 177:672ef279c8e0 | 662 | void DecodeMCtlR(void) { |
Diletant | 161:efd949e8d536 | 663 | uint8_t param = Decode8(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 664 | DecodeCRC(); if (device.user.decoder.error) return; |
Diletant | 177:672ef279c8e0 | 665 | |
Diletant | 177:672ef279c8e0 | 666 | sprintf(device.service.buffer, "MCtlR %02x\r\n", param); WriteConcole(); //Development message |
Diletant | 177:672ef279c8e0 | 667 | |
Diletant | 177:672ef279c8e0 | 668 | if (param & 0x60 == 0) |
Diletant | 161:efd949e8d536 | 669 | device.user.response.rate = 38400; |
Diletant | 161:efd949e8d536 | 670 | else |
Diletant | 161:efd949e8d536 | 671 | device.user.response.rate = 115200; |
Diletant | 177:672ef279c8e0 | 672 | |
Diletant | 161:efd949e8d536 | 673 | device.user.response.code |= param & 0x10; |
Diletant | 161:efd949e8d536 | 674 | } |
Diletant | 161:efd949e8d536 | 675 | |
Diletant | 177:672ef279c8e0 | 676 | void DecodeMCtlM(void) { |
Diletant | 161:efd949e8d536 | 677 | uint8_t param = Decode8(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 678 | DecodeCRC(); if (device.user.decoder.error) return; |
Diletant | 177:672ef279c8e0 | 679 | |
Diletant | 177:672ef279c8e0 | 680 | sprintf(device.service.buffer, "MCtlM %02x\r\n", param); WriteConcole(); //Development message |
Diletant | 161:efd949e8d536 | 681 | |
Diletant | 177:672ef279c8e0 | 682 | if (param & 0x60 == 0) |
Diletant | 161:efd949e8d536 | 683 | device.user.response.rate = 38400; |
Diletant | 161:efd949e8d536 | 684 | else |
Diletant | 161:efd949e8d536 | 685 | device.user.response.rate = 115200; |
Diletant | 161:efd949e8d536 | 686 | |
Diletant | 161:efd949e8d536 | 687 | uint8_t bit = param & 0x0f; |
Diletant | 161:efd949e8d536 | 688 | uint8_t value = param & 0x80 >> 7; |
Diletant | 161:efd949e8d536 | 689 | if (param & 0x10 == 0){ |
Diletant | 161:efd949e8d536 | 690 | //RgConA - flags of regulator loops |
Diletant | 161:efd949e8d536 | 691 | switch (bit){ |
Diletant | 161:efd949e8d536 | 692 | case 0://Laser switch |
Diletant | 161:efd949e8d536 | 693 | //TODO |
Diletant | 161:efd949e8d536 | 694 | break; |
Diletant | 161:efd949e8d536 | 695 | |
Diletant | 161:efd949e8d536 | 696 | case 1://HFO loop switch |
Diletant | 161:efd949e8d536 | 697 | device.isacs.regulator.state.enabled = value; |
Diletant | 161:efd949e8d536 | 698 | break; |
Diletant | 161:efd949e8d536 | 699 | |
Diletant | 161:efd949e8d536 | 700 | case 3://PLC loop switch |
Diletant | 161:efd949e8d536 | 701 | device.plcs.regulator.state.enabled = value; |
Diletant | 161:efd949e8d536 | 702 | break; |
Diletant | 161:efd949e8d536 | 703 | |
Diletant | 161:efd949e8d536 | 704 | case 4://Modulator switch |
Diletant | 166:c3c0b8a90d81 | 705 | //device.plcs.modulator.state.enabled = value; |
Diletant | 173:7f938afb0447 | 706 | device.sequencer.output.analog.state.enabled = value; |
Diletant | 161:efd949e8d536 | 707 | break; |
Diletant | 161:efd949e8d536 | 708 | |
Diletant | 161:efd949e8d536 | 709 | case 5://Dither drive pulse width/output frequency loop switch |
Diletant | 173:7f938afb0447 | 710 | device.dither.amplitude.state.enabled = value; |
Diletant | 161:efd949e8d536 | 711 | break; |
Diletant | 161:efd949e8d536 | 712 | |
Diletant | 161:efd949e8d536 | 713 | case 6://Dither drive oscillation frequency loop switch |
Diletant | 173:7f938afb0447 | 714 | device.dither.frequency.state.enabled = value; |
Diletant | 161:efd949e8d536 | 715 | break; |
Diletant | 161:efd949e8d536 | 716 | |
Diletant | 161:efd949e8d536 | 717 | case 7: //All loops switch |
Diletant | 161:efd949e8d536 | 718 | device.isacs.regulator.state.enabled = value; |
Diletant | 161:efd949e8d536 | 719 | device.plcs.regulator.state.enabled = value; |
Diletant | 173:7f938afb0447 | 720 | device.sequencer.output.analog.state.enabled = value; |
Diletant | 173:7f938afb0447 | 721 | device.dither.amplitude.state.enabled = value; |
Diletant | 173:7f938afb0447 | 722 | device.dither.frequency.state.enabled = value; |
Diletant | 161:efd949e8d536 | 723 | break; |
Diletant | 161:efd949e8d536 | 724 | } |
Diletant | 161:efd949e8d536 | 725 | } else { |
Diletant | 161:efd949e8d536 | 726 | //RgConB - counting mode: 00 - reference counters, 01 - dither counters and moving average filter |
Diletant | 161:efd949e8d536 | 727 | switch (bit){ |
Diletant | 161:efd949e8d536 | 728 | case 0://Moving average filter |
Diletant | 161:efd949e8d536 | 729 | //TODO |
Diletant | 161:efd949e8d536 | 730 | break; |
Diletant | 161:efd949e8d536 | 731 | |
Diletant | 161:efd949e8d536 | 732 | case 1:// |
Diletant | 161:efd949e8d536 | 733 | //TODO |
Diletant | 161:efd949e8d536 | 734 | break; |
Diletant | 161:efd949e8d536 | 735 | |
Diletant | 161:efd949e8d536 | 736 | case 2:// |
Diletant | 161:efd949e8d536 | 737 | //TODO |
Diletant | 161:efd949e8d536 | 738 | break; |
Diletant | 161:efd949e8d536 | 739 | } |
Diletant | 161:efd949e8d536 | 740 | } |
Diletant | 161:efd949e8d536 | 741 | |
Diletant | 161:efd949e8d536 | 742 | device.user.response.code |= param & 0x10; |
Diletant | 161:efd949e8d536 | 743 | } |
Diletant | 161:efd949e8d536 | 744 | |
Diletant | 161:efd949e8d536 | 745 | void DecodeMADCR(void) { |
Diletant | 161:efd949e8d536 | 746 | //TODO |
Diletant | 161:efd949e8d536 | 747 | } |
Diletant | 161:efd949e8d536 | 748 | |
Diletant | 161:efd949e8d536 | 749 | void DecodeMTmpW(void) { |
Diletant | 161:efd949e8d536 | 750 | //Not compatible with new ADC |
Diletant | 161:efd949e8d536 | 751 | //Just consume required amount of input: |
Diletant | 161:efd949e8d536 | 752 | Decode8(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 753 | Decode8(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 754 | Decode8(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 755 | Decode8(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 756 | Decode8(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 757 | DecodeCRC(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 758 | } |
Diletant | 161:efd949e8d536 | 759 | |
Diletant | 161:efd949e8d536 | 760 | void DecodeMTmpR(void) { |
Diletant | 161:efd949e8d536 | 761 | //Not compatible with new ADC |
Diletant | 161:efd949e8d536 | 762 | //Just consume required amount of input: |
Diletant | 161:efd949e8d536 | 763 | Decode8(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 764 | DecodeCRC(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 765 | } |
Diletant | 161:efd949e8d536 | 766 | |
Diletant | 161:efd949e8d536 | 767 | void DecodeMe5rW(void) { |
Diletant | 161:efd949e8d536 | 768 | //TODO |
Diletant | 161:efd949e8d536 | 769 | } |
Diletant | 161:efd949e8d536 | 770 | |
Diletant | 161:efd949e8d536 | 771 | void DecodeMCntR(void) { |
Diletant | 177:672ef279c8e0 | 772 | uint8_t param = Decode8(); if (device.user.decoder.error) return; |
Diletant | 177:672ef279c8e0 | 773 | DecodeCRC(); if (device.user.decoder.error) return; |
Diletant | 177:672ef279c8e0 | 774 | |
Diletant | 177:672ef279c8e0 | 775 | sprintf(device.service.buffer, "MCntR %02x\r\n", param); WriteConcole(); //Development message |
Diletant | 177:672ef279c8e0 | 776 | |
Diletant | 177:672ef279c8e0 | 777 | if (param & 0x60 == 0) |
Diletant | 177:672ef279c8e0 | 778 | device.user.response.rate = 38400; |
Diletant | 177:672ef279c8e0 | 779 | else |
Diletant | 177:672ef279c8e0 | 780 | device.user.response.rate = 115200; |
Diletant | 177:672ef279c8e0 | 781 | if (param & 0x80) { |
Diletant | 177:672ef279c8e0 | 782 | device.user.response.counter = 0; |
Diletant | 177:672ef279c8e0 | 783 | device.user.response.trigger = 200; //200 mks - 500Hz |
Diletant | 177:672ef279c8e0 | 784 | device.user.response.type = RESPONSE_PERIODIC; //Override default type |
Diletant | 177:672ef279c8e0 | 785 | } |
Diletant | 161:efd949e8d536 | 786 | } |
Diletant | 161:efd949e8d536 | 787 | |
Diletant | 161:efd949e8d536 | 788 | void DecodeMFlgR(void) { |
Diletant | 161:efd949e8d536 | 789 | //TODO |
Diletant | 161:efd949e8d536 | 790 | } |
Diletant | 161:efd949e8d536 | 791 | |
Diletant | 161:efd949e8d536 | 792 | void DecodeMVibW(void) { |
Diletant | 161:efd949e8d536 | 793 | //TODO |
Diletant | 161:efd949e8d536 | 794 | } |
Diletant | 161:efd949e8d536 | 795 | |
Diletant | 161:efd949e8d536 | 796 | void DecodeMGphW(void) { |
Diletant | 161:efd949e8d536 | 797 | uint8_t gainA = Decode8(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 798 | uint8_t gainB = Decode8(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 799 | DecodeCRC(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 800 | device.isacs.potentiometers.state.a = gainA; |
Diletant | 161:efd949e8d536 | 801 | device.isacs.potentiometers.state.b = gainB; |
Diletant | 161:efd949e8d536 | 802 | DeviceISACSSetPotentiometers(); |
Diletant | 161:efd949e8d536 | 803 | } |
Diletant | 161:efd949e8d536 | 804 | |
Diletant | 161:efd949e8d536 | 805 | uint16_t GetCompatibilityValue(uint8_t index) { |
Diletant | 161:efd949e8d536 | 806 | |
Diletant | 161:efd949e8d536 | 807 | return 0; |
Diletant | 161:efd949e8d536 | 808 | } |
Diletant | 161:efd949e8d536 | 809 | |
Diletant | 161:efd949e8d536 | 810 | void DecodeMParamR(void) { |
Diletant | 161:efd949e8d536 | 811 | //TODO |
Diletant | 161:efd949e8d536 | 812 | uint8_t index = Decode8(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 813 | DecodeCRC(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 814 | |
Diletant | 177:672ef279c8e0 | 815 | sprintf(device.service.buffer, "MParamR %02x\r\n", index); WriteConcole(); //Development message |
Diletant | 177:672ef279c8e0 | 816 | |
Diletant | 161:efd949e8d536 | 817 | switch (index){ |
Diletant | 161:efd949e8d536 | 818 | case 0: |
Diletant | 177:672ef279c8e0 | 819 | //My_Address s16 device address |
Diletant | 177:672ef279c8e0 | 820 | device.user.response.message = device.user.address; |
Diletant | 177:672ef279c8e0 | 821 | break; |
Diletant | 177:672ef279c8e0 | 822 | |
Diletant | 177:672ef279c8e0 | 823 | case 1: |
Diletant | 177:672ef279c8e0 | 824 | //HF_ref s16 value of the reference |
Diletant | 177:672ef279c8e0 | 825 | //int32_t device.isacs.regulator.state.reference |
Diletant | 177:672ef279c8e0 | 826 | device.user.response.message = 0; //TODO: Expected ADC code, currently [V] |
Diletant | 177:672ef279c8e0 | 827 | break; |
Diletant | 177:672ef279c8e0 | 828 | |
Diletant | 177:672ef279c8e0 | 829 | case 2: |
Diletant | 177:672ef279c8e0 | 830 | //HF_scl s16 HFO gain factor |
Diletant | 177:672ef279c8e0 | 831 | //int32_t device.isacs.regulator.state.scale |
Diletant | 177:672ef279c8e0 | 832 | device.user.response.message = (device.isacs.regulator.state.scale >> 16); //TODO: Expected integer code, currently in 16.16 |
Diletant | 177:672ef279c8e0 | 833 | break; |
Diletant | 177:672ef279c8e0 | 834 | |
Diletant | 177:672ef279c8e0 | 835 | case 3: |
Diletant | 177:672ef279c8e0 | 836 | //HF_min dac ttf:minimum DAC code in HFO channel; value:maximal voltage of HFO; value=(ttf>>4)/2048*(-12)-1.3; Range -13.2V...10.7V |
Diletant | 177:672ef279c8e0 | 837 | //int32_t device.isacs.output.state.max |
Diletant | 177:672ef279c8e0 | 838 | device.user.response.message = 0; //TODO: Expected DAC code, currently [V] 16.16 |
Diletant | 177:672ef279c8e0 | 839 | break; |
Diletant | 177:672ef279c8e0 | 840 | |
Diletant | 177:672ef279c8e0 | 841 | case 4: |
Diletant | 177:672ef279c8e0 | 842 | //HF_max dac ttf:maximum DAC code in HFO channel; value:minimal voltage of HFO; value=(ttf>>4)/2048*(-12)-1.3; Range -13.2V...10.7V |
Diletant | 177:672ef279c8e0 | 843 | //int32_t device.isacs.output.state.min |
Diletant | 177:672ef279c8e0 | 844 | device.user.response.message = 0; //TODO: Expected DAC code, currently [V] 16.16 |
Diletant | 177:672ef279c8e0 | 845 | break; |
Diletant | 177:672ef279c8e0 | 846 | |
Diletant | 177:672ef279c8e0 | 847 | case 5: |
Diletant | 177:672ef279c8e0 | 848 | //RI_ref s16 not used (DS reference) |
Diletant | 177:672ef279c8e0 | 849 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 850 | break; |
Diletant | 177:672ef279c8e0 | 851 | |
Diletant | 177:672ef279c8e0 | 852 | case 6: |
Diletant | 177:672ef279c8e0 | 853 | //RI_scl s16 not used (DS gain factor) |
Diletant | 177:672ef279c8e0 | 854 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 855 | break; |
Diletant | 177:672ef279c8e0 | 856 | |
Diletant | 177:672ef279c8e0 | 857 | case 7: |
Diletant | 177:672ef279c8e0 | 858 | //WP_ref s16 PLCS reference |
Diletant | 177:672ef279c8e0 | 859 | //int32_t device.plcs.regulator.reference |
Diletant | 177:672ef279c8e0 | 860 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 861 | break; |
Diletant | 177:672ef279c8e0 | 862 | |
Diletant | 177:672ef279c8e0 | 863 | case 8: |
Diletant | 177:672ef279c8e0 | 864 | //WP_scl s16 PLCS gain factor (1.15) 5..20 |
Diletant | 177:672ef279c8e0 | 865 | //int32_t device.plcs.regulator.scale |
Diletant | 177:672ef279c8e0 | 866 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 867 | break; |
Diletant | 177:672ef279c8e0 | 868 | |
Diletant | 177:672ef279c8e0 | 869 | case 9: |
Diletant | 177:672ef279c8e0 | 870 | //WP_mdy s16 PLCS reset delay in 10kHz cycles |
Diletant | 177:672ef279c8e0 | 871 | //device.plcs.reset.state.? |
Diletant | 177:672ef279c8e0 | 872 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 873 | break; |
Diletant | 177:672ef279c8e0 | 874 | |
Diletant | 177:672ef279c8e0 | 875 | case 10: |
Diletant | 177:672ef279c8e0 | 876 | //WP_rup dac ttf:PLCS maximum DAC code in heater channel; value:minimal voltage on the heater; value=(ttf>>4)/2048*(-12)-1.3; Range -13.2V...10.7V |
Diletant | 177:672ef279c8e0 | 877 | //? |
Diletant | 177:672ef279c8e0 | 878 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 879 | break; |
Diletant | 177:672ef279c8e0 | 880 | |
Diletant | 177:672ef279c8e0 | 881 | case 11: |
Diletant | 177:672ef279c8e0 | 882 | //WP_rdw dac ttf:PLCS minimum DAC code in heater channel; value:maximal voltage on the heater; value=(ttf>>4)/2048*(-12)-1.3; Range -13.2V...10.7V |
Diletant | 177:672ef279c8e0 | 883 | //? |
Diletant | 177:672ef279c8e0 | 884 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 885 | break; |
Diletant | 177:672ef279c8e0 | 886 | |
Diletant | 177:672ef279c8e0 | 887 | case 12: |
Diletant | 177:672ef279c8e0 | 888 | //VB_phs s16 the phase delay parameter of the dither drive PLL |
Diletant | 177:672ef279c8e0 | 889 | //? |
Diletant | 177:672ef279c8e0 | 890 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 891 | break; |
Diletant | 177:672ef279c8e0 | 892 | |
Diletant | 177:672ef279c8e0 | 893 | case 13: |
Diletant | 177:672ef279c8e0 | 894 | //VB_scl s16 the gain factor (1.15) of the dither drive PLL |
Diletant | 177:672ef279c8e0 | 895 | //device.dither.frequency.state.scale |
Diletant | 177:672ef279c8e0 | 896 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 897 | break; |
Diletant | 177:672ef279c8e0 | 898 | |
Diletant | 177:672ef279c8e0 | 899 | case 14: |
Diletant | 177:672ef279c8e0 | 900 | //VB_N vbd ttf:dither drive oscillation central frequency divider 7680000/F; value:dither drive central oscillation frequency |
Diletant | 177:672ef279c8e0 | 901 | //device.dither.frequency.state.frequency |
Diletant | 177:672ef279c8e0 | 902 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 903 | break; |
Diletant | 177:672ef279c8e0 | 904 | |
Diletant | 177:672ef279c8e0 | 905 | case 15: |
Diletant | 177:672ef279c8e0 | 906 | //VB_Nmin vbd ttf:minimum dither drive oscillation frequency divider 7680000/F; value:maximum dither drive oscillation frequency |
Diletant | 177:672ef279c8e0 | 907 | //device.dither.frequency.state.max |
Diletant | 177:672ef279c8e0 | 908 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 909 | break; |
Diletant | 177:672ef279c8e0 | 910 | |
Diletant | 177:672ef279c8e0 | 911 | case 16: |
Diletant | 177:672ef279c8e0 | 912 | //VB_Nmax vbd ttf:maximum dither drive oscillation frequency divider 7680000/F; value:minimum dither drive oscillation frequency |
Diletant | 177:672ef279c8e0 | 913 | //device.dither.frequency.state.min |
Diletant | 177:672ef279c8e0 | 914 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 915 | break; |
Diletant | 177:672ef279c8e0 | 916 | |
Diletant | 177:672ef279c8e0 | 917 | case 17: |
Diletant | 177:672ef279c8e0 | 918 | //VB_Fdf s32 double output frequency (Hi) |
Diletant | 177:672ef279c8e0 | 919 | //device.dither.amplitude.state.frequency |
Diletant | 177:672ef279c8e0 | 920 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 921 | break; |
Diletant | 177:672ef279c8e0 | 922 | |
Diletant | 177:672ef279c8e0 | 923 | case 18: |
Diletant | 177:672ef279c8e0 | 924 | //VB_Fdf s32 double output frequency (Lo) |
Diletant | 177:672ef279c8e0 | 925 | //device.dither.amplitude.state.frequency |
Diletant | 177:672ef279c8e0 | 926 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 927 | break; |
Diletant | 177:672ef279c8e0 | 928 | |
Diletant | 177:672ef279c8e0 | 929 | case 19: |
Diletant | 177:672ef279c8e0 | 930 | //VB_Fsc s16 the gain factor of the frequency regulator |
Diletant | 177:672ef279c8e0 | 931 | //device.dither.amplitude.state.frequency.scale |
Diletant | 177:672ef279c8e0 | 932 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 933 | break; |
Diletant | 177:672ef279c8e0 | 934 | |
Diletant | 177:672ef279c8e0 | 935 | case 20: |
Diletant | 177:672ef279c8e0 | 936 | //VB_Tmin tau minimum pulse width of the dither drive; value=ttf/15360000 in seconds |
Diletant | 177:672ef279c8e0 | 937 | //device.dither.amplitude.state.min |
Diletant | 177:672ef279c8e0 | 938 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 939 | break; |
Diletant | 177:672ef279c8e0 | 940 | |
Diletant | 177:672ef279c8e0 | 941 | case 21: |
Diletant | 177:672ef279c8e0 | 942 | //VB_Tmax tau maximum pulse width of the dither drive; value=ttf/15360000 in seconds |
Diletant | 177:672ef279c8e0 | 943 | //device.dither.amplitude.state.max |
Diletant | 177:672ef279c8e0 | 944 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 945 | break; |
Diletant | 177:672ef279c8e0 | 946 | |
Diletant | 177:672ef279c8e0 | 947 | case 22: |
Diletant | 177:672ef279c8e0 | 948 | //VB_tau tau pulse width of the dither drive without noise or current pulse width of the dither drive with noise; value=ttf/15360000 in seconds |
Diletant | 177:672ef279c8e0 | 949 | //device.dither.pulse.state.width |
Diletant | 177:672ef279c8e0 | 950 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 951 | break; |
Diletant | 177:672ef279c8e0 | 952 | |
Diletant | 177:672ef279c8e0 | 953 | case 23: |
Diletant | 177:672ef279c8e0 | 954 | //VBN_Tzd s16 adjusted noise period |
Diletant | 177:672ef279c8e0 | 955 | //int32_t device.dither.noise.state.period |
Diletant | 177:672ef279c8e0 | 956 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 957 | break; |
Diletant | 177:672ef279c8e0 | 958 | |
Diletant | 177:672ef279c8e0 | 959 | case 24: |
Diletant | 177:672ef279c8e0 | 960 | //VBN_Ran s16 range of the random component of noise |
Diletant | 177:672ef279c8e0 | 961 | //int32_t device.dither.noise.state.range |
Diletant | 177:672ef279c8e0 | 962 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 963 | break; |
Diletant | 177:672ef279c8e0 | 964 | |
Diletant | 177:672ef279c8e0 | 965 | case 25: |
Diletant | 177:672ef279c8e0 | 966 | //VBN_k s16 adjusted noise constant |
Diletant | 177:672ef279c8e0 | 967 | //int32_t device.dither.noise.state.amplitude |
Diletant | 177:672ef279c8e0 | 968 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 969 | break; |
Diletant | 177:672ef279c8e0 | 970 | |
Diletant | 177:672ef279c8e0 | 971 | case 26: |
Diletant | 177:672ef279c8e0 | 972 | case 27: |
Diletant | 177:672ef279c8e0 | 973 | case 28: |
Diletant | 177:672ef279c8e0 | 974 | case 29: |
Diletant | 177:672ef279c8e0 | 975 | case 30: |
Diletant | 177:672ef279c8e0 | 976 | case 31: |
Diletant | 177:672ef279c8e0 | 977 | case 32: |
Diletant | 177:672ef279c8e0 | 978 | case 33: |
Diletant | 177:672ef279c8e0 | 979 | case 34: |
Diletant | 177:672ef279c8e0 | 980 | case 35: |
Diletant | 177:672ef279c8e0 | 981 | case 36: |
Diletant | 177:672ef279c8e0 | 982 | case 37: |
Diletant | 177:672ef279c8e0 | 983 | case 38: |
Diletant | 177:672ef279c8e0 | 984 | case 39: |
Diletant | 177:672ef279c8e0 | 985 | case 40: |
Diletant | 177:672ef279c8e0 | 986 | case 41: |
Diletant | 177:672ef279c8e0 | 987 | case 42: |
Diletant | 177:672ef279c8e0 | 988 | //Reserved s16 not used |
Diletant | 177:672ef279c8e0 | 989 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 990 | break; |
Diletant | 177:672ef279c8e0 | 991 | |
Diletant | 177:672ef279c8e0 | 992 | case 43: |
Diletant | 177:672ef279c8e0 | 993 | //Tmp_bias0[0] s16 Tmp_bias[6]: an array of shifts of the 0..5 temperature sensors |
Diletant | 177:672ef279c8e0 | 994 | //? |
Diletant | 177:672ef279c8e0 | 995 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 996 | break; |
Diletant | 177:672ef279c8e0 | 997 | |
Diletant | 177:672ef279c8e0 | 998 | case 44: |
Diletant | 177:672ef279c8e0 | 999 | //Tmp_bias0[1] s16 |
Diletant | 177:672ef279c8e0 | 1000 | //? |
Diletant | 177:672ef279c8e0 | 1001 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1002 | break; |
Diletant | 177:672ef279c8e0 | 1003 | |
Diletant | 177:672ef279c8e0 | 1004 | case 45: |
Diletant | 177:672ef279c8e0 | 1005 | //Tmp_bias0[2] s16 |
Diletant | 177:672ef279c8e0 | 1006 | //? |
Diletant | 177:672ef279c8e0 | 1007 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1008 | break; |
Diletant | 177:672ef279c8e0 | 1009 | |
Diletant | 177:672ef279c8e0 | 1010 | case 46: |
Diletant | 177:672ef279c8e0 | 1011 | //Tmp_bias0[3] s16 |
Diletant | 177:672ef279c8e0 | 1012 | //? |
Diletant | 177:672ef279c8e0 | 1013 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1014 | break; |
Diletant | 177:672ef279c8e0 | 1015 | |
Diletant | 177:672ef279c8e0 | 1016 | case 47: |
Diletant | 177:672ef279c8e0 | 1017 | //Tmp_bias0[4] s16 |
Diletant | 177:672ef279c8e0 | 1018 | //? |
Diletant | 177:672ef279c8e0 | 1019 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1020 | break; |
Diletant | 177:672ef279c8e0 | 1021 | |
Diletant | 177:672ef279c8e0 | 1022 | case 48: |
Diletant | 177:672ef279c8e0 | 1023 | //Tmp_bias0[5] s16 |
Diletant | 177:672ef279c8e0 | 1024 | //? |
Diletant | 177:672ef279c8e0 | 1025 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1026 | break; |
Diletant | 177:672ef279c8e0 | 1027 | |
Diletant | 177:672ef279c8e0 | 1028 | case 49: |
Diletant | 177:672ef279c8e0 | 1029 | //Tmp_scal0[0] s16 Tmp_scal[6]: an array of the scale coefficients of the 0..5 temperature sensors |
Diletant | 177:672ef279c8e0 | 1030 | //? |
Diletant | 177:672ef279c8e0 | 1031 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1032 | break; |
Diletant | 177:672ef279c8e0 | 1033 | |
Diletant | 177:672ef279c8e0 | 1034 | case 50: |
Diletant | 177:672ef279c8e0 | 1035 | //Tmp_scal0[1] s16 |
Diletant | 177:672ef279c8e0 | 1036 | //? |
Diletant | 177:672ef279c8e0 | 1037 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1038 | break; |
Diletant | 177:672ef279c8e0 | 1039 | |
Diletant | 177:672ef279c8e0 | 1040 | case 51: |
Diletant | 177:672ef279c8e0 | 1041 | //Tmp_scal0[2] s16 |
Diletant | 177:672ef279c8e0 | 1042 | //? |
Diletant | 177:672ef279c8e0 | 1043 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1044 | break; |
Diletant | 177:672ef279c8e0 | 1045 | |
Diletant | 177:672ef279c8e0 | 1046 | case 52: |
Diletant | 177:672ef279c8e0 | 1047 | //Tmp_scal0[3] s16 |
Diletant | 177:672ef279c8e0 | 1048 | //? |
Diletant | 177:672ef279c8e0 | 1049 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1050 | break; |
Diletant | 177:672ef279c8e0 | 1051 | |
Diletant | 177:672ef279c8e0 | 1052 | case 53: |
Diletant | 177:672ef279c8e0 | 1053 | //Tmp_scal0[4] s16 |
Diletant | 177:672ef279c8e0 | 1054 | //? |
Diletant | 177:672ef279c8e0 | 1055 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1056 | break; |
Diletant | 177:672ef279c8e0 | 1057 | |
Diletant | 177:672ef279c8e0 | 1058 | case 54: |
Diletant | 177:672ef279c8e0 | 1059 | //Tmp_scal0[5] s16 |
Diletant | 177:672ef279c8e0 | 1060 | //? |
Diletant | 177:672ef279c8e0 | 1061 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1062 | break; |
Diletant | 177:672ef279c8e0 | 1063 | |
Diletant | 177:672ef279c8e0 | 1064 | case 55: |
Diletant | 177:672ef279c8e0 | 1065 | //WP_reset dac ttf:PLCS DAC code after reset at heating; value:heater voltage after reset at heating; value=(ttf>>4)/2048*(-12)-1.3; Range -13.2V...10.7V |
Diletant | 177:672ef279c8e0 | 1066 | //int32_t device.plcs.reset.levels.upper |
Diletant | 177:672ef279c8e0 | 1067 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1068 | break; |
Diletant | 177:672ef279c8e0 | 1069 | |
Diletant | 177:672ef279c8e0 | 1070 | case 56: |
Diletant | 177:672ef279c8e0 | 1071 | //KSin s16 Gain_Ph_A: initial gain factor of the A channel of photodetector |
Diletant | 177:672ef279c8e0 | 1072 | //uint32_t device.isacs.potentiometers.state.a |
Diletant | 177:672ef279c8e0 | 1073 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1074 | break; |
Diletant | 177:672ef279c8e0 | 1075 | |
Diletant | 177:672ef279c8e0 | 1076 | case 57: |
Diletant | 177:672ef279c8e0 | 1077 | //KCos s16 Gain_Ph_B: initial gain factor of the B channel of photodetector |
Diletant | 177:672ef279c8e0 | 1078 | //uint32_t device.isacs.potentiometers.state.b |
Diletant | 177:672ef279c8e0 | 1079 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1080 | break; |
Diletant | 177:672ef279c8e0 | 1081 | |
Diletant | 177:672ef279c8e0 | 1082 | case 58: |
Diletant | 177:672ef279c8e0 | 1083 | //Header s16 flash memory load validity control value: should be 0x55AA |
Diletant | 177:672ef279c8e0 | 1084 | device.user.response.message = 0x55AA; |
Diletant | 177:672ef279c8e0 | 1085 | break; |
Diletant | 177:672ef279c8e0 | 1086 | |
Diletant | 177:672ef279c8e0 | 1087 | case 59: |
Diletant | 177:672ef279c8e0 | 1088 | //LoadFlash_Enable s16 parameters load switch: 1 - load from the flash 0 - load default parameters (factory) |
Diletant | 177:672ef279c8e0 | 1089 | //? |
Diletant | 177:672ef279c8e0 | 1090 | device.user.response.message = 1; |
Diletant | 177:672ef279c8e0 | 1091 | break; |
Diletant | 177:672ef279c8e0 | 1092 | |
Diletant | 177:672ef279c8e0 | 1093 | case 60: |
Diletant | 177:672ef279c8e0 | 1094 | //SerialNumber u16 serial number of device |
Diletant | 177:672ef279c8e0 | 1095 | // |
Diletant | 177:672ef279c8e0 | 1096 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1097 | break; |
Diletant | 177:672ef279c8e0 | 1098 | |
Diletant | 177:672ef279c8e0 | 1099 | case 61: |
Diletant | 177:672ef279c8e0 | 1100 | //WP_start dac not used (ttf:PLCS initial DAC code after switch-on; value:heater voltage after switch-on; value=(ttf>>4)/2048*(-12))-1.3; Range -13.2V...10.7V |
Diletant | 177:672ef279c8e0 | 1101 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1102 | break; |
Diletant | 177:672ef279c8e0 | 1103 | |
Diletant | 177:672ef279c8e0 | 1104 | case 62: |
Diletant | 177:672ef279c8e0 | 1105 | //TermoMode u16 device operation mode switch: 0-raw output, 1-thermocompensated output, 2-thermocompensation value only for debug purposes |
Diletant | 177:672ef279c8e0 | 1106 | //? |
Diletant | 177:672ef279c8e0 | 1107 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1108 | break; |
Diletant | 177:672ef279c8e0 | 1109 | |
Diletant | 177:672ef279c8e0 | 1110 | case 63: |
Diletant | 177:672ef279c8e0 | 1111 | case 64: |
Diletant | 177:672ef279c8e0 | 1112 | case 65: |
Diletant | 177:672ef279c8e0 | 1113 | case 66: |
Diletant | 177:672ef279c8e0 | 1114 | case 67: |
Diletant | 177:672ef279c8e0 | 1115 | case 68: |
Diletant | 177:672ef279c8e0 | 1116 | case 69: |
Diletant | 177:672ef279c8e0 | 1117 | case 70: |
Diletant | 177:672ef279c8e0 | 1118 | case 71: |
Diletant | 177:672ef279c8e0 | 1119 | case 72: |
Diletant | 177:672ef279c8e0 | 1120 | case 73: |
Diletant | 177:672ef279c8e0 | 1121 | case 74: |
Diletant | 177:672ef279c8e0 | 1122 | case 75: |
Diletant | 177:672ef279c8e0 | 1123 | case 76: |
Diletant | 177:672ef279c8e0 | 1124 | //TemperInt[0] ... TemperInt[13] s16 reserved: should be zero! |
Diletant | 177:672ef279c8e0 | 1125 | // |
Diletant | 177:672ef279c8e0 | 1126 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1127 | break; |
Diletant | 177:672ef279c8e0 | 1128 | |
Diletant | 177:672ef279c8e0 | 1129 | case 77: |
Diletant | 177:672ef279c8e0 | 1130 | case 78: |
Diletant | 177:672ef279c8e0 | 1131 | case 79: |
Diletant | 177:672ef279c8e0 | 1132 | case 80: |
Diletant | 177:672ef279c8e0 | 1133 | case 81: |
Diletant | 177:672ef279c8e0 | 1134 | case 82: |
Diletant | 177:672ef279c8e0 | 1135 | case 83: |
Diletant | 177:672ef279c8e0 | 1136 | case 84: |
Diletant | 177:672ef279c8e0 | 1137 | case 85: |
Diletant | 177:672ef279c8e0 | 1138 | case 86: |
Diletant | 177:672ef279c8e0 | 1139 | case 87: |
Diletant | 177:672ef279c8e0 | 1140 | case 88: |
Diletant | 177:672ef279c8e0 | 1141 | case 89: |
Diletant | 177:672ef279c8e0 | 1142 | case 90: |
Diletant | 177:672ef279c8e0 | 1143 | case 91: |
Diletant | 177:672ef279c8e0 | 1144 | case 92: |
Diletant | 177:672ef279c8e0 | 1145 | case 93: |
Diletant | 177:672ef279c8e0 | 1146 | case 94: |
Diletant | 177:672ef279c8e0 | 1147 | case 95: |
Diletant | 177:672ef279c8e0 | 1148 | case 96: |
Diletant | 177:672ef279c8e0 | 1149 | case 97: |
Diletant | 177:672ef279c8e0 | 1150 | case 98: |
Diletant | 177:672ef279c8e0 | 1151 | case 99: |
Diletant | 177:672ef279c8e0 | 1152 | case 100: |
Diletant | 177:672ef279c8e0 | 1153 | case 101: |
Diletant | 177:672ef279c8e0 | 1154 | case 102: |
Diletant | 177:672ef279c8e0 | 1155 | case 103: |
Diletant | 177:672ef279c8e0 | 1156 | case 104: |
Diletant | 177:672ef279c8e0 | 1157 | //TermoFunc[0]...TermoFunc[13] f32 reserved: should be zero! (Hi)/(Lo) |
Diletant | 177:672ef279c8e0 | 1158 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1159 | break; |
Diletant | 177:672ef279c8e0 | 1160 | |
Diletant | 177:672ef279c8e0 | 1161 | case 105: |
Diletant | 177:672ef279c8e0 | 1162 | //WP_reset2 dac ttf:PLCS DAC code after reset at cooling; value:heater voltage after reset at cooling; value=(ttf>>4)/2048*(-12)-1.3 |
Diletant | 177:672ef279c8e0 | 1163 | //int32_t device.plcs.reset.levels.lower |
Diletant | 177:672ef279c8e0 | 1164 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1165 | break; |
Diletant | 177:672ef279c8e0 | 1166 | |
Diletant | 177:672ef279c8e0 | 1167 | case 106: |
Diletant | 177:672ef279c8e0 | 1168 | case 107: |
Diletant | 177:672ef279c8e0 | 1169 | //TermoHeatDelta f32 reserved: should be zero! (Lo) |
Diletant | 177:672ef279c8e0 | 1170 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1171 | break; |
Diletant | 177:672ef279c8e0 | 1172 | |
Diletant | 177:672ef279c8e0 | 1173 | case 108: |
Diletant | 177:672ef279c8e0 | 1174 | case 109: |
Diletant | 177:672ef279c8e0 | 1175 | //TermoCoolDelta f32 reserved: should be zero! (Lo) |
Diletant | 177:672ef279c8e0 | 1176 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1177 | break; |
Diletant | 177:672ef279c8e0 | 1178 | |
Diletant | 177:672ef279c8e0 | 1179 | case 110: |
Diletant | 177:672ef279c8e0 | 1180 | //K_vb_tu s16 slope of dependence of the VB_N division factor from temperature (as though Hz/degree, but in c.u.) |
Diletant | 177:672ef279c8e0 | 1181 | //? |
Diletant | 177:672ef279c8e0 | 1182 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1183 | break; |
Diletant | 177:672ef279c8e0 | 1184 | |
Diletant | 177:672ef279c8e0 | 1185 | case 111: |
Diletant | 177:672ef279c8e0 | 1186 | //TemperNormal s16 temperature for which the VB_N division factor of the dither drive is set |
Diletant | 177:672ef279c8e0 | 1187 | //? |
Diletant | 177:672ef279c8e0 | 1188 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1189 | break; |
Diletant | 177:672ef279c8e0 | 1190 | |
Diletant | 177:672ef279c8e0 | 1191 | case 112: |
Diletant | 177:672ef279c8e0 | 1192 | //K_WP_rst_heating s16 |
Diletant | 177:672ef279c8e0 | 1193 | //? |
Diletant | 177:672ef279c8e0 | 1194 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1195 | break; |
Diletant | 177:672ef279c8e0 | 1196 | |
Diletant | 177:672ef279c8e0 | 1197 | case 113: |
Diletant | 177:672ef279c8e0 | 1198 | //K_WP_rst_cooling s16 slope of dependence of a reset voltage at cooling from temperature (as though Volt/degree, but in c.u. of DAC and temperature sensors) |
Diletant | 177:672ef279c8e0 | 1199 | //? |
Diletant | 177:672ef279c8e0 | 1200 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1201 | break; |
Diletant | 177:672ef279c8e0 | 1202 | |
Diletant | 177:672ef279c8e0 | 1203 | case 114: |
Diletant | 177:672ef279c8e0 | 1204 | //WP_transition_step s16 step of change of a heater voltage at resetting |
Diletant | 177:672ef279c8e0 | 1205 | //? |
Diletant | 177:672ef279c8e0 | 1206 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1207 | break; |
Diletant | 177:672ef279c8e0 | 1208 | |
Diletant | 177:672ef279c8e0 | 1209 | case 115: |
Diletant | 177:672ef279c8e0 | 1210 | //Reserved s16 not used |
Diletant | 177:672ef279c8e0 | 1211 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1212 | break; |
Diletant | 177:672ef279c8e0 | 1213 | |
Diletant | 177:672ef279c8e0 | 1214 | case 116: |
Diletant | 177:672ef279c8e0 | 1215 | //HF_scl_2 s16 HFO scale factor during PLCS reset |
Diletant | 177:672ef279c8e0 | 1216 | //? |
Diletant | 177:672ef279c8e0 | 1217 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1218 | break; |
Diletant | 177:672ef279c8e0 | 1219 | |
Diletant | 177:672ef279c8e0 | 1220 | case 117: |
Diletant | 177:672ef279c8e0 | 1221 | //TemperIntDyn[0] s16 thermal sensor value for first point of thermo error interpolation at heating |
Diletant | 177:672ef279c8e0 | 1222 | //? |
Diletant | 177:672ef279c8e0 | 1223 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1224 | break; |
Diletant | 177:672ef279c8e0 | 1225 | |
Diletant | 177:672ef279c8e0 | 1226 | case 118: |
Diletant | 177:672ef279c8e0 | 1227 | //TemperIntDyn[1] s16 thermal sensor value for interim point of thermo error interpolation at heating |
Diletant | 177:672ef279c8e0 | 1228 | //? |
Diletant | 177:672ef279c8e0 | 1229 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1230 | break; |
Diletant | 177:672ef279c8e0 | 1231 | |
Diletant | 177:672ef279c8e0 | 1232 | case 119: |
Diletant | 177:672ef279c8e0 | 1233 | //TemperIntDyn[2] s16 thermal sensor value for interim point of thermo error interpolation at heating |
Diletant | 177:672ef279c8e0 | 1234 | //? |
Diletant | 177:672ef279c8e0 | 1235 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1236 | break; |
Diletant | 177:672ef279c8e0 | 1237 | |
Diletant | 177:672ef279c8e0 | 1238 | case 120: |
Diletant | 177:672ef279c8e0 | 1239 | //TemperIntDyn[3] s16 thermal sensor value for interim point of thermo error interpolation at heating |
Diletant | 177:672ef279c8e0 | 1240 | //? |
Diletant | 177:672ef279c8e0 | 1241 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1242 | break; |
Diletant | 177:672ef279c8e0 | 1243 | |
Diletant | 177:672ef279c8e0 | 1244 | case 121: |
Diletant | 177:672ef279c8e0 | 1245 | //TemperIntDyn[4] s16 thermal sensor value for interim point of thermo error interpolation at heating |
Diletant | 177:672ef279c8e0 | 1246 | //? |
Diletant | 177:672ef279c8e0 | 1247 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1248 | break; |
Diletant | 177:672ef279c8e0 | 1249 | |
Diletant | 177:672ef279c8e0 | 1250 | case 122: |
Diletant | 177:672ef279c8e0 | 1251 | //TemperIntDyn[5] s16 thermal sensor value for interim point of thermo error interpolation at heating |
Diletant | 177:672ef279c8e0 | 1252 | //? |
Diletant | 177:672ef279c8e0 | 1253 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1254 | break; |
Diletant | 177:672ef279c8e0 | 1255 | |
Diletant | 177:672ef279c8e0 | 1256 | case 123: |
Diletant | 177:672ef279c8e0 | 1257 | //TemperIntDyn[6] s16 thermal sensor value for interim point of thermo error interpolation at heating |
Diletant | 177:672ef279c8e0 | 1258 | //? |
Diletant | 177:672ef279c8e0 | 1259 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1260 | break; |
Diletant | 177:672ef279c8e0 | 1261 | |
Diletant | 177:672ef279c8e0 | 1262 | case 124: |
Diletant | 177:672ef279c8e0 | 1263 | //TemperIntDyn[7] s16 thermal sensor value for interim point of thermo error interpolation at heating |
Diletant | 177:672ef279c8e0 | 1264 | //? |
Diletant | 177:672ef279c8e0 | 1265 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1266 | break; |
Diletant | 177:672ef279c8e0 | 1267 | |
Diletant | 177:672ef279c8e0 | 1268 | case 125: |
Diletant | 177:672ef279c8e0 | 1269 | //TemperIntDyn[8] s16 thermal sensor value for interim point of thermo error interpolation at heating |
Diletant | 177:672ef279c8e0 | 1270 | //? |
Diletant | 177:672ef279c8e0 | 1271 | device.user.response.message = 0; |
Diletant | 161:efd949e8d536 | 1272 | break; |
Diletant | 177:672ef279c8e0 | 1273 | |
Diletant | 177:672ef279c8e0 | 1274 | case 126: |
Diletant | 177:672ef279c8e0 | 1275 | //TemperIntDyn[9] s16 thermal sensor value for interim point of thermo error interpolation at heating |
Diletant | 177:672ef279c8e0 | 1276 | //? |
Diletant | 177:672ef279c8e0 | 1277 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1278 | break; |
Diletant | 177:672ef279c8e0 | 1279 | |
Diletant | 177:672ef279c8e0 | 1280 | case 127: |
Diletant | 177:672ef279c8e0 | 1281 | //TemperIntDyn[10] s16 thermal sensor value for interim point of thermo error interpolation at heating |
Diletant | 177:672ef279c8e0 | 1282 | //? |
Diletant | 177:672ef279c8e0 | 1283 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1284 | break; |
Diletant | 177:672ef279c8e0 | 1285 | |
Diletant | 177:672ef279c8e0 | 1286 | case 128: |
Diletant | 177:672ef279c8e0 | 1287 | //TemperIntDyn[11] s16 thermal sensor value for interim point of thermo error interpolation at heating |
Diletant | 177:672ef279c8e0 | 1288 | //? |
Diletant | 177:672ef279c8e0 | 1289 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1290 | break; |
Diletant | 177:672ef279c8e0 | 1291 | |
Diletant | 177:672ef279c8e0 | 1292 | case 129: |
Diletant | 177:672ef279c8e0 | 1293 | //TemperIntDyn[12] s16 thermal sensor value for interim point of thermo error interpolation at heating |
Diletant | 177:672ef279c8e0 | 1294 | //? |
Diletant | 177:672ef279c8e0 | 1295 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1296 | break; |
Diletant | 177:672ef279c8e0 | 1297 | |
Diletant | 177:672ef279c8e0 | 1298 | case 130: |
Diletant | 177:672ef279c8e0 | 1299 | //TemperIntDyn[13] s16 thermal sensor value for last point of thermo error interpolation at heating |
Diletant | 177:672ef279c8e0 | 1300 | //? |
Diletant | 177:672ef279c8e0 | 1301 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1302 | break; |
Diletant | 177:672ef279c8e0 | 1303 | |
Diletant | 177:672ef279c8e0 | 1304 | case 131: |
Diletant | 177:672ef279c8e0 | 1305 | //ThermoHeatDelta[0] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) |
Diletant | 177:672ef279c8e0 | 1306 | //? |
Diletant | 177:672ef279c8e0 | 1307 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1308 | break; |
Diletant | 177:672ef279c8e0 | 1309 | |
Diletant | 177:672ef279c8e0 | 1310 | case 132: |
Diletant | 177:672ef279c8e0 | 1311 | //ThermoHeatDelta[0] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) |
Diletant | 177:672ef279c8e0 | 1312 | //? |
Diletant | 177:672ef279c8e0 | 1313 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1314 | break; |
Diletant | 177:672ef279c8e0 | 1315 | |
Diletant | 177:672ef279c8e0 | 1316 | case 133: |
Diletant | 177:672ef279c8e0 | 1317 | //ThermoHeatDelta[1] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) |
Diletant | 177:672ef279c8e0 | 1318 | //? |
Diletant | 177:672ef279c8e0 | 1319 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1320 | break; |
Diletant | 177:672ef279c8e0 | 1321 | |
Diletant | 177:672ef279c8e0 | 1322 | case 134: |
Diletant | 177:672ef279c8e0 | 1323 | //ThermoHeatDelta[1] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) |
Diletant | 177:672ef279c8e0 | 1324 | //? |
Diletant | 177:672ef279c8e0 | 1325 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1326 | break; |
Diletant | 177:672ef279c8e0 | 1327 | |
Diletant | 177:672ef279c8e0 | 1328 | case 135: |
Diletant | 177:672ef279c8e0 | 1329 | //ThermoHeatDelta[2] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) |
Diletant | 177:672ef279c8e0 | 1330 | //? |
Diletant | 177:672ef279c8e0 | 1331 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1332 | break; |
Diletant | 177:672ef279c8e0 | 1333 | |
Diletant | 177:672ef279c8e0 | 1334 | case 136: |
Diletant | 177:672ef279c8e0 | 1335 | //ThermoHeatDelta[2] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) |
Diletant | 177:672ef279c8e0 | 1336 | //? |
Diletant | 177:672ef279c8e0 | 1337 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1338 | break; |
Diletant | 177:672ef279c8e0 | 1339 | |
Diletant | 177:672ef279c8e0 | 1340 | case 137: |
Diletant | 177:672ef279c8e0 | 1341 | //ThermoHeatDelta[3] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) |
Diletant | 177:672ef279c8e0 | 1342 | //? |
Diletant | 177:672ef279c8e0 | 1343 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1344 | break; |
Diletant | 177:672ef279c8e0 | 1345 | |
Diletant | 177:672ef279c8e0 | 1346 | case 138: |
Diletant | 177:672ef279c8e0 | 1347 | //ThermoHeatDelta[3] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) |
Diletant | 177:672ef279c8e0 | 1348 | //? |
Diletant | 177:672ef279c8e0 | 1349 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1350 | break; |
Diletant | 177:672ef279c8e0 | 1351 | |
Diletant | 177:672ef279c8e0 | 1352 | case 139: |
Diletant | 177:672ef279c8e0 | 1353 | //ThermoHeatDelta[4] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) |
Diletant | 177:672ef279c8e0 | 1354 | //? |
Diletant | 177:672ef279c8e0 | 1355 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1356 | break; |
Diletant | 177:672ef279c8e0 | 1357 | |
Diletant | 177:672ef279c8e0 | 1358 | case 140: |
Diletant | 177:672ef279c8e0 | 1359 | //ThermoHeatDelta[4] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) |
Diletant | 177:672ef279c8e0 | 1360 | //? |
Diletant | 177:672ef279c8e0 | 1361 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1362 | break; |
Diletant | 177:672ef279c8e0 | 1363 | |
Diletant | 177:672ef279c8e0 | 1364 | case 141: |
Diletant | 177:672ef279c8e0 | 1365 | //ThermoHeatDelta[5] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) |
Diletant | 177:672ef279c8e0 | 1366 | //? |
Diletant | 177:672ef279c8e0 | 1367 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1368 | break; |
Diletant | 177:672ef279c8e0 | 1369 | |
Diletant | 177:672ef279c8e0 | 1370 | case 142: |
Diletant | 177:672ef279c8e0 | 1371 | //ThermoHeatDelta[5] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) |
Diletant | 177:672ef279c8e0 | 1372 | //? |
Diletant | 177:672ef279c8e0 | 1373 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1374 | break; |
Diletant | 177:672ef279c8e0 | 1375 | |
Diletant | 177:672ef279c8e0 | 1376 | case 143: |
Diletant | 177:672ef279c8e0 | 1377 | //ThermoHeatDelta[6] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) |
Diletant | 177:672ef279c8e0 | 1378 | //? |
Diletant | 177:672ef279c8e0 | 1379 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1380 | break; |
Diletant | 177:672ef279c8e0 | 1381 | |
Diletant | 177:672ef279c8e0 | 1382 | case 144: |
Diletant | 177:672ef279c8e0 | 1383 | //ThermoHeatDelta[6] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) |
Diletant | 177:672ef279c8e0 | 1384 | //? |
Diletant | 177:672ef279c8e0 | 1385 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1386 | break; |
Diletant | 177:672ef279c8e0 | 1387 | |
Diletant | 177:672ef279c8e0 | 1388 | case 145: |
Diletant | 177:672ef279c8e0 | 1389 | //ThermoHeatDelta[7] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) |
Diletant | 177:672ef279c8e0 | 1390 | //? |
Diletant | 177:672ef279c8e0 | 1391 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1392 | break; |
Diletant | 177:672ef279c8e0 | 1393 | |
Diletant | 177:672ef279c8e0 | 1394 | case 146: |
Diletant | 177:672ef279c8e0 | 1395 | //ThermoHeatDelta[7] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) |
Diletant | 177:672ef279c8e0 | 1396 | //? |
Diletant | 177:672ef279c8e0 | 1397 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1398 | break; |
Diletant | 177:672ef279c8e0 | 1399 | |
Diletant | 177:672ef279c8e0 | 1400 | case 147: |
Diletant | 177:672ef279c8e0 | 1401 | //ThermoHeatDelta[8] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) |
Diletant | 177:672ef279c8e0 | 1402 | //? |
Diletant | 177:672ef279c8e0 | 1403 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1404 | break; |
Diletant | 177:672ef279c8e0 | 1405 | |
Diletant | 177:672ef279c8e0 | 1406 | case 148: |
Diletant | 177:672ef279c8e0 | 1407 | //ThermoHeatDelta[8] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) |
Diletant | 177:672ef279c8e0 | 1408 | //? |
Diletant | 177:672ef279c8e0 | 1409 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1410 | break; |
Diletant | 177:672ef279c8e0 | 1411 | |
Diletant | 177:672ef279c8e0 | 1412 | case 149: |
Diletant | 177:672ef279c8e0 | 1413 | //ThermoHeatDelta[9] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) |
Diletant | 177:672ef279c8e0 | 1414 | //? |
Diletant | 177:672ef279c8e0 | 1415 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1416 | break; |
Diletant | 177:672ef279c8e0 | 1417 | |
Diletant | 177:672ef279c8e0 | 1418 | case 150: |
Diletant | 177:672ef279c8e0 | 1419 | //ThermoHeatDelta[9] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) |
Diletant | 177:672ef279c8e0 | 1420 | //? |
Diletant | 177:672ef279c8e0 | 1421 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1422 | break; |
Diletant | 177:672ef279c8e0 | 1423 | |
Diletant | 177:672ef279c8e0 | 1424 | case 151: |
Diletant | 177:672ef279c8e0 | 1425 | //ThermoHeatDelta[10] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) |
Diletant | 177:672ef279c8e0 | 1426 | //? |
Diletant | 177:672ef279c8e0 | 1427 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1428 | break; |
Diletant | 177:672ef279c8e0 | 1429 | |
Diletant | 177:672ef279c8e0 | 1430 | case 152: |
Diletant | 177:672ef279c8e0 | 1431 | //ThermoHeatDelta[10] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) |
Diletant | 177:672ef279c8e0 | 1432 | //? |
Diletant | 177:672ef279c8e0 | 1433 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1434 | break; |
Diletant | 177:672ef279c8e0 | 1435 | |
Diletant | 177:672ef279c8e0 | 1436 | case 153: |
Diletant | 177:672ef279c8e0 | 1437 | //ThermoHeatDelta[11] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) |
Diletant | 177:672ef279c8e0 | 1438 | //? |
Diletant | 177:672ef279c8e0 | 1439 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1440 | break; |
Diletant | 177:672ef279c8e0 | 1441 | |
Diletant | 177:672ef279c8e0 | 1442 | case 154: |
Diletant | 177:672ef279c8e0 | 1443 | //ThermoHeatDelta[11] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) |
Diletant | 177:672ef279c8e0 | 1444 | //? |
Diletant | 177:672ef279c8e0 | 1445 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1446 | break; |
Diletant | 177:672ef279c8e0 | 1447 | |
Diletant | 177:672ef279c8e0 | 1448 | case 155: |
Diletant | 177:672ef279c8e0 | 1449 | //ThermoHeatDelta[12] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) |
Diletant | 177:672ef279c8e0 | 1450 | //? |
Diletant | 177:672ef279c8e0 | 1451 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1452 | break; |
Diletant | 177:672ef279c8e0 | 1453 | |
Diletant | 177:672ef279c8e0 | 1454 | case 156: |
Diletant | 177:672ef279c8e0 | 1455 | //ThermoHeatDelta[12] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) |
Diletant | 177:672ef279c8e0 | 1456 | //? |
Diletant | 177:672ef279c8e0 | 1457 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1458 | break; |
Diletant | 177:672ef279c8e0 | 1459 | |
Diletant | 177:672ef279c8e0 | 1460 | case 157: |
Diletant | 177:672ef279c8e0 | 1461 | //ThermoHeatDelta[13] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) |
Diletant | 177:672ef279c8e0 | 1462 | //? |
Diletant | 177:672ef279c8e0 | 1463 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1464 | break; |
Diletant | 177:672ef279c8e0 | 1465 | |
Diletant | 177:672ef279c8e0 | 1466 | case 158: |
Diletant | 177:672ef279c8e0 | 1467 | //ThermoHeatDelta[13] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) |
Diletant | 177:672ef279c8e0 | 1468 | //? |
Diletant | 177:672ef279c8e0 | 1469 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1470 | break; |
Diletant | 177:672ef279c8e0 | 1471 | |
Diletant | 177:672ef279c8e0 | 1472 | case 159: |
Diletant | 177:672ef279c8e0 | 1473 | //DeltaTempRecalc s16 |
Diletant | 177:672ef279c8e0 | 1474 | //? |
Diletant | 177:672ef279c8e0 | 1475 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1476 | break; |
Diletant | 177:672ef279c8e0 | 1477 | |
Diletant | 177:672ef279c8e0 | 1478 | case 160: |
Diletant | 177:672ef279c8e0 | 1479 | //TemperCoolIntDyn[0] s16 thermal sensor value for first point of thermo error interpolation at cooling |
Diletant | 177:672ef279c8e0 | 1480 | //? |
Diletant | 177:672ef279c8e0 | 1481 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1482 | break; |
Diletant | 177:672ef279c8e0 | 1483 | |
Diletant | 177:672ef279c8e0 | 1484 | case 161: |
Diletant | 177:672ef279c8e0 | 1485 | //TemperCoolIntDyn[1] s16 thermal sensor value for interim point of thermo error interpolation at cooling |
Diletant | 177:672ef279c8e0 | 1486 | //? |
Diletant | 177:672ef279c8e0 | 1487 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1488 | break; |
Diletant | 177:672ef279c8e0 | 1489 | |
Diletant | 177:672ef279c8e0 | 1490 | case 162: |
Diletant | 177:672ef279c8e0 | 1491 | //TemperCoolIntDyn[2] s16 thermal sensor value for interim point of thermo error interpolation at cooling |
Diletant | 177:672ef279c8e0 | 1492 | //? |
Diletant | 177:672ef279c8e0 | 1493 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1494 | break; |
Diletant | 177:672ef279c8e0 | 1495 | |
Diletant | 177:672ef279c8e0 | 1496 | case 163: |
Diletant | 177:672ef279c8e0 | 1497 | //TemperCoolIntDyn[3] s16 thermal sensor value for interim point of thermo error interpolation at cooling |
Diletant | 177:672ef279c8e0 | 1498 | //? |
Diletant | 177:672ef279c8e0 | 1499 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1500 | break; |
Diletant | 177:672ef279c8e0 | 1501 | |
Diletant | 177:672ef279c8e0 | 1502 | case 164: |
Diletant | 177:672ef279c8e0 | 1503 | //TemperCoolIntDyn[4] s16 thermal sensor value for interim point of thermo error interpolation at cooling |
Diletant | 177:672ef279c8e0 | 1504 | //? |
Diletant | 177:672ef279c8e0 | 1505 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1506 | break; |
Diletant | 177:672ef279c8e0 | 1507 | |
Diletant | 177:672ef279c8e0 | 1508 | case 165: |
Diletant | 177:672ef279c8e0 | 1509 | //TemperCoolIntDyn[5] s16 thermal sensor value for interim point of thermo error interpolation at cooling |
Diletant | 177:672ef279c8e0 | 1510 | //? |
Diletant | 177:672ef279c8e0 | 1511 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1512 | break; |
Diletant | 177:672ef279c8e0 | 1513 | |
Diletant | 177:672ef279c8e0 | 1514 | case 166: |
Diletant | 177:672ef279c8e0 | 1515 | //TemperCoolIntDyn[6] s16 thermal sensor value for interim point of thermo error interpolation at cooling |
Diletant | 177:672ef279c8e0 | 1516 | //? |
Diletant | 177:672ef279c8e0 | 1517 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1518 | break; |
Diletant | 177:672ef279c8e0 | 1519 | |
Diletant | 177:672ef279c8e0 | 1520 | case 167: |
Diletant | 177:672ef279c8e0 | 1521 | //TemperCoolIntDyn[7] s16 thermal sensor value for interim point of thermo error interpolation at cooling |
Diletant | 177:672ef279c8e0 | 1522 | //? |
Diletant | 177:672ef279c8e0 | 1523 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1524 | break; |
Diletant | 177:672ef279c8e0 | 1525 | |
Diletant | 177:672ef279c8e0 | 1526 | case 168: |
Diletant | 177:672ef279c8e0 | 1527 | //TemperCoolIntDyn[8] s16 thermal sensor value for interim point of thermo error interpolation at cooling |
Diletant | 177:672ef279c8e0 | 1528 | //? |
Diletant | 177:672ef279c8e0 | 1529 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1530 | break; |
Diletant | 177:672ef279c8e0 | 1531 | |
Diletant | 177:672ef279c8e0 | 1532 | case 169: |
Diletant | 177:672ef279c8e0 | 1533 | //TemperCoolIntDyn[9] s16 thermal sensor value for interim point of thermo error interpolation at cooling |
Diletant | 177:672ef279c8e0 | 1534 | //? |
Diletant | 177:672ef279c8e0 | 1535 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1536 | break; |
Diletant | 177:672ef279c8e0 | 1537 | |
Diletant | 177:672ef279c8e0 | 1538 | case 170: |
Diletant | 177:672ef279c8e0 | 1539 | //TemperCoolIntDyn[10] s16 thermal sensor value for interim point of thermo error interpolation at cooling |
Diletant | 177:672ef279c8e0 | 1540 | //? |
Diletant | 177:672ef279c8e0 | 1541 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1542 | break; |
Diletant | 177:672ef279c8e0 | 1543 | |
Diletant | 177:672ef279c8e0 | 1544 | case 171: |
Diletant | 177:672ef279c8e0 | 1545 | //TemperCoolIntDyn[11] s16 thermal sensor value for interim point of thermo error interpolation at cooling |
Diletant | 177:672ef279c8e0 | 1546 | //? |
Diletant | 177:672ef279c8e0 | 1547 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1548 | break; |
Diletant | 177:672ef279c8e0 | 1549 | |
Diletant | 177:672ef279c8e0 | 1550 | case 172: |
Diletant | 177:672ef279c8e0 | 1551 | //TemperCoolIntDyn[12] s16 thermal sensor value for interim point of thermo error interpolation at cooling |
Diletant | 177:672ef279c8e0 | 1552 | //? |
Diletant | 177:672ef279c8e0 | 1553 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1554 | break; |
Diletant | 177:672ef279c8e0 | 1555 | |
Diletant | 177:672ef279c8e0 | 1556 | case 173: |
Diletant | 177:672ef279c8e0 | 1557 | //TemperCoolIntDyn[13] s16 thermal sensor value for last point of thermo error interpolation at cooling |
Diletant | 177:672ef279c8e0 | 1558 | //? |
Diletant | 177:672ef279c8e0 | 1559 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1560 | break; |
Diletant | 177:672ef279c8e0 | 1561 | |
Diletant | 177:672ef279c8e0 | 1562 | case 174: |
Diletant | 177:672ef279c8e0 | 1563 | //ThermoCoolDelta[0] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) |
Diletant | 177:672ef279c8e0 | 1564 | //? |
Diletant | 177:672ef279c8e0 | 1565 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1566 | break; |
Diletant | 177:672ef279c8e0 | 1567 | |
Diletant | 177:672ef279c8e0 | 1568 | case 175: |
Diletant | 177:672ef279c8e0 | 1569 | //ThermoCoolDelta[0] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) |
Diletant | 177:672ef279c8e0 | 1570 | //? |
Diletant | 177:672ef279c8e0 | 1571 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1572 | break; |
Diletant | 177:672ef279c8e0 | 1573 | |
Diletant | 177:672ef279c8e0 | 1574 | case 176: |
Diletant | 177:672ef279c8e0 | 1575 | //ThermoCoolDelta[1] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) |
Diletant | 177:672ef279c8e0 | 1576 | //? |
Diletant | 177:672ef279c8e0 | 1577 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1578 | break; |
Diletant | 177:672ef279c8e0 | 1579 | |
Diletant | 177:672ef279c8e0 | 1580 | case 177: |
Diletant | 177:672ef279c8e0 | 1581 | //ThermoCoolDelta[1] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) |
Diletant | 177:672ef279c8e0 | 1582 | //? |
Diletant | 177:672ef279c8e0 | 1583 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1584 | break; |
Diletant | 177:672ef279c8e0 | 1585 | |
Diletant | 177:672ef279c8e0 | 1586 | case 178: |
Diletant | 177:672ef279c8e0 | 1587 | //ThermoCoolDelta[2] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) |
Diletant | 177:672ef279c8e0 | 1588 | //? |
Diletant | 177:672ef279c8e0 | 1589 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1590 | break; |
Diletant | 177:672ef279c8e0 | 1591 | |
Diletant | 177:672ef279c8e0 | 1592 | case 179: |
Diletant | 177:672ef279c8e0 | 1593 | //ThermoCoolDelta[2] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) |
Diletant | 177:672ef279c8e0 | 1594 | //? |
Diletant | 177:672ef279c8e0 | 1595 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1596 | break; |
Diletant | 177:672ef279c8e0 | 1597 | |
Diletant | 177:672ef279c8e0 | 1598 | case 180: |
Diletant | 177:672ef279c8e0 | 1599 | //ThermoCoolDelta[3] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) |
Diletant | 177:672ef279c8e0 | 1600 | //? |
Diletant | 177:672ef279c8e0 | 1601 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1602 | break; |
Diletant | 177:672ef279c8e0 | 1603 | |
Diletant | 177:672ef279c8e0 | 1604 | case 181: |
Diletant | 177:672ef279c8e0 | 1605 | //ThermoCoolDelta[3] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) |
Diletant | 177:672ef279c8e0 | 1606 | //? |
Diletant | 177:672ef279c8e0 | 1607 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1608 | break; |
Diletant | 177:672ef279c8e0 | 1609 | |
Diletant | 177:672ef279c8e0 | 1610 | case 182: |
Diletant | 177:672ef279c8e0 | 1611 | //ThermoCoolDelta[4] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) |
Diletant | 177:672ef279c8e0 | 1612 | //? |
Diletant | 177:672ef279c8e0 | 1613 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1614 | break; |
Diletant | 177:672ef279c8e0 | 1615 | |
Diletant | 177:672ef279c8e0 | 1616 | case 183: |
Diletant | 177:672ef279c8e0 | 1617 | //ThermoCoolDelta[4] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) |
Diletant | 177:672ef279c8e0 | 1618 | //? |
Diletant | 177:672ef279c8e0 | 1619 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1620 | break; |
Diletant | 177:672ef279c8e0 | 1621 | |
Diletant | 177:672ef279c8e0 | 1622 | case 184: |
Diletant | 177:672ef279c8e0 | 1623 | //ThermoCoolDelta[5] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) |
Diletant | 177:672ef279c8e0 | 1624 | //? |
Diletant | 177:672ef279c8e0 | 1625 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1626 | break; |
Diletant | 177:672ef279c8e0 | 1627 | |
Diletant | 177:672ef279c8e0 | 1628 | case 185: |
Diletant | 177:672ef279c8e0 | 1629 | //ThermoCoolDelta[5] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) |
Diletant | 177:672ef279c8e0 | 1630 | //? |
Diletant | 177:672ef279c8e0 | 1631 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1632 | break; |
Diletant | 177:672ef279c8e0 | 1633 | |
Diletant | 177:672ef279c8e0 | 1634 | case 186: |
Diletant | 177:672ef279c8e0 | 1635 | //ThermoCoolDelta[6] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) |
Diletant | 177:672ef279c8e0 | 1636 | //? |
Diletant | 177:672ef279c8e0 | 1637 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1638 | break; |
Diletant | 177:672ef279c8e0 | 1639 | |
Diletant | 177:672ef279c8e0 | 1640 | case 187: |
Diletant | 177:672ef279c8e0 | 1641 | //ThermoCoolDelta[6] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) |
Diletant | 177:672ef279c8e0 | 1642 | //? |
Diletant | 177:672ef279c8e0 | 1643 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1644 | break; |
Diletant | 177:672ef279c8e0 | 1645 | |
Diletant | 177:672ef279c8e0 | 1646 | case 188: |
Diletant | 177:672ef279c8e0 | 1647 | //ThermoCoolDelta[7] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) |
Diletant | 177:672ef279c8e0 | 1648 | //? |
Diletant | 177:672ef279c8e0 | 1649 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1650 | break; |
Diletant | 177:672ef279c8e0 | 1651 | |
Diletant | 177:672ef279c8e0 | 1652 | case 189: |
Diletant | 177:672ef279c8e0 | 1653 | //ThermoCoolDelta[7] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) |
Diletant | 177:672ef279c8e0 | 1654 | //? |
Diletant | 177:672ef279c8e0 | 1655 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1656 | break; |
Diletant | 177:672ef279c8e0 | 1657 | |
Diletant | 177:672ef279c8e0 | 1658 | case 190: |
Diletant | 177:672ef279c8e0 | 1659 | //ThermoCoolDelta[8] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) |
Diletant | 177:672ef279c8e0 | 1660 | //? |
Diletant | 177:672ef279c8e0 | 1661 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1662 | break; |
Diletant | 177:672ef279c8e0 | 1663 | |
Diletant | 177:672ef279c8e0 | 1664 | case 191: |
Diletant | 177:672ef279c8e0 | 1665 | //ThermoCoolDelta[8] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) |
Diletant | 177:672ef279c8e0 | 1666 | //? |
Diletant | 177:672ef279c8e0 | 1667 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1668 | break; |
Diletant | 177:672ef279c8e0 | 1669 | |
Diletant | 177:672ef279c8e0 | 1670 | case 192: |
Diletant | 177:672ef279c8e0 | 1671 | //ThermoCoolDelta[9] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) |
Diletant | 177:672ef279c8e0 | 1672 | //? |
Diletant | 177:672ef279c8e0 | 1673 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1674 | break; |
Diletant | 177:672ef279c8e0 | 1675 | |
Diletant | 177:672ef279c8e0 | 1676 | case 193: |
Diletant | 177:672ef279c8e0 | 1677 | //ThermoCoolDelta[9] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) |
Diletant | 177:672ef279c8e0 | 1678 | //? |
Diletant | 177:672ef279c8e0 | 1679 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1680 | break; |
Diletant | 177:672ef279c8e0 | 1681 | |
Diletant | 177:672ef279c8e0 | 1682 | case 194: |
Diletant | 177:672ef279c8e0 | 1683 | //ThermoCoolDelta[10] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) |
Diletant | 177:672ef279c8e0 | 1684 | //? |
Diletant | 177:672ef279c8e0 | 1685 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1686 | break; |
Diletant | 177:672ef279c8e0 | 1687 | |
Diletant | 177:672ef279c8e0 | 1688 | case 195: |
Diletant | 177:672ef279c8e0 | 1689 | //ThermoCoolDelta[10] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) |
Diletant | 177:672ef279c8e0 | 1690 | //? |
Diletant | 177:672ef279c8e0 | 1691 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1692 | break; |
Diletant | 177:672ef279c8e0 | 1693 | |
Diletant | 177:672ef279c8e0 | 1694 | case 196: |
Diletant | 177:672ef279c8e0 | 1695 | //ThermoCoolDelta[11] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) |
Diletant | 177:672ef279c8e0 | 1696 | //? |
Diletant | 177:672ef279c8e0 | 1697 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1698 | break; |
Diletant | 177:672ef279c8e0 | 1699 | |
Diletant | 177:672ef279c8e0 | 1700 | case 197: |
Diletant | 177:672ef279c8e0 | 1701 | //ThermoCoolDelta[11] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) |
Diletant | 177:672ef279c8e0 | 1702 | //? |
Diletant | 177:672ef279c8e0 | 1703 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1704 | break; |
Diletant | 177:672ef279c8e0 | 1705 | |
Diletant | 177:672ef279c8e0 | 1706 | case 198: |
Diletant | 177:672ef279c8e0 | 1707 | //ThermoCoolDelta[12] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) |
Diletant | 177:672ef279c8e0 | 1708 | //? |
Diletant | 177:672ef279c8e0 | 1709 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1710 | break; |
Diletant | 177:672ef279c8e0 | 1711 | |
Diletant | 177:672ef279c8e0 | 1712 | case 199: |
Diletant | 177:672ef279c8e0 | 1713 | //ThermoCoolDelta[12] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) |
Diletant | 177:672ef279c8e0 | 1714 | //? |
Diletant | 177:672ef279c8e0 | 1715 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1716 | break; |
Diletant | 177:672ef279c8e0 | 1717 | |
Diletant | 177:672ef279c8e0 | 1718 | case 200: |
Diletant | 177:672ef279c8e0 | 1719 | //ThermoCoolDelta[13] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) |
Diletant | 177:672ef279c8e0 | 1720 | //? |
Diletant | 177:672ef279c8e0 | 1721 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1722 | break; |
Diletant | 177:672ef279c8e0 | 1723 | |
Diletant | 177:672ef279c8e0 | 1724 | case 201: |
Diletant | 177:672ef279c8e0 | 1725 | //ThermoCoolDelta[13] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) |
Diletant | 177:672ef279c8e0 | 1726 | //? |
Diletant | 177:672ef279c8e0 | 1727 | device.user.response.message = 0; |
Diletant | 177:672ef279c8e0 | 1728 | break; |
Diletant | 177:672ef279c8e0 | 1729 | /* |
Diletant | 161:efd949e8d536 | 1730 | case 27: |
Diletant | 161:efd949e8d536 | 1731 | case 28: |
Diletant | 161:efd949e8d536 | 1732 | case 29: |
Diletant | 161:efd949e8d536 | 1733 | case 30: |
Diletant | 161:efd949e8d536 | 1734 | case 31: |
Diletant | 161:efd949e8d536 | 1735 | case 32: |
Diletant | 161:efd949e8d536 | 1736 | case 33: |
Diletant | 161:efd949e8d536 | 1737 | case 34: |
Diletant | 161:efd949e8d536 | 1738 | case 35: |
Diletant | 161:efd949e8d536 | 1739 | case 36: |
Diletant | 161:efd949e8d536 | 1740 | case 37: |
Diletant | 161:efd949e8d536 | 1741 | case 38: |
Diletant | 161:efd949e8d536 | 1742 | case 39: |
Diletant | 161:efd949e8d536 | 1743 | case 40: |
Diletant | 161:efd949e8d536 | 1744 | case 41: |
Diletant | 161:efd949e8d536 | 1745 | case 42: |
Diletant | 161:efd949e8d536 | 1746 | case 43: |
Diletant | 161:efd949e8d536 | 1747 | break; |
Diletant | 161:efd949e8d536 | 1748 | |
Diletant | 161:efd949e8d536 | 1749 | case 61: |
Diletant | 161:efd949e8d536 | 1750 | param16 = device.sensor.settings.id; |
Diletant | 161:efd949e8d536 | 1751 | break; |
Diletant | 161:efd949e8d536 | 1752 | |
Diletant | 161:efd949e8d536 | 1753 | case 64: |
Diletant | 161:efd949e8d536 | 1754 | case 65: |
Diletant | 161:efd949e8d536 | 1755 | case 66: |
Diletant | 161:efd949e8d536 | 1756 | case 67: |
Diletant | 161:efd949e8d536 | 1757 | case 68: |
Diletant | 161:efd949e8d536 | 1758 | case 69: |
Diletant | 161:efd949e8d536 | 1759 | case 70: |
Diletant | 161:efd949e8d536 | 1760 | case 71: |
Diletant | 161:efd949e8d536 | 1761 | case 72: |
Diletant | 161:efd949e8d536 | 1762 | case 73: |
Diletant | 161:efd949e8d536 | 1763 | case 74: |
Diletant | 161:efd949e8d536 | 1764 | case 75: |
Diletant | 161:efd949e8d536 | 1765 | case 76: |
Diletant | 161:efd949e8d536 | 1766 | case 77: |
Diletant | 161:efd949e8d536 | 1767 | case 78: |
Diletant | 161:efd949e8d536 | 1768 | case 79: |
Diletant | 161:efd949e8d536 | 1769 | case 81: |
Diletant | 161:efd949e8d536 | 1770 | case 82: |
Diletant | 161:efd949e8d536 | 1771 | case 84: |
Diletant | 161:efd949e8d536 | 1772 | case 85: |
Diletant | 161:efd949e8d536 | 1773 | case 87: |
Diletant | 161:efd949e8d536 | 1774 | case 88: |
Diletant | 161:efd949e8d536 | 1775 | case 90: |
Diletant | 161:efd949e8d536 | 1776 | case 91: |
Diletant | 161:efd949e8d536 | 1777 | case 93: |
Diletant | 161:efd949e8d536 | 1778 | case 94: |
Diletant | 161:efd949e8d536 | 1779 | case 96: |
Diletant | 161:efd949e8d536 | 1780 | case 97: |
Diletant | 161:efd949e8d536 | 1781 | case 99: |
Diletant | 161:efd949e8d536 | 1782 | case 100: |
Diletant | 161:efd949e8d536 | 1783 | case 102: |
Diletant | 161:efd949e8d536 | 1784 | case 103: |
Diletant | 161:efd949e8d536 | 1785 | case 105: |
Diletant | 161:efd949e8d536 | 1786 | case 106: |
Diletant | 161:efd949e8d536 | 1787 | case 108: |
Diletant | 161:efd949e8d536 | 1788 | case 109: |
Diletant | 161:efd949e8d536 | 1789 | case 111: |
Diletant | 161:efd949e8d536 | 1790 | case 112: |
Diletant | 161:efd949e8d536 | 1791 | case 114: |
Diletant | 161:efd949e8d536 | 1792 | case 115: |
Diletant | 161:efd949e8d536 | 1793 | case 117: |
Diletant | 161:efd949e8d536 | 1794 | case 118: |
Diletant | 161:efd949e8d536 | 1795 | case 121: |
Diletant | 161:efd949e8d536 | 1796 | case 122: |
Diletant | 161:efd949e8d536 | 1797 | case 124: |
Diletant | 161:efd949e8d536 | 1798 | case 125: |
Diletant | 177:672ef279c8e0 | 1799 | //reserved |
Diletant | 161:efd949e8d536 | 1800 | break; |
Diletant | 177:672ef279c8e0 | 1801 | */ |
Diletant | 161:efd949e8d536 | 1802 | default: DecodeFail(); |
Diletant | 161:efd949e8d536 | 1803 | } |
Diletant | 161:efd949e8d536 | 1804 | } |
Diletant | 161:efd949e8d536 | 1805 | |
Diletant | 161:efd949e8d536 | 1806 | void DecodeMParamW(void) { |
Diletant | 161:efd949e8d536 | 1807 | uint8_t index = Decode8(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 1808 | uint8_t param = Decode16(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 1809 | DecodeCRC(); if (device.user.decoder.error) return; |
Diletant | 161:efd949e8d536 | 1810 | |
Diletant | 161:efd949e8d536 | 1811 | switch (index){ |
Diletant | 161:efd949e8d536 | 1812 | case 0: |
Diletant | 161:efd949e8d536 | 1813 | device.user.address = param; |
Diletant | 161:efd949e8d536 | 1814 | break; |
Diletant | 161:efd949e8d536 | 1815 | |
Diletant | 161:efd949e8d536 | 1816 | case 27: |
Diletant | 161:efd949e8d536 | 1817 | case 28: |
Diletant | 161:efd949e8d536 | 1818 | case 29: |
Diletant | 161:efd949e8d536 | 1819 | case 30: |
Diletant | 161:efd949e8d536 | 1820 | case 31: |
Diletant | 161:efd949e8d536 | 1821 | case 32: |
Diletant | 161:efd949e8d536 | 1822 | case 33: |
Diletant | 161:efd949e8d536 | 1823 | case 34: |
Diletant | 161:efd949e8d536 | 1824 | case 35: |
Diletant | 161:efd949e8d536 | 1825 | case 36: |
Diletant | 161:efd949e8d536 | 1826 | case 37: |
Diletant | 161:efd949e8d536 | 1827 | case 38: |
Diletant | 161:efd949e8d536 | 1828 | case 39: |
Diletant | 161:efd949e8d536 | 1829 | case 40: |
Diletant | 161:efd949e8d536 | 1830 | case 41: |
Diletant | 161:efd949e8d536 | 1831 | case 42: |
Diletant | 161:efd949e8d536 | 1832 | case 43: |
Diletant | 161:efd949e8d536 | 1833 | break; |
Diletant | 161:efd949e8d536 | 1834 | |
Diletant | 161:efd949e8d536 | 1835 | case 61: |
Diletant | 161:efd949e8d536 | 1836 | device.sensor.settings.id = param; |
Diletant | 161:efd949e8d536 | 1837 | break; |
Diletant | 161:efd949e8d536 | 1838 | |
Diletant | 161:efd949e8d536 | 1839 | case 64: |
Diletant | 161:efd949e8d536 | 1840 | case 65: |
Diletant | 161:efd949e8d536 | 1841 | case 66: |
Diletant | 161:efd949e8d536 | 1842 | case 67: |
Diletant | 161:efd949e8d536 | 1843 | case 68: |
Diletant | 161:efd949e8d536 | 1844 | case 69: |
Diletant | 161:efd949e8d536 | 1845 | case 70: |
Diletant | 161:efd949e8d536 | 1846 | case 71: |
Diletant | 161:efd949e8d536 | 1847 | case 72: |
Diletant | 161:efd949e8d536 | 1848 | case 73: |
Diletant | 161:efd949e8d536 | 1849 | case 74: |
Diletant | 161:efd949e8d536 | 1850 | case 75: |
Diletant | 161:efd949e8d536 | 1851 | case 76: |
Diletant | 161:efd949e8d536 | 1852 | case 77: |
Diletant | 161:efd949e8d536 | 1853 | case 78: |
Diletant | 161:efd949e8d536 | 1854 | case 79: |
Diletant | 161:efd949e8d536 | 1855 | case 81: |
Diletant | 161:efd949e8d536 | 1856 | case 82: |
Diletant | 161:efd949e8d536 | 1857 | case 84: |
Diletant | 161:efd949e8d536 | 1858 | case 85: |
Diletant | 161:efd949e8d536 | 1859 | case 87: |
Diletant | 161:efd949e8d536 | 1860 | case 88: |
Diletant | 161:efd949e8d536 | 1861 | case 90: |
Diletant | 161:efd949e8d536 | 1862 | case 91: |
Diletant | 161:efd949e8d536 | 1863 | case 93: |
Diletant | 161:efd949e8d536 | 1864 | case 94: |
Diletant | 161:efd949e8d536 | 1865 | case 96: |
Diletant | 161:efd949e8d536 | 1866 | case 97: |
Diletant | 161:efd949e8d536 | 1867 | case 99: |
Diletant | 161:efd949e8d536 | 1868 | case 100: |
Diletant | 161:efd949e8d536 | 1869 | case 102: |
Diletant | 161:efd949e8d536 | 1870 | case 103: |
Diletant | 161:efd949e8d536 | 1871 | case 105: |
Diletant | 161:efd949e8d536 | 1872 | case 106: |
Diletant | 161:efd949e8d536 | 1873 | case 108: |
Diletant | 161:efd949e8d536 | 1874 | case 109: |
Diletant | 161:efd949e8d536 | 1875 | case 111: |
Diletant | 161:efd949e8d536 | 1876 | case 112: |
Diletant | 161:efd949e8d536 | 1877 | case 114: |
Diletant | 161:efd949e8d536 | 1878 | case 115: |
Diletant | 161:efd949e8d536 | 1879 | case 117: |
Diletant | 161:efd949e8d536 | 1880 | case 118: |
Diletant | 161:efd949e8d536 | 1881 | case 121: |
Diletant | 161:efd949e8d536 | 1882 | case 122: |
Diletant | 161:efd949e8d536 | 1883 | case 124: |
Diletant | 161:efd949e8d536 | 1884 | case 125: |
Diletant | 161:efd949e8d536 | 1885 | /*reserved*/ |
Diletant | 161:efd949e8d536 | 1886 | break; |
Diletant | 161:efd949e8d536 | 1887 | |
Diletant | 161:efd949e8d536 | 1888 | default: DecodeFail(); |
Diletant | 161:efd949e8d536 | 1889 | } |
Diletant | 161:efd949e8d536 | 1890 | } |
Diletant | 161:efd949e8d536 | 1891 | |
Diletant | 161:efd949e8d536 | 1892 | void DecodeMRate2(void) { |
Diletant | 161:efd949e8d536 | 1893 | //TODO |
Diletant | 161:efd949e8d536 | 1894 | } |
Diletant | 161:efd949e8d536 | 1895 | |
Diletant | 161:efd949e8d536 | 1896 | void DecodeMRate3(void) { |
Diletant | 161:efd949e8d536 | 1897 | //TODO |
Diletant | 161:efd949e8d536 | 1898 | } |
Diletant | 161:efd949e8d536 | 1899 | |
Diletant | 161:efd949e8d536 | 1900 | void DecodeMe5raW(void) { |
Diletant | 161:efd949e8d536 | 1901 | //TODO |
Diletant | 161:efd949e8d536 | 1902 | } |