123
Fork of LG by
Diff: DeviceUserDecoder.c
- Revision:
- 183:c7a9c309086c
- Parent:
- 182:2bd8ec44998f
--- a/DeviceUserDecoder.c Sun Jul 10 05:35:08 2016 +0000 +++ b/DeviceUserDecoder.c Sun Jul 31 06:19:02 2016 +0000 @@ -580,10 +580,12 @@ //Reset device counters here device.counters.dither.state.angle = 0; device.counters.meander.state.angle[0] = 0; + device.counters.meander.state.angle[1] = 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? + //device.user.response.counter = device.user.response.trigger; //Ask_Gld expect immediate answer? + device.user.response.counter = 0; //No? } } else { DecodeFail(); @@ -836,12 +838,14 @@ //Deprecated void DecodeMGphW(void) { + uint8_t reply = Decode8(); if (device.user.decoder.error) return; uint8_t gainA = Decode8(); if (device.user.decoder.error) return; uint8_t gainB = Decode8(); if (device.user.decoder.error) return; DecodeCRC(); if (device.user.decoder.error) return; device.isacs.potentiometers.state.a = gainA; device.isacs.potentiometers.state.b = gainB; DeviceISACSSetPotentiometers(); + if (!reply) device.user.response.enabled = 0; } uint16_t GetCompatibilityValue(uint8_t index) { @@ -854,8 +858,6 @@ uint8_t index = Decode8(); if (device.user.decoder.error) return; DecodeCRC(); if (device.user.decoder.error) return; - //sprintf(device.service.buffer, "MParamR %02x\r\n", index); WriteConcole(); //Development message - uint32_t param32; switch (index){ case 0: @@ -866,25 +868,25 @@ case 1: //HF_ref s16 value of the reference //int32_t device.isacs.regulator.settings.reference - device.user.response.message = 0; //TODO: Expected ADC code, currently [V] + device.user.response.message = param_HF_ref(); break; case 2: //HF_scl s16 HFO gain factor //int32_t device.isacs.regulator.settings.scale - device.user.response.message = (device.isacs.regulator.state.scale >> 16); //TODO: Expected integer code, currently in 16.16 + device.user.response.message = param_HF_scl(); 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.settings.max - device.user.response.message = 0; //TODO: Expected DAC code, currently [V] 16.16 + device.user.response.message = param_HF_min(); 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.settings.min - device.user.response.message = 0; //TODO: Expected DAC code, currently [V] 16.16 + device.user.response.message = param_HF_max(); break; case 5: @@ -900,31 +902,31 @@ case 7: //WP_ref s16 PLCS reference //int32_t device.plcs.regulator.reference - device.user.response.message = 0; + device.user.response.message = param_WP_ref(); break; case 8: //WP_scl s16 PLCS gain factor (1.15) 5..20 //int32_t device.plcs.regulator.scale - device.user.response.message = 0; + device.user.response.message = param_WP_scl(); break; case 9: //WP_mdy s16 PLCS reset delay in 10kHz cycles - //device.plcs.reset.settings.? - device.user.response.message = 0; + //device.plcs.reset.up/down.state.duration + device.user.response.message = param_WP_mdy(); 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; + //device.plcs.reset.up.state.trigger + device.user.response.message = param_WP_rup(); 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; + //device.plcs.reset.down.state.trigger + device.user.response.message = param_WP_rdw(); break; case 12: @@ -974,7 +976,7 @@ case 20: //VB_Tmin tau minimum pulse width of the dither drive; value=ttf/15360000 in seconds - device.user.response.message = param_VB_Tmax(); + device.user.response.message = param_VB_Tmin(); break; case 21: @@ -990,19 +992,19 @@ case 23: //VBN_Tzd s16 adjusted noise period //int32_t device.dither.noise.settings.period - device.user.response.message = 0; + device.user.response.message = param_VBN_Tzd(); break; case 24: //VBN_Ran s16 range of the random component of noise //int32_t device.dither.noise.settings.range - device.user.response.message = 0; + device.user.response.message = param_VBN_Ran(); break; case 25: - //VBN_k s16 adjusted noise constant + //VBN_k s16 adjusted noise constant: pulse width = VB_tau +/- VBN_k //int32_t device.dither.noise.settings.amplitude - device.user.response.message = 0; + device.user.response.message = param_VBN_k(); break; case 26: @@ -1027,81 +1029,31 @@ 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 + //Tmp_bias0[0] ... Tmp_bias0[5] s16 Tmp_bias[6]: an array of shifts of the 0..5 temperature sensors //? 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 + //Tmp_scal0[0] ... Tmp_scal0[5] s16 Tmp_scal[6]: an array of the scale coefficients of the 0..5 temperature sensors //? 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; + //int32_t device.plcs.reset.up.state.target + device.user.response.message = param_WP_reset(); break; case 56: @@ -1197,8 +1149,8 @@ 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; + //int32_t device.plcs.reset.down.state.target + device.user.response.message = param_WP_reset2(); break; case 106: @@ -1250,8 +1202,8 @@ case 116: //HF_scl_2 s16 HFO scale factor during PLCS reset - //? - device.user.response.message = 0; + //Deprecated: always same as HF_scl + device.user.response.message = param_HF_scl(); break; case 117: