Subversion Repositories HomeAutomation

Rev

Rev 1975 | Blame | Compare with Previous | Last modification | View Log | SVN | RSS feed

  1. #ifndef SNS_IRTRANSCEIVE
  2. #define SNS_IRTRANSCEIVE
  3.  
  4. /*-----------------------------------------------------------------------------
  5.  * Includes
  6.  *---------------------------------------------------------------------------*/
  7. /* system files */
  8. #include <avr/io.h>
  9. #include <avr/interrupt.h>
  10. #include <stdio.h>
  11. /* lib files */
  12. #include <config.h>
  13. #include <bios.h>
  14. #include <drivers/can/stdcan.h>
  15. #include <drivers/timer/timer.h>
  16.  
  17. /* delay.h must be declared after F_CPU */
  18. #include <util/delay.h>
  19.  
  20. #include <drivers/mcu/gpio.h>
  21. #include <drivers/ir/transceiver/irtransceiverMulti.h>
  22. #include <drivers/ir/protocols.h>
  23. #include <drivers/io/PCA95xx.h>
  24.  
  25. void sns_irTransceive_Init(void);
  26. void sns_irTransceive_Process(void);
  27. void sns_irTransceive_HandleMessage(StdCan_Msg_t *rxMsg);
  28. void sns_irTransceive_List(uint8_t ModuleSequenceNumber);
  29.  
  30. #define sns_irTransceive_STATE_IDLE                     (0)
  31. #define sns_irTransceive_STATE_IR_REPEAT                (1)
  32. #define sns_irTransceive_STATE_START_RECEIVE            (2)
  33. #define sns_irTransceive_STATE_RECEIVING                (3)
  34. #define sns_irTransceive_STATE_START_PAUSE              (4)
  35. #define sns_irTransceive_STATE_PAUSING                  (5)
  36.  
  37. #define sns_irTransceive_STATE_START_TRANSMIT           (6)
  38. #define sns_irTransceive_STATE_PREPARING_PRONTO         (7)
  39. #define sns_irTransceive_STATE_START_TRANSMIT_PRONTO    (8)
  40. #define sns_irTransceive_STATE_PRONTO_REPEAT            (9)
  41.  
  42. #define sns_irTransceive_STATE_TRANSMITTING             (10)
  43.  
  44.  
  45.  
  46.  
  47. #define sns_irTransceive_STATE_DISABLED         0xff
  48.  
  49. #if sns_irTransceive_TX0_PWRl_PCA95xx==1 | sns_irTransceive_TX0_PWRh_PCA95xx==1 | sns_irTransceive_TX1_PWRl_PCA95xx==1 | sns_irTransceive_TX1_PWRh_PCA95xx==1 | sns_irTransceive_TX2_PWRl_PCA95xx==1 | sns_irTransceive_TX2_PWRh_PCA95xx==1
  50. #define sns_irTransceive_ENABLE_PCA95xx 1
  51. #else
  52. #define sns_irTransceive_ENABLE_PCA95xx 0
  53. #endif
  54.  
  55. #ifndef sns_irTransceive_PRONTO_SUPPORT
  56. #define sns_irTransceive_PRONTO_SUPPORT 0
  57. #endif
  58.  
  59. #ifndef sns_irTransceive_USEEEPROM
  60. #define sns_irTransceive_USEEEPROM 0
  61. #endif
  62.  
  63. #if sns_irTransceive_USEEEPROM==1
  64.     struct sns_irTransceive_Data{
  65.         uint8_t ch0_config;
  66.         uint8_t ch0_txpower;
  67.         uint16_t ch0_modfreq;
  68.         uint8_t ch1_config;
  69.         uint8_t ch1_txpower;
  70.         uint16_t ch1_modfreq;
  71.         uint8_t ch2_config;
  72.         uint8_t ch2_txpower;
  73.         uint16_t ch2_modfreq;
  74.     }; 
  75. #endif
  76.  
  77.  
  78. #define TRUE 1
  79. #define FALSE 0
  80.  
  81. #endif // SNS_IRTRANSCEIVE
  82.