Subversion Repositories HomeAutomation

Rev

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);