123
Fork of LG by
DeviceUser.c@182:2bd8ec44998f, 2016-07-10 (annotated)
- Committer:
- Diletant
- Date:
- Sun Jul 10 05:35:08 2016 +0000
- Revision:
- 182:2bd8ec44998f
- Parent:
- DeviceUserProtocol.c@177:672ef279c8e0
Device & ... update. More AskGld & Techno 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 | |
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 | } |