123

Dependencies:   mbed

Fork of LG by igor Apu

Committer:
Kovalev_D
Date:
Wed Oct 19 10:55:05 2016 +0000
Revision:
197:7a05523bf588
Parent:
182:2bd8ec44998f
modul

Who changed what in which revision?

UserRevisionLine numberNew 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
Diletant 182:2bd8ec44998f 5 void InitUserDefaultSettings(void){
Diletant 177:672ef279c8e0 6 device.user.address = 0;
Diletant 182:2bd8ec44998f 7 InitUserDecoderDefaultSettings();
Diletant 182:2bd8ec44998f 8 InitUserEncoderDefaultSettings();
Diletant 182:2bd8ec44998f 9 InitUserRequestDefaultSettings();
Diletant 182:2bd8ec44998f 10 InitUserResponseDefaultSettings();
Diletant 167:bedc0a9d559a 11 }
Diletant 167:bedc0a9d559a 12
Diletant 182:2bd8ec44998f 13 void InitUserState(void){
Diletant 182:2bd8ec44998f 14 InitUserDecoderState();
Diletant 182:2bd8ec44998f 15 InitUserEncoderState();
Diletant 182:2bd8ec44998f 16 InitUserRequestState();
Diletant 182:2bd8ec44998f 17 InitUserResponseState();
Diletant 167:bedc0a9d559a 18 }
Diletant 167:bedc0a9d559a 19
Diletant 182:2bd8ec44998f 20 void DeviceStartUser(void){
Diletant 182:2bd8ec44998f 21 DeviceStartUserDecoder();
Diletant 182:2bd8ec44998f 22 DeviceStartUserEncoder();
Diletant 182:2bd8ec44998f 23 DeviceStartUserRequest();
Diletant 182:2bd8ec44998f 24 DeviceStartUserResponse();
Diletant 161:efd949e8d536 25 }
Diletant 161:efd949e8d536 26
Diletant 177:672ef279c8e0 27 void userDecodePin(void) {
Diletant 161:efd949e8d536 28 /*
Diletant 161:efd949e8d536 29 *** Action ***
Diletant 161:efd949e8d536 30 int ChkSumm;
Diletant 161:efd949e8d536 31
Diletant 161:efd949e8d536 32 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. внешняя защелка с автоответом по внешнему импульсу
Diletant 161:efd949e8d536 33 {
Diletant 161:efd949e8d536 34 if (Ext_Latch_Rdy)
Diletant 161:efd949e8d536 35 {
Diletant 161:efd949e8d536 36 // B_Delta_PS
Diletant 161:efd949e8d536 37 // cc 00 a0 00 00 a0 ; 38400/38400
Diletant 161:efd949e8d536 38 // cc 00 a0 30 00 d0 ; 115200/115200
Diletant 161:efd949e8d536 39 // cc 1F a0 60 01 1f ; 38400/921200
Diletant 161:efd949e8d536 40 rcv_num_byt = 6;
Diletant 161:efd949e8d536 41 rcv_buf[0] = COMMAND_PREFIX;
Diletant 161:efd949e8d536 42 rcv_buf[1] = 0x1f; //Device_blk.My_Addres; //e. set the broadcasting address for delay on line for different addresses //r. задаем широковещательный адрес, чтобы была задержка на линии для разл.адресов
Diletant 161:efd949e8d536 43 if (Device_Mode == DM_EXT_LATCH_DELTA_PS_PULSE)
Diletant 161:efd949e8d536 44 {
Diletant 161:efd949e8d536 45 rcv_buf[2] = Bcmd_DeltaPS; // 0xA0;
Diletant 161:efd949e8d536 46 }
Diletant 161:efd949e8d536 47 else
Diletant 161:efd949e8d536 48 {
Diletant 161:efd949e8d536 49 rcv_buf[2] = Bcmd_DeltaBINS; // 0xB0;
Diletant 161:efd949e8d536 50 }
Diletant 161:efd949e8d536 51 rcv_buf[3] = ((Copy_SRgR & 0x38) << 1) & 0x70; //r. 0x30; // 0x60;
Diletant 161:efd949e8d536 52 ChkSumm = rcv_buf[1] + rcv_buf[2] + rcv_buf[3];
Diletant 161:efd949e8d536 53 rcv_buf[4] = Hi(ChkSumm);
Diletant 161:efd949e8d536 54 rcv_buf[5] = Lo(ChkSumm);
Diletant 161:efd949e8d536 55 rcv_Rdy = 1;
Diletant 161:efd949e8d536 56 }
Diletant 161:efd949e8d536 57 }
Diletant 161:efd949e8d536 58 */
Diletant 177:672ef279c8e0 59
Diletant 177:672ef279c8e0 60 if (device.counters.latch.state.enabled) {
Diletant 177:672ef279c8e0 61 //TODO:
Diletant 182:2bd8ec44998f 62 // device.counters.latch.state.clock = ...
Diletant 177:672ef279c8e0 63 // if (device.counters.latch.state.format == 0) {
Diletant 177:672ef279c8e0 64 // //DeltaPS
Diletant 182:2bd8ec44998f 65 // device.counters.latch.state.angle = ...
Diletant 177:672ef279c8e0 66 // if (device.counters.latch.state.reset) {
Diletant 182:2bd8ec44998f 67 // device.counters.dither.state.angle -= device.counters.latch.state.angle;
Diletant 177:672ef279c8e0 68 // }
Diletant 177:672ef279c8e0 69 // } else if (device.counters.latch.state.format == 1) {
Diletant 177:672ef279c8e0 70 // //DeltaBINS
Diletant 182:2bd8ec44998f 71 // device.counters.latch.state.angle = ...
Diletant 177:672ef279c8e0 72 // if (device.counters.latch.state.reset) {
Diletant 182:2bd8ec44998f 73 // device.counters.dither.state.angle = 0;
Diletant 177:672ef279c8e0 74 // }
Diletant 177:672ef279c8e0 75 // } else if (device.counters.latch.state.format == 3) {
Diletant 177:672ef279c8e0 76 // //DeltaSF
Diletant 182:2bd8ec44998f 77 // device.counters.latch.state.angle = ...
Diletant 177:672ef279c8e0 78 // if (device.counters.latch.state.reset) {
Diletant 182:2bd8ec44998f 79 // device.counters.dither.state.angle = 0;
Diletant 177:672ef279c8e0 80 // }
Diletant 177:672ef279c8e0 81 // }
Diletant 177:672ef279c8e0 82
Diletant 177:672ef279c8e0 83 device.user.response.counter = 0;
Diletant 177:672ef279c8e0 84 device.user.response.trigger = BROADCAST_FRAME * device.user.address; //0/100/200 mks
Diletant 177:672ef279c8e0 85 device.user.response.type = RESPONSE_DELAYED;
Diletant 177:672ef279c8e0 86 if (device.counters.latch.state.format == 0){
Diletant 177:672ef279c8e0 87 device.user.response.code = DELTA_PS;
Diletant 177:672ef279c8e0 88 } else if (device.counters.latch.state.format == 1){
Diletant 177:672ef279c8e0 89 device.user.response.code = DELTA_BINS;
Diletant 177:672ef279c8e0 90 } else if (device.counters.latch.state.format == 2){
Diletant 177:672ef279c8e0 91 device.user.response.code = DELTA_SF;
Diletant 177:672ef279c8e0 92 };
Diletant 177:672ef279c8e0 93
Diletant 177:672ef279c8e0 94 device.user.response.enabled = 1;
Diletant 161:efd949e8d536 95 };
Diletant 161:efd949e8d536 96 }