Subversion Repositories HomeAutomation

Rev

Rev 1828 | Rev 1830 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed

Rev 1828 Rev 1829
Line 668... Line 668...
668
        StdCan_Ret_direction(rxMsg->Header) == DIRECTIONFLAG_TO_OWNER &&
668
        StdCan_Ret_direction(rxMsg->Header) == DIRECTIONFLAG_TO_OWNER &&
669
        rxMsg->Header.ModuleType == CAN_MODULE_TYPE_SNS_IRTRANSCEIVE &&
669
        rxMsg->Header.ModuleType == CAN_MODULE_TYPE_SNS_IRTRANSCEIVE &&
670
        rxMsg->Header.ModuleId == sns_irTransceive_ID)
670
        rxMsg->Header.ModuleId == sns_irTransceive_ID)
671
    {
671
    {
672
        uint8_t channel;
672
        uint8_t channel;
-
 
673
        uint8_t length = rxMsg->Length;
673
        switch (rxMsg->Header.Command)
674
        switch (rxMsg->Header.Command)
674
        {
675
        {
675
#if IR_TX_ENABLE==1
676
#if IR_TX_ENABLE==1
676
        case CAN_MODULE_CMD_PHYSICAL_IR:
677
        case CAN_MODULE_CMD_PHYSICAL_IR:
677
            channel = rxMsg->Data[0]>>4;
678
            channel = rxMsg->Data[0]>>4;
Line 698... Line 699...
698
                {
699
                {
699
                    irTxChannel[channel].stopSend = TRUE;
700
                    irTxChannel[channel].stopSend = TRUE;
700
                }
701
                }
701
            }
702
            }
702
            break;
703
            break;
-
 
704
       
-
 
705
        /* TODO: add struct which stores pronto info:
-
 
706
        channel, pronto receive state, buffer length of once burst pairs, buffer length of repeat burst pairs */
-
 
707
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTOSTART:
-
 
708
            /* TODO: check pronto state, response is different if already sending data */
-
 
709
            if (((rxMsg->Data[0]&0xf) == 0) && rxMsg->Data[1] == 0)
-
 
710
            {
-
 
711
                uint8_t channel = (rxMsg->Data[0]>>4)&0xf;
-
 
712
                /* TODO: add channel to pronto struct */
-
 
713
                /* TODO: find freqdiv, number of once burst pairs, number of repeat burst pairs */
-
 
714
                uint8_t modfreq;
-
 
715
                uint8_t oncebursts;
-
 
716
                uint8_t repeatbursts;
-
 
717
                /* TODO: add to pronto struct */
-
 
718
            }
-
 
719
           
-
 
720
            /* TODO: Send response frame */
-
 
721
            break;
-
 
722
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTOSTOP:
-
 
723
            /* TODO: stop sending IR */
-
 
724
           
-
 
725
            /* TODO: Send response frame */
-
 
726
            break;
-
 
727
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTOCONTINUE:
-
 
728
            /* TODO: reset timeout to continue sending repeat sequences */
-
 
729
           
-
 
730
            /* TODO: Send response frame */
-
 
731
            break;
-
 
732
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTODATA1:  /* Fall through */
-
 
733
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTODATA2:  /* Fall through */
-
 
734
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTODATA3:  /* Fall through */
-
 
735
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTODATA4:  /* Fall through */
-
 
736
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTODATA5:  /* Fall through */
-
 
737
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTODATA6:  /* Fall through */
-
 
738
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTODATA7:  /* Fall through */
-
 
739
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTODATA8:  /* Fall through */
-
 
740
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTODATA9:  /* Fall through */
-
 
741
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTODATA10: /* Fall through */
-
 
742
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTODATA11: /* Fall through */
-
 
743
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTODATA12: /* Fall through */
-
 
744
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTODATA13: /* Fall through */
-
 
745
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTODATA14: /* Fall through */
-
 
746
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTODATA15: /* Fall through */
-
 
747
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTODATA16: /* Fall through */
-
 
748
            ; /* Added to avoid compilation error "a label can only be part of a statement ..." */
-
 
749
            uint8_t dataindex = rxMsg->Header.Command - CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTODATA1;
-
 
750
            for (uint8_t i=0; i<length; i++)
-
 
751
            {
-
 
752
                /* TODO: pack data into buffer irTxChannel[channel].txbuf */
-
 
753
            }
-
 
754
            break;
-
 
755
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTOEND1:   /* Fall through */
-
 
756
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTOEND2:   /* Fall through */
-
 
757
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTOEND3:   /* Fall through */
-
 
758
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTOEND4:   /* Fall through */
-
 
759
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTOEND5:   /* Fall through */
-
 
760
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTOEND6:   /* Fall through */
-
 
761
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTOEND7:   /* Fall through */
-
 
762
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTOEND8:   /* Fall through */
-
 
763
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTOEND9:   /* Fall through */
-
 
764
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTOEND10:  /* Fall through */
-
 
765
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTOEND11:  /* Fall through */
-
 
766
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTOEND12:  /* Fall through */
-
 
767
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTOEND13:  /* Fall through */
-
 
768
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTOEND14:  /* Fall through */
-
 
769
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTOEND15:  /* Fall through */
-
 
770
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTOEND16:  /* Fall through */
-
 
771
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTOEND17:  /* Fall through */
-
 
772
            ; /* Added to avoid compilation error "a label can only be part of a statement ..." */
-
 
773
            uint8_t endindex = rxMsg->Header.Command - CAN_MODULE_CMD_IRTRANSCEIVE_IRPRONTOEND1;
-
 
774
            /* TODO: pack data, if any, into buffer irTxChannel[channel].txbuf */
-
 
775
 
-
 
776
            /* TODO: Last byte contains once/repeat information */
-
 
777
           
-
 
778
            /* TODO: Send response frame */
-
 
779
           
-
 
780
            /* TODO: start transmitt ir! */
-
 
781
            break;
-
 
782
 
-
 
783
/* TODO: In IR state machine add sending a response frame when ir stops sending, also implement pronto repeat */
703
#endif
784
#endif
704
       
785
       
705
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRCONFIG:
786
        case CAN_MODULE_CMD_IRTRANSCEIVE_IRCONFIG:
706
            channel = rxMsg->Data[0]>>4;
787
            channel = rxMsg->Data[0]>>4;
707
            uint8_t config = rxMsg->Data[0] & 0x0f;
788
            uint8_t config = rxMsg->Data[0] & 0x0f;