123
Fork of LG by
DeviceUser.c
- Committer:
- Diletant
- Date:
- 2016-07-10
- Revision:
- 182:2bd8ec44998f
- Parent:
- DeviceUserProtocol.c@ 177:672ef279c8e0
File content as of revision 182:2bd8ec44998f:
#include "Device.h" extern Device device; void InitUserDefaultSettings(void){ device.user.address = 0; InitUserDecoderDefaultSettings(); InitUserEncoderDefaultSettings(); InitUserRequestDefaultSettings(); InitUserResponseDefaultSettings(); } void InitUserState(void){ InitUserDecoderState(); InitUserEncoderState(); InitUserRequestState(); InitUserResponseState(); } void DeviceStartUser(void){ DeviceStartUserDecoder(); DeviceStartUserEncoder(); DeviceStartUserRequest(); DeviceStartUserResponse(); } void userDecodePin(void) { /* *** Action *** int ChkSumm; if ((Device_Mode == DM_EXT_LATCH_DELTA_PS_PULSE) || (Device_Mode == DM_EXT_LATCH_DELTA_BINS_PULSE)) //e. exteranal latch with autoanswer on external pulse //r. внешняя защелка с автоответом по внешнему импульсу { if (Ext_Latch_Rdy) { // B_Delta_PS // cc 00 a0 00 00 a0 ; 38400/38400 // cc 00 a0 30 00 d0 ; 115200/115200 // cc 1F a0 60 01 1f ; 38400/921200 rcv_num_byt = 6; rcv_buf[0] = COMMAND_PREFIX; rcv_buf[1] = 0x1f; //Device_blk.My_Addres; //e. set the broadcasting address for delay on line for different addresses //r. задаем широковещательный адрес, чтобы была задержка на линии для разл.адресов if (Device_Mode == DM_EXT_LATCH_DELTA_PS_PULSE) { rcv_buf[2] = Bcmd_DeltaPS; // 0xA0; } else { rcv_buf[2] = Bcmd_DeltaBINS; // 0xB0; } rcv_buf[3] = ((Copy_SRgR & 0x38) << 1) & 0x70; //r. 0x30; // 0x60; ChkSumm = rcv_buf[1] + rcv_buf[2] + rcv_buf[3]; rcv_buf[4] = Hi(ChkSumm); rcv_buf[5] = Lo(ChkSumm); rcv_Rdy = 1; } } */ if (device.counters.latch.state.enabled) { //TODO: // device.counters.latch.state.clock = ... // if (device.counters.latch.state.format == 0) { // //DeltaPS // device.counters.latch.state.angle = ... // if (device.counters.latch.state.reset) { // device.counters.dither.state.angle -= device.counters.latch.state.angle; // } // } else if (device.counters.latch.state.format == 1) { // //DeltaBINS // device.counters.latch.state.angle = ... // if (device.counters.latch.state.reset) { // device.counters.dither.state.angle = 0; // } // } else if (device.counters.latch.state.format == 3) { // //DeltaSF // device.counters.latch.state.angle = ... // if (device.counters.latch.state.reset) { // device.counters.dither.state.angle = 0; // } // } device.user.response.counter = 0; device.user.response.trigger = BROADCAST_FRAME * device.user.address; //0/100/200 mks device.user.response.type = RESPONSE_DELAYED; if (device.counters.latch.state.format == 0){ device.user.response.code = DELTA_PS; } else if (device.counters.latch.state.format == 1){ device.user.response.code = DELTA_BINS; } else if (device.counters.latch.state.format == 2){ device.user.response.code = DELTA_SF; }; device.user.response.enabled = 1; }; }