Rev 1927 | Rev 1996 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed
| Rev 1927 | Rev 1931 | ||
|---|---|---|---|
| Line 85... | Line 85... | ||
| 85 | #if IR_RX_ENABLE==1 |
85 | #if IR_RX_ENABLE==1 |
| 86 | switch (rfRxChannel_state) |
86 | switch (rfRxChannel_state) |
| 87 | { |
87 | { |
| 88 | case sns_rfTransceive_STATE_IDLE: |
88 | case sns_rfTransceive_STATE_IDLE: |
| 89 | { |
89 | { |
| - | 90 | /* If known protocol and timeout is not 0 (0 means burst) */ |
|
| 90 | if (rfRxChannel_proto.protocol != IR_PROTO_UNKNOWN) { |
91 | if (rfRxChannel_proto.protocol != IR_PROTO_UNKNOWN && rfRxChannel_proto.timeout != 0) { |
| 91 | /* Send button release command on CAN */ |
92 | /* Send button release command on CAN */ |
| 92 | rfTxMsg.Header.Command = CAN_MODULE_CMD_RFTRANSCEIVE_DATASTOP; |
93 | rfTxMsg.Header.Command = CAN_MODULE_CMD_RFTRANSCEIVE_DATASTOP; |
| 93 | rfTxMsg.Data[0] = 0; |
94 | rfTxMsg.Data[0] = 0; |
| 94 | rfTxMsg.Data[1] = rfRxChannel_proto.protocol; |
95 | rfTxMsg.Data[1] = rfRxChannel_proto.protocol; |
| 95 | rfTxMsg.Data[2] = (rfRxChannel_proto.data>>40)&0xff; |
96 | rfTxMsg.Data[2] = (rfRxChannel_proto.data>>40)&0xff; |
| Line 120... | Line 121... | ||
| 120 | sei(); |
121 | sei(); |
| 121 | 122 | ||
| 122 | /* Let protocol driver parse and then send on CAN */ |
123 | /* Let protocol driver parse and then send on CAN */ |
| 123 | uint8_t res2 = parseProtocol(rfRxChannel_buf, rfRxChannel_rxlen, &rfRxChannel_proto); |
124 | uint8_t res2 = parseProtocol(rfRxChannel_buf, rfRxChannel_rxlen, &rfRxChannel_proto); |
| 124 | if (res2 == IR_OK && rfRxChannel_proto.protocol != IR_PROTO_UNKNOWN) { |
125 | if (res2 == IR_OK && rfRxChannel_proto.protocol != IR_PROTO_UNKNOWN) { |
| - | 126 | /* If timeout is 0, protocol is burst protocol */ |
|
| - | 127 | if (rfRxChannel_proto.timeout > 0) |
|
| - | 128 | { |
|
| 125 | rfTxMsg.Header.Command = CAN_MODULE_CMD_RFTRANSCEIVE_DATASTART; |
129 | rfTxMsg.Header.Command = CAN_MODULE_CMD_RFTRANSCEIVE_DATASTART; |
| - | 130 | rfRxChannel_state = sns_rfTransceive_STATE_START_PAUSE; |
|
| - | 131 | } |
|
| - | 132 | else |
|
| - | 133 | { |
|
| - | 134 | rfTxMsg.Header.Command = CAN_MODULE_CMD_RFTRANSCEIVE_DATABURST; |
|
| - | 135 | rfRxChannel_state = sns_rfTransceive_STATE_START_RECEIVE; |
|
| - | 136 | } |
|
| 126 | rfTxMsg.Data[0] = 0; |
137 | rfTxMsg.Data[0] = 0; |
| 127 | rfTxMsg.Data[1] = rfRxChannel_proto.protocol; |
138 | rfTxMsg.Data[1] = rfRxChannel_proto.protocol; |
| 128 | rfTxMsg.Data[2] = (rfRxChannel_proto.data>>40)&0xff; |
139 | rfTxMsg.Data[2] = (rfRxChannel_proto.data>>40)&0xff; |
| 129 | rfTxMsg.Data[3] = (rfRxChannel_proto.data>>32)&0xff; |
140 | rfTxMsg.Data[3] = (rfRxChannel_proto.data>>32)&0xff; |
| 130 | rfTxMsg.Data[4] = (rfRxChannel_proto.data>>24)&0xff; |
141 | rfTxMsg.Data[4] = (rfRxChannel_proto.data>>24)&0xff; |
| 131 | rfTxMsg.Data[5] = (rfRxChannel_proto.data>>16)&0xff; |
142 | rfTxMsg.Data[5] = (rfRxChannel_proto.data>>16)&0xff; |
| 132 | rfTxMsg.Data[6] = (rfRxChannel_proto.data>>8)&0xff; |
143 | rfTxMsg.Data[6] = (rfRxChannel_proto.data>>8)&0xff; |
| 133 | rfTxMsg.Data[7] = rfRxChannel_proto.data&0xff; |
144 | rfTxMsg.Data[7] = rfRxChannel_proto.data&0xff; |
| 134 | 145 | ||
| 135 | StdCan_Put(&rfTxMsg); |
146 | StdCan_Put(&rfTxMsg); |
| 136 | - | ||
| 137 | rfRxChannel_state = sns_rfTransceive_STATE_START_PAUSE; |
- | |
| 138 | } |
147 | } |
| 139 | else if (rfRxChannel_proto.protocol == IR_PROTO_UNKNOWN) |
148 | else if (rfRxChannel_proto.protocol == IR_PROTO_UNKNOWN) |
| 140 | { |
149 | { |
| 141 | #if (sns_rfTransceive_SEND_DEBUG==1) |
150 | #if (sns_rfTransceive_SEND_DEBUG==1) |
| 142 | //send_debug(rfRxChannel_buf, rfRxChannel_rxlen); |
151 | //send_debug(rfRxChannel_buf, rfRxChannel_rxlen); |