123
Fork of LG by
Diff: DeviceUserProtocolDecoder.c
- Revision:
- 177:672ef279c8e0
- Parent:
- 173:7f938afb0447
diff -r c718d402410d -r 672ef279c8e0 DeviceUserProtocolDecoder.c --- a/DeviceUserProtocolDecoder.c Thu Jun 30 09:04:22 2016 +0000 +++ b/DeviceUserProtocolDecoder.c Sun Jul 03 13:40:48 2016 +0000 @@ -10,6 +10,7 @@ void InitUserProtocolDecoderState(void) { device.user.decoder.error = 0; device.user.decoder.count = 0; + device.user.decoder.last = 0; device.user.decoder.canceled = 1; device.user.decoder.address = 0; device.user.decoder.version = 0; @@ -21,7 +22,7 @@ void DeviceStartUserProtocolDecoder(void) { } -void DeviceDecodeUserRequests(void) { +void userDecodeRequests(void) { do { DecodeStart(); if (device.user.decoder.error) continue; DecodeAddress(); if (device.user.decoder.error) continue; @@ -38,12 +39,14 @@ case M0_RATE: DecodeMRate(); break; case M0_STIMUL: DecodeMStymul(); break; case M0_RESET: DecodeMReset(); break; + case M0_CTL_R: DecodeMCtlR(); break; + case M0_CTL_M: DecodeMCtlM(); break; case M0_TMP_W: DecodeMTmpW(); break; case M0_TMP_R: DecodeMTmpR(); break; //case M0_E5R_W: break; //case M0_ADC_R: break; //case M0_VIB_W: break; - //case M0_CNT_R: break; + case M0_CNT_R: DecodeMCntR(); break; case M0_GPH_W: DecodeMGphW(); break; //case M0_FLG_R: break; case M0_PARAM_W: DecodeMParamW(); break; @@ -58,11 +61,15 @@ if (device.user.decoder.position != device.user.request.buffer.end) { uint8_t param = device.user.request.buffer.data[device.user.decoder.position]; - 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 + //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 device.user.decoder.position = (device.user.decoder.position + 1) % InputBufferSize; device.user.decoder.count++; device.user.decoder.CRC += param; + if (device.user.decoder.count > device.user.decoder.last) { + //sprintf(device.service.buffer, "+ %02x %04d\r\n", param, device.user.decoder.position); WriteConcole(); //Development message + device.user.decoder.last = device.user.decoder.count; + } return param; } else { DecodeCancel(); @@ -99,6 +106,7 @@ if (param != 0xcc) DecodeFail(); device.user.response.type = RESPONSE_IMMEDIATE; //Default type + device.user.response.packet = 0; } } @@ -132,6 +140,7 @@ if (device.user.request.buffer.start == device.user.request.buffer.end) device.user.request.buffer.empty = 1; device.user.decoder.count = 0; + device.user.decoder.last = 0; if (device.user.decoder.error == 0) { device.user.response.code = device.user.decoder.code; @@ -362,48 +371,48 @@ } void DecodeDeviceMode(void) { - /* - *** Description *** - Elio5_cmd_en.pdf: - Device_Mode - device operating modes: - The device operating mode is encoded by 4 low bits (0..3) of byte 4. - 0 – reserved; - 1 – internal latch mode: latch by pulses 10 kHz (power on default mode); - 2 - internal latch mode: latch by signed meander pulses; - 3 – external latch mode with B_Delta_PS format data and RS422 request by command B_Delta_PS; - 4 – external latch mode with B_Delta_PS format data and latch pulse request; - 5 – external latch mode with B_Delta_BINS format data and RS422 request by command B_Delta_BINS; - 6 – external latch mode with B_Delta_BINS format data and latch pulse request; - - *** Command action *** - commandset_asm.asm - exec_CMD: - CMD_Mode = 3; - - commandset.c - B_Dev_Mode(void): - Device_Mode = rcv_buf[3] & 0x00ff; //e. read the byte of command parameter from the receiver buffer and write it to the counter mode register //r. и записываем в регистр режима счетчиков - trm_cycl = 0; //e. periodic data transmission is not needed //r. периодическая передача ответа не требуется - - commandset_asm.asm - Mk_AskDev(): - num_of_par = 2; //e. 2 parameters output //r. выводить два параметра - addr_param[0] = &Device_Mode; //e. address of the counter mode register (intenal latch, external latch, etc.) //r. адрес регистра режима счетчиков (внутр., внешняя защелка и т.д.) - addr_param[1] = &SRgR; //e. address of the mode register of the processor card //r. адрес регистра режима платы процессора - size_param[0] = 2; //e. size of the counter mode register - 2 bytes //r. размер регистра режима счетчиков - 2 байта - size_param[1] = 2; //e. size of the mode register of the processor card //r. размер регистра режима платы процессора - trm_cycl = 0; //e. forbid cyclic transmission of the parameter //r. запретить передачу параметра в цикле - trm_ena = 1; //e. allow operation of the transmitter //r. разрешить работу передатчика - */ uint8_t mode = Decode8(); if (device.user.decoder.error) return; if ((mode > 0) && (mode < 7)){ DecodeCRC(); if (device.user.decoder.error) return; + + sprintf(device.service.buffer, "Dev_Mode %02x\r\n", mode); WriteConcole(); //Development message + switch (mode) { - case 1: device.latch.mode = DeviceLatch10kHz; break; - case 2: device.latch.mode = DeviceLatchMeander; break; - case 3: device.latch.mode = DeviceLatchRS422; device.latch.format = DeviceLatchFormatDeltaPS; break; - case 4: device.latch.mode = DeviceLatchPin; device.latch.format = DeviceLatchFormatDeltaPS; break; - case 5: device.latch.mode = DeviceLatchRS422; device.latch.format = DeviceLatchFormatDeltaBINS; break; - case 6: device.latch.mode = DeviceLatchPin; device.latch.format = DeviceLatchFormatDeltaBINS; break; + case 1: + //DM_INT_10KHZ_LATCH: latch by pulses 10 kHz (power on default mode) + device.counters.latch.state.enabled = 0;//Internal latch + //TODO: should switch meander/dither latched counters here or ignore command and continue to use use RgConB setting instead? + break; + case 2: + //DM_INT_SIGN_MEANDER_LATCH: latch by signed meander pulses + device.counters.latch.state.enabled = 0;//Internal latch + //TODO: should switch meander/dither latched counters here or ignore command and continue to use use RgConB setting instead? + break; + case 3: + //DM_EXT_LATCH_DELTA_PS_LINE: external latch mode with B_Delta_PS format data and RS422 request by command B_Delta_PS + device.counters.latch.state.enabled = 1;//External latch + device.counters.latch.state.signal = 0; //RS422 latch signal + device.counters.latch.state.format = 0; //DeltaPS output format + break; + case 4: + //DM_EXT_LATCH_DELTA_PS_PULSE: external latch mode with B_Delta_PS format data and latch pulse request + device.counters.latch.state.enabled = 1;//External latch + device.counters.latch.state.signal = 1; //Wire latch signal + device.counters.latch.state.format = 0; //DeltaPS output format + break; + case 5: + //DM_EXT_LATCH_DELTA_BINS_LINE: external latch mode with B_Delta_BINS format data and RS422 request by command B_Delta_BINS + device.counters.latch.state.enabled = 1;//External latch + device.counters.latch.state.signal = 0; //RS422 latch signal + device.counters.latch.state.format = 1; //DeltaBINS output format + break; + case 6: + //DM_EXT_LATCH_DELTA_BINS_PULSE: external latch mode with B_Delta_BINS format data and latch pulse request + device.counters.latch.state.enabled = 1;//External latch + device.counters.latch.state.signal = 1; //Wire latch signal + device.counters.latch.state.format = 1; //DeltaBINS output format + break; } - //device.host.response.type = RESPONSE_IMMEDIATE; //Default type } else { DecodeFail(); } @@ -423,6 +432,9 @@ void DecodeDelta(void) { //Same for DELTA_PS,DELTA_BINS,DELTA_SF - only code different and it processed already uint8_t mode = Decode8(); if (device.user.decoder.error) return; + + sprintf(device.service.buffer, "Delta %02x\r\n", mode); WriteConcole(); //Development message + //if ((mode && 0x0f) == 0){ //DELTA_PS,DELTA_BINS if ((mode && 0x0e) == 0){ //DELTA_PS,DELTA_BINS,DELTA_SF DecodeCRC(); if (device.user.decoder.error) return; @@ -439,18 +451,16 @@ device.user.request.rate = 38400; } if (mode & 0x01) { //DELTA_SF - device.latch.reset = 0; + device.counters.latch.state.reset = 0; } else { - device.latch.reset = 1; + device.counters.latch.state.reset = 1; } - //device.latch.mode = DeviceLatchRS422; //Have to set by Device Mode command? - if (device.user.response.code == DELTA_PS) device.latch.format = DeviceLatchFormatDeltaPS; - else if (device.user.response.code == DELTA_BINS) device.latch.format = DeviceLatchFormatDeltaBINS; - else if (device.user.response.code == DELTA_SF) device.latch.format = DeviceLatchFormatDeltaSF; - //TODO: Latch(); //Remember counters for transmission, reset counters + if (device.user.decoder.address == device.user.address) { if (mode & 0x80) { - //TODO: reset device.counters here (or already done in Latch()) + //Reset device counters here + device.counters.dither.state.angle = 0; + device.user.response.counter = 0; device.user.response.trigger = 2000; //2000 mks - 500Hz device.user.response.type = RESPONSE_PERIODIC; //Override default type @@ -467,6 +477,8 @@ if (version == 0x99) { DecodeCRC(); if (device.user.decoder.error) return; device.user.decoder.version = 0; + + sprintf(device.service.buffer, "MaintenanceMode()\r\n"); WriteConcole(); //Development message } else { DecodeFail(); } @@ -527,10 +539,40 @@ void DecodeMRate(void) { uint8_t mode = Decode8(); if (device.user.decoder.error) return; - if ((mode && 0x18) == 0){ + if ((mode & 0x1f) == 1){ DecodeCRC(); if (device.user.decoder.error) return; - device.user.response.code |= mode & 0x07; + sprintf(device.service.buffer, "MRate %02x\r\n", mode); WriteConcole(); //Development message + + device.user.response.code |= mode & 0x1f; + + switch ((mode>>5) & 0x03) { + case 0: device.user.response.rate = 38400; break; + case 1: device.user.response.rate = 115200; break; + } + + if (mode & 0x80) { + //Reset device counters here + device.counters.dither.state.angle = 0; + device.counters.meander.state.angle[0] = 0; + + device.user.response.type = RESPONSE_PERIODIC; //Override default type + device.user.response.trigger = 1000000; //1000000mks - 1Hz + device.user.response.counter = device.user.response.trigger; //Ask_Gld expect immediate answer + } + } else { + DecodeFail(); + } +} + +/* Template for MRate2,... +void DecodeMRate(void) { + uint8_t mode = Decode8(); if (device.user.decoder.error) return; + if ((mode && 0x1f) == 0){ + //MRate + DecodeCRC(); if (device.user.decoder.error) return; + + device.user.response.code |= mode & 0x1f; switch ((mode>>5) & 0x03) { case 0: device.user.response.rate = 38400; break; @@ -554,7 +596,7 @@ } else { DecodeFail(); } -} +}*/ void DecodeMStymul(void) { uint8_t param = Decode8(); if (device.user.decoder.error) return; @@ -563,6 +605,8 @@ uint8_t lo = Decode8(); if (device.user.decoder.error) return; DecodeCRC(); if (device.user.decoder.error) return; + sprintf(device.service.buffer, "MStymul %02x %02x %02x\r\n", param, hi, lo); WriteConcole(); //Development message + device.user.decoder.code |= param & 0x04; device.user.response.rate = 38400; @@ -615,23 +659,27 @@ while (1); //Wait watch dog reset } -void DecodeMControlRead(void) { +void DecodeMCtlR(void) { uint8_t param = Decode8(); if (device.user.decoder.error) return; DecodeCRC(); if (device.user.decoder.error) return; - - if (param & 60 == 0) + + sprintf(device.service.buffer, "MCtlR %02x\r\n", param); WriteConcole(); //Development message + + if (param & 0x60 == 0) device.user.response.rate = 38400; else device.user.response.rate = 115200; - + device.user.response.code |= param & 0x10; } -void DecodeMControlWrite(void) { +void DecodeMCtlM(void) { uint8_t param = Decode8(); if (device.user.decoder.error) return; DecodeCRC(); if (device.user.decoder.error) return; + + sprintf(device.service.buffer, "MCtlM %02x\r\n", param); WriteConcole(); //Development message - if (param & 60 == 0) + if (param & 0x60 == 0) device.user.response.rate = 38400; else device.user.response.rate = 115200; @@ -721,7 +769,20 @@ } void DecodeMCntR(void) { - //TODO + uint8_t param = Decode8(); if (device.user.decoder.error) return; + DecodeCRC(); if (device.user.decoder.error) return; + + sprintf(device.service.buffer, "MCntR %02x\r\n", param); WriteConcole(); //Development message + + if (param & 0x60 == 0) + device.user.response.rate = 38400; + else + device.user.response.rate = 115200; + if (param & 0x80) { + device.user.response.counter = 0; + device.user.response.trigger = 200; //200 mks - 500Hz + device.user.response.type = RESPONSE_PERIODIC; //Override default type + } } void DecodeMFlgR(void) { @@ -751,12 +812,921 @@ uint8_t index = Decode8(); if (device.user.decoder.error) return; DecodeCRC(); if (device.user.decoder.error) return; - uint16_t param16; + sprintf(device.service.buffer, "MParamR %02x\r\n", index); WriteConcole(); //Development message + switch (index){ case 0: - param16 = device.user.address; + //My_Address s16 device address + device.user.response.message = device.user.address; + break; + + case 1: + //HF_ref s16 value of the reference + //int32_t device.isacs.regulator.state.reference + device.user.response.message = 0; //TODO: Expected ADC code, currently [V] + break; + + case 2: + //HF_scl s16 HFO gain factor + //int32_t device.isacs.regulator.state.scale + device.user.response.message = (device.isacs.regulator.state.scale >> 16); //TODO: Expected integer code, currently in 16.16 + break; + + case 3: + //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 + //int32_t device.isacs.output.state.max + device.user.response.message = 0; //TODO: Expected DAC code, currently [V] 16.16 + break; + + case 4: + //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 + //int32_t device.isacs.output.state.min + device.user.response.message = 0; //TODO: Expected DAC code, currently [V] 16.16 + break; + + case 5: + //RI_ref s16 not used (DS reference) + device.user.response.message = 0; + break; + + case 6: + //RI_scl s16 not used (DS gain factor) + device.user.response.message = 0; + break; + + case 7: + //WP_ref s16 PLCS reference + //int32_t device.plcs.regulator.reference + device.user.response.message = 0; + break; + + case 8: + //WP_scl s16 PLCS gain factor (1.15) 5..20 + //int32_t device.plcs.regulator.scale + device.user.response.message = 0; + break; + + case 9: + //WP_mdy s16 PLCS reset delay in 10kHz cycles + //device.plcs.reset.state.? + device.user.response.message = 0; + break; + + case 10: + //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 + //? + device.user.response.message = 0; + break; + + case 11: + //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 + //? + device.user.response.message = 0; + break; + + case 12: + //VB_phs s16 the phase delay parameter of the dither drive PLL + //? + device.user.response.message = 0; + break; + + case 13: + //VB_scl s16 the gain factor (1.15) of the dither drive PLL + //device.dither.frequency.state.scale + device.user.response.message = 0; + break; + + case 14: + //VB_N vbd ttf:dither drive oscillation central frequency divider 7680000/F; value:dither drive central oscillation frequency + //device.dither.frequency.state.frequency + device.user.response.message = 0; + break; + + case 15: + //VB_Nmin vbd ttf:minimum dither drive oscillation frequency divider 7680000/F; value:maximum dither drive oscillation frequency + //device.dither.frequency.state.max + device.user.response.message = 0; + break; + + case 16: + //VB_Nmax vbd ttf:maximum dither drive oscillation frequency divider 7680000/F; value:minimum dither drive oscillation frequency + //device.dither.frequency.state.min + device.user.response.message = 0; + break; + + case 17: + //VB_Fdf s32 double output frequency (Hi) + //device.dither.amplitude.state.frequency + device.user.response.message = 0; + break; + + case 18: + //VB_Fdf s32 double output frequency (Lo) + //device.dither.amplitude.state.frequency + device.user.response.message = 0; + break; + + case 19: + //VB_Fsc s16 the gain factor of the frequency regulator + //device.dither.amplitude.state.frequency.scale + device.user.response.message = 0; + break; + + case 20: + //VB_Tmin tau minimum pulse width of the dither drive; value=ttf/15360000 in seconds + //device.dither.amplitude.state.min + device.user.response.message = 0; + break; + + case 21: + //VB_Tmax tau maximum pulse width of the dither drive; value=ttf/15360000 in seconds + //device.dither.amplitude.state.max + device.user.response.message = 0; + break; + + case 22: + //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 + //device.dither.pulse.state.width + device.user.response.message = 0; + break; + + case 23: + //VBN_Tzd s16 adjusted noise period + //int32_t device.dither.noise.state.period + device.user.response.message = 0; + break; + + case 24: + //VBN_Ran s16 range of the random component of noise + //int32_t device.dither.noise.state.range + device.user.response.message = 0; + break; + + case 25: + //VBN_k s16 adjusted noise constant + //int32_t device.dither.noise.state.amplitude + device.user.response.message = 0; + break; + + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 38: + case 39: + case 40: + case 41: + case 42: + //Reserved s16 not used + device.user.response.message = 0; + break; + + case 43: + //Tmp_bias0[0] s16 Tmp_bias[6]: an array of shifts of the 0..5 temperature sensors + //? + device.user.response.message = 0; + break; + + case 44: + //Tmp_bias0[1] s16 + //? + device.user.response.message = 0; + break; + + case 45: + //Tmp_bias0[2] s16 + //? + device.user.response.message = 0; + break; + + case 46: + //Tmp_bias0[3] s16 + //? + device.user.response.message = 0; + break; + + case 47: + //Tmp_bias0[4] s16 + //? + device.user.response.message = 0; + break; + + case 48: + //Tmp_bias0[5] s16 + //? + device.user.response.message = 0; + break; + + case 49: + //Tmp_scal0[0] s16 Tmp_scal[6]: an array of the scale coefficients of the 0..5 temperature sensors + //? + device.user.response.message = 0; + break; + + case 50: + //Tmp_scal0[1] s16 + //? + device.user.response.message = 0; + break; + + case 51: + //Tmp_scal0[2] s16 + //? + device.user.response.message = 0; + break; + + case 52: + //Tmp_scal0[3] s16 + //? + device.user.response.message = 0; + break; + + case 53: + //Tmp_scal0[4] s16 + //? + device.user.response.message = 0; + break; + + case 54: + //Tmp_scal0[5] s16 + //? + device.user.response.message = 0; + break; + + case 55: + //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 + //int32_t device.plcs.reset.levels.upper + device.user.response.message = 0; + break; + + case 56: + //KSin s16 Gain_Ph_A: initial gain factor of the A channel of photodetector + //uint32_t device.isacs.potentiometers.state.a + device.user.response.message = 0; + break; + + case 57: + //KCos s16 Gain_Ph_B: initial gain factor of the B channel of photodetector + //uint32_t device.isacs.potentiometers.state.b + device.user.response.message = 0; + break; + + case 58: + //Header s16 flash memory load validity control value: should be 0x55AA + device.user.response.message = 0x55AA; + break; + + case 59: + //LoadFlash_Enable s16 parameters load switch: 1 - load from the flash 0 - load default parameters (factory) + //? + device.user.response.message = 1; + break; + + case 60: + //SerialNumber u16 serial number of device + // + device.user.response.message = 0; + break; + + case 61: + //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 + device.user.response.message = 0; + break; + + case 62: + //TermoMode u16 device operation mode switch: 0-raw output, 1-thermocompensated output, 2-thermocompensation value only for debug purposes + //? + device.user.response.message = 0; + break; + + case 63: + case 64: + case 65: + case 66: + case 67: + case 68: + case 69: + case 70: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + //TemperInt[0] ... TemperInt[13] s16 reserved: should be zero! + // + device.user.response.message = 0; + break; + + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 85: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 92: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 104: + //TermoFunc[0]...TermoFunc[13] f32 reserved: should be zero! (Hi)/(Lo) + device.user.response.message = 0; + break; + + case 105: + //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 + //int32_t device.plcs.reset.levels.lower + device.user.response.message = 0; + break; + + case 106: + case 107: + //TermoHeatDelta f32 reserved: should be zero! (Lo) + device.user.response.message = 0; + break; + + case 108: + case 109: + //TermoCoolDelta f32 reserved: should be zero! (Lo) + device.user.response.message = 0; + break; + + case 110: + //K_vb_tu s16 slope of dependence of the VB_N division factor from temperature (as though Hz/degree, but in c.u.) + //? + device.user.response.message = 0; + break; + + case 111: + //TemperNormal s16 temperature for which the VB_N division factor of the dither drive is set + //? + device.user.response.message = 0; + break; + + case 112: + //K_WP_rst_heating s16 + //? + device.user.response.message = 0; + break; + + case 113: + //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) + //? + device.user.response.message = 0; + break; + + case 114: + //WP_transition_step s16 step of change of a heater voltage at resetting + //? + device.user.response.message = 0; + break; + + case 115: + //Reserved s16 not used + device.user.response.message = 0; + break; + + case 116: + //HF_scl_2 s16 HFO scale factor during PLCS reset + //? + device.user.response.message = 0; + break; + + case 117: + //TemperIntDyn[0] s16 thermal sensor value for first point of thermo error interpolation at heating + //? + device.user.response.message = 0; + break; + + case 118: + //TemperIntDyn[1] s16 thermal sensor value for interim point of thermo error interpolation at heating + //? + device.user.response.message = 0; + break; + + case 119: + //TemperIntDyn[2] s16 thermal sensor value for interim point of thermo error interpolation at heating + //? + device.user.response.message = 0; + break; + + case 120: + //TemperIntDyn[3] s16 thermal sensor value for interim point of thermo error interpolation at heating + //? + device.user.response.message = 0; + break; + + case 121: + //TemperIntDyn[4] s16 thermal sensor value for interim point of thermo error interpolation at heating + //? + device.user.response.message = 0; + break; + + case 122: + //TemperIntDyn[5] s16 thermal sensor value for interim point of thermo error interpolation at heating + //? + device.user.response.message = 0; + break; + + case 123: + //TemperIntDyn[6] s16 thermal sensor value for interim point of thermo error interpolation at heating + //? + device.user.response.message = 0; + break; + + case 124: + //TemperIntDyn[7] s16 thermal sensor value for interim point of thermo error interpolation at heating + //? + device.user.response.message = 0; + break; + + case 125: + //TemperIntDyn[8] s16 thermal sensor value for interim point of thermo error interpolation at heating + //? + device.user.response.message = 0; break; - + + case 126: + //TemperIntDyn[9] s16 thermal sensor value for interim point of thermo error interpolation at heating + //? + device.user.response.message = 0; + break; + + case 127: + //TemperIntDyn[10] s16 thermal sensor value for interim point of thermo error interpolation at heating + //? + device.user.response.message = 0; + break; + + case 128: + //TemperIntDyn[11] s16 thermal sensor value for interim point of thermo error interpolation at heating + //? + device.user.response.message = 0; + break; + + case 129: + //TemperIntDyn[12] s16 thermal sensor value for interim point of thermo error interpolation at heating + //? + device.user.response.message = 0; + break; + + case 130: + //TemperIntDyn[13] s16 thermal sensor value for last point of thermo error interpolation at heating + //? + device.user.response.message = 0; + break; + + case 131: + //ThermoHeatDelta[0] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) + //? + device.user.response.message = 0; + break; + + case 132: + //ThermoHeatDelta[0] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) + //? + device.user.response.message = 0; + break; + + case 133: + //ThermoHeatDelta[1] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) + //? + device.user.response.message = 0; + break; + + case 134: + //ThermoHeatDelta[1] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) + //? + device.user.response.message = 0; + break; + + case 135: + //ThermoHeatDelta[2] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) + //? + device.user.response.message = 0; + break; + + case 136: + //ThermoHeatDelta[2] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) + //? + device.user.response.message = 0; + break; + + case 137: + //ThermoHeatDelta[3] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) + //? + device.user.response.message = 0; + break; + + case 138: + //ThermoHeatDelta[3] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) + //? + device.user.response.message = 0; + break; + + case 139: + //ThermoHeatDelta[4] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) + //? + device.user.response.message = 0; + break; + + case 140: + //ThermoHeatDelta[4] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) + //? + device.user.response.message = 0; + break; + + case 141: + //ThermoHeatDelta[5] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) + //? + device.user.response.message = 0; + break; + + case 142: + //ThermoHeatDelta[5] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) + //? + device.user.response.message = 0; + break; + + case 143: + //ThermoHeatDelta[6] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) + //? + device.user.response.message = 0; + break; + + case 144: + //ThermoHeatDelta[6] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) + //? + device.user.response.message = 0; + break; + + case 145: + //ThermoHeatDelta[7] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) + //? + device.user.response.message = 0; + break; + + case 146: + //ThermoHeatDelta[7] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) + //? + device.user.response.message = 0; + break; + + case 147: + //ThermoHeatDelta[8] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) + //? + device.user.response.message = 0; + break; + + case 148: + //ThermoHeatDelta[8] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) + //? + device.user.response.message = 0; + break; + + case 149: + //ThermoHeatDelta[9] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) + //? + device.user.response.message = 0; + break; + + case 150: + //ThermoHeatDelta[9] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) + //? + device.user.response.message = 0; + break; + + case 151: + //ThermoHeatDelta[10] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) + //? + device.user.response.message = 0; + break; + + case 152: + //ThermoHeatDelta[10] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) + //? + device.user.response.message = 0; + break; + + case 153: + //ThermoHeatDelta[11] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) + //? + device.user.response.message = 0; + break; + + case 154: + //ThermoHeatDelta[11] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) + //? + device.user.response.message = 0; + break; + + case 155: + //ThermoHeatDelta[12] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) + //? + device.user.response.message = 0; + break; + + case 156: + //ThermoHeatDelta[12] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) + //? + device.user.response.message = 0; + break; + + case 157: + //ThermoHeatDelta[13] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) + //? + device.user.response.message = 0; + break; + + case 158: + //ThermoHeatDelta[13] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) + //? + device.user.response.message = 0; + break; + + case 159: + //DeltaTempRecalc s16 + //? + device.user.response.message = 0; + break; + + case 160: + //TemperCoolIntDyn[0] s16 thermal sensor value for first point of thermo error interpolation at cooling + //? + device.user.response.message = 0; + break; + + case 161: + //TemperCoolIntDyn[1] s16 thermal sensor value for interim point of thermo error interpolation at cooling + //? + device.user.response.message = 0; + break; + + case 162: + //TemperCoolIntDyn[2] s16 thermal sensor value for interim point of thermo error interpolation at cooling + //? + device.user.response.message = 0; + break; + + case 163: + //TemperCoolIntDyn[3] s16 thermal sensor value for interim point of thermo error interpolation at cooling + //? + device.user.response.message = 0; + break; + + case 164: + //TemperCoolIntDyn[4] s16 thermal sensor value for interim point of thermo error interpolation at cooling + //? + device.user.response.message = 0; + break; + + case 165: + //TemperCoolIntDyn[5] s16 thermal sensor value for interim point of thermo error interpolation at cooling + //? + device.user.response.message = 0; + break; + + case 166: + //TemperCoolIntDyn[6] s16 thermal sensor value for interim point of thermo error interpolation at cooling + //? + device.user.response.message = 0; + break; + + case 167: + //TemperCoolIntDyn[7] s16 thermal sensor value for interim point of thermo error interpolation at cooling + //? + device.user.response.message = 0; + break; + + case 168: + //TemperCoolIntDyn[8] s16 thermal sensor value for interim point of thermo error interpolation at cooling + //? + device.user.response.message = 0; + break; + + case 169: + //TemperCoolIntDyn[9] s16 thermal sensor value for interim point of thermo error interpolation at cooling + //? + device.user.response.message = 0; + break; + + case 170: + //TemperCoolIntDyn[10] s16 thermal sensor value for interim point of thermo error interpolation at cooling + //? + device.user.response.message = 0; + break; + + case 171: + //TemperCoolIntDyn[11] s16 thermal sensor value for interim point of thermo error interpolation at cooling + //? + device.user.response.message = 0; + break; + + case 172: + //TemperCoolIntDyn[12] s16 thermal sensor value for interim point of thermo error interpolation at cooling + //? + device.user.response.message = 0; + break; + + case 173: + //TemperCoolIntDyn[13] s16 thermal sensor value for last point of thermo error interpolation at cooling + //? + device.user.response.message = 0; + break; + + case 174: + //ThermoCoolDelta[0] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) + //? + device.user.response.message = 0; + break; + + case 175: + //ThermoCoolDelta[0] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) + //? + device.user.response.message = 0; + break; + + case 176: + //ThermoCoolDelta[1] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) + //? + device.user.response.message = 0; + break; + + case 177: + //ThermoCoolDelta[1] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) + //? + device.user.response.message = 0; + break; + + case 178: + //ThermoCoolDelta[2] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) + //? + device.user.response.message = 0; + break; + + case 179: + //ThermoCoolDelta[2] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) + //? + device.user.response.message = 0; + break; + + case 180: + //ThermoCoolDelta[3] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) + //? + device.user.response.message = 0; + break; + + case 181: + //ThermoCoolDelta[3] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) + //? + device.user.response.message = 0; + break; + + case 182: + //ThermoCoolDelta[4] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) + //? + device.user.response.message = 0; + break; + + case 183: + //ThermoCoolDelta[4] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) + //? + device.user.response.message = 0; + break; + + case 184: + //ThermoCoolDelta[5] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) + //? + device.user.response.message = 0; + break; + + case 185: + //ThermoCoolDelta[5] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) + //? + device.user.response.message = 0; + break; + + case 186: + //ThermoCoolDelta[6] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) + //? + device.user.response.message = 0; + break; + + case 187: + //ThermoCoolDelta[6] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) + //? + device.user.response.message = 0; + break; + + case 188: + //ThermoCoolDelta[7] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) + //? + device.user.response.message = 0; + break; + + case 189: + //ThermoCoolDelta[7] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) + //? + device.user.response.message = 0; + break; + + case 190: + //ThermoCoolDelta[8] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) + //? + device.user.response.message = 0; + break; + + case 191: + //ThermoCoolDelta[8] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) + //? + device.user.response.message = 0; + break; + + case 192: + //ThermoCoolDelta[9] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) + //? + device.user.response.message = 0; + break; + + case 193: + //ThermoCoolDelta[9] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) + //? + device.user.response.message = 0; + break; + + case 194: + //ThermoCoolDelta[10] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) + //? + device.user.response.message = 0; + break; + + case 195: + //ThermoCoolDelta[10] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) + //? + device.user.response.message = 0; + break; + + case 196: + //ThermoCoolDelta[11] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) + //? + device.user.response.message = 0; + break; + + case 197: + //ThermoCoolDelta[11] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) + //? + device.user.response.message = 0; + break; + + case 198: + //ThermoCoolDelta[12] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) + //? + device.user.response.message = 0; + break; + + case 199: + //ThermoCoolDelta[12] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) + //? + device.user.response.message = 0; + break; + + case 200: + //ThermoCoolDelta[13] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Hi) + //? + device.user.response.message = 0; + break; + + case 201: + //ThermoCoolDelta[13] tc ttf:value of thermo error per 10kHz cycle; value:value of thermo error for 100 second accumulation (Lo) + //? + device.user.response.message = 0; + break; + /* case 27: case 28: case 29: @@ -826,9 +1796,9 @@ case 122: case 124: case 125: - /*reserved*/ + //reserved break; - + */ default: DecodeFail(); } }