Rev 1978 | Rev 2045 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed
| Rev 1978 | Rev 2040 | ||
|---|---|---|---|
| Line 519... | Line 519... | ||
| 519 | StdCan_Set_class(irTxMsg.Header, CAN_MODULE_CLASS_SNS); |
519 | StdCan_Set_class(irTxMsg.Header, CAN_MODULE_CLASS_SNS); |
| 520 | StdCan_Set_direction(irTxMsg.Header, DIRECTIONFLAG_FROM_OWNER); |
520 | StdCan_Set_direction(irTxMsg.Header, DIRECTIONFLAG_FROM_OWNER); |
| 521 | irTxMsg.Header.ModuleType = CAN_MODULE_TYPE_SNS_IRTRANSCEIVE; |
521 | irTxMsg.Header.ModuleType = CAN_MODULE_TYPE_SNS_IRTRANSCEIVE; |
| 522 | irTxMsg.Header.ModuleId = sns_irTransceive_ID; |
522 | irTxMsg.Header.ModuleId = sns_irTransceive_ID; |
| 523 | irTxMsg.Header.Command = CAN_MODULE_CMD_PHYSICAL_IR; |
523 | irTxMsg.Header.Command = CAN_MODULE_CMD_PHYSICAL_IR; |
| 524 | irTxMsg.Length = |
524 | irTxMsg.Length = 8; |
| 525 | 525 | ||
| 526 | for (uint8_t i = 0; i < IR_SUPPORTED_NUM_CHANNELS; i++) |
526 | for (uint8_t i = 0; i < IR_SUPPORTED_NUM_CHANNELS; i++) |
| 527 | { |
527 | { |
| 528 | #if IR_RX_ENABLE==1 |
528 | #if IR_RX_ENABLE==1 |
| 529 | irRxChannel[i].state = sns_irTransceive_STATE_DISABLED; |
529 | irRxChannel[i].state = sns_irTransceive_STATE_DISABLED; |
| Line 657... | Line 657... | ||
| 657 | if (irRxChannel[channel].proto.protocol != IR_PROTO_UNKNOWN) { |
657 | if (irRxChannel[channel].proto.protocol != IR_PROTO_UNKNOWN) { |
| 658 | /* Send button release command on CAN. */ |
658 | /* Send button release command on CAN. */ |
| 659 | irTxMsg.Data[0] = 0xf&CAN_MODULE_ENUM_PHYSICAL_IR_STATUS_RELEASED; |
659 | irTxMsg.Data[0] = 0xf&CAN_MODULE_ENUM_PHYSICAL_IR_STATUS_RELEASED; |
| 660 | irTxMsg.Data[0] |= channel<<4; |
660 | irTxMsg.Data[0] |= channel<<4; |
| 661 | irTxMsg.Data[1] = irRxChannel[channel].proto.protocol; |
661 | irTxMsg.Data[1] = irRxChannel[channel].proto.protocol; |
| - | 662 | irTxMsg.Data[2] = (irRxChannel[channel].proto.data>>40)&0xff; |
|
| - | 663 | irTxMsg.Data[3] = (irRxChannel[channel].proto.data>>32)&0xff; |
|
| 662 | irTxMsg.Data[ |
664 | irTxMsg.Data[4] = (irRxChannel[channel].proto.data>>24)&0xff; |
| 663 | irTxMsg.Data[ |
665 | irTxMsg.Data[5] = (irRxChannel[channel].proto.data>>16)&0xff; |
| 664 | irTxMsg.Data[ |
666 | irTxMsg.Data[6] = (irRxChannel[channel].proto.data>>8)&0xff; |
| 665 | irTxMsg.Data[ |
667 | irTxMsg.Data[7] = irRxChannel[channel].proto.data&0xff; |
| 666 | 668 | ||
| 667 | StdCan_Put(&irTxMsg); |
669 | StdCan_Put(&irTxMsg); |
| 668 | } |
670 | } |
| 669 | irRxChannel[channel].state = sns_irTransceive_STATE_START_RECEIVE; |
671 | irRxChannel[channel].state = sns_irTransceive_STATE_START_RECEIVE; |
| 670 | break; |
672 | break; |
| Line 692... | Line 694... | ||
| 692 | uint8_t res2 = parseProtocol(irRxChannel[channel].rxbuf, irRxChannel[channel].rxlen, &irRxChannel[channel].proto); |
694 | uint8_t res2 = parseProtocol(irRxChannel[channel].rxbuf, irRxChannel[channel].rxlen, &irRxChannel[channel].proto); |
| 693 | if (res2 == IR_OK && irRxChannel[channel].proto.protocol != IR_PROTO_UNKNOWN) { |
695 | if (res2 == IR_OK && irRxChannel[channel].proto.protocol != IR_PROTO_UNKNOWN) { |
| 694 | irTxMsg.Data[0] = 0xf&CAN_MODULE_ENUM_PHYSICAL_IR_STATUS_PRESSED; |
696 | irTxMsg.Data[0] = 0xf&CAN_MODULE_ENUM_PHYSICAL_IR_STATUS_PRESSED; |
| 695 | irTxMsg.Data[0] |= channel<<4; |
697 | irTxMsg.Data[0] |= channel<<4; |
| 696 | irTxMsg.Data[1] = irRxChannel[channel].proto.protocol; |
698 | irTxMsg.Data[1] = irRxChannel[channel].proto.protocol; |
| - | 699 | irTxMsg.Data[2] = (irRxChannel[channel].proto.data>>40)&0xff; |
|
| - | 700 | irTxMsg.Data[3] = (irRxChannel[channel].proto.data>>32)&0xff; |
|
| 697 | irTxMsg.Data[ |
701 | irTxMsg.Data[4] = (irRxChannel[channel].proto.data>>24)&0xff; |
| 698 | irTxMsg.Data[ |
702 | irTxMsg.Data[5] = (irRxChannel[channel].proto.data>>16)&0xff; |
| 699 | irTxMsg.Data[ |
703 | irTxMsg.Data[6] = (irRxChannel[channel].proto.data>>8)&0xff; |
| 700 | irTxMsg.Data[ |
704 | irTxMsg.Data[7] = irRxChannel[channel].proto.data&0xff; |
| 701 | 705 | ||
| 702 | StdCan_Put(&irTxMsg); |
706 | StdCan_Put(&irTxMsg); |
| 703 | } |
707 | } |
| 704 | else if (irRxChannel[channel].proto.protocol == IR_PROTO_UNKNOWN) |
708 | else if (irRxChannel[channel].proto.protocol == IR_PROTO_UNKNOWN) |
| 705 | { |
709 | { |
| Line 1014... | Line 1018... | ||
| 1014 | irTxChannel[channel].proto.data |= rxMsg->Data[3]; |
1018 | irTxChannel[channel].proto.data |= rxMsg->Data[3]; |
| 1015 | irTxChannel[channel].proto.data = irTxChannel[channel].proto.data<<8; |
1019 | irTxChannel[channel].proto.data = irTxChannel[channel].proto.data<<8; |
| 1016 | irTxChannel[channel].proto.data |= rxMsg->Data[4]; |
1020 | irTxChannel[channel].proto.data |= rxMsg->Data[4]; |
| 1017 | irTxChannel[channel].proto.data = irTxChannel[channel].proto.data<<8; |
1021 | irTxChannel[channel].proto.data = irTxChannel[channel].proto.data<<8; |
| 1018 | irTxChannel[channel].proto.data |= rxMsg->Data[5]; |
1022 | irTxChannel[channel].proto.data |= rxMsg->Data[5]; |
| - | 1023 | irTxChannel[channel].proto.data = irTxChannel[channel].proto.data<<8; |
|
| - | 1024 | irTxChannel[channel].proto.data |= rxMsg->Data[6]; |
|
| - | 1025 | irTxChannel[channel].proto.data = irTxChannel[channel].proto.data<<8; |
|
| - | 1026 | irTxChannel[channel].proto.data |= rxMsg->Data[7]; |
|
| 1019 | 1027 | ||
| 1020 | irTxChannel[channel].state = sns_irTransceive_STATE_START_TRANSMIT; |
1028 | irTxChannel[channel].state = sns_irTransceive_STATE_START_TRANSMIT; |
| 1021 | } |
1029 | } |
| 1022 | } |
1030 | } |
| 1023 | else if (buttonStatus == CAN_MODULE_ENUM_PHYSICAL_IR_STATUS_RELEASED) |
1031 | else if (buttonStatus == CAN_MODULE_ENUM_PHYSICAL_IR_STATUS_RELEASED) |