Subversion Repositories HomeAutomation

Rev

Rev 1835 | Rev 1975 | Go to most recent revision | 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. #define sns_irTransceive_STATE_START_IDLE               (6)
  37.  
  38. #define sns_irTransceive_STATE_START_TRANSMIT           (7)
  39. #define sns_irTransceive_STATE_PREPARING_PRONTO         (8)
  40. #define sns_irTransceive_STATE_START_TRANSMIT_PRONTO    (9)
  41. #define sns_irTransceive_STATE_PRONTO_REPEAT            (10)
  42.  
  43. #define sns_irTransceive_STATE_TRANSMITTING             (11)
  44.  
  45.  
  46.  
  47.  
  48. #define sns_irTransceive_STATE_DISABLED         0xff
  49.  
  50. #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
  51. #define sns_irTransceive_ENABLE_PCA95xx 1
  52. #else
  53. #define sns_irTransceive_ENABLE_PCA95xx 0
  54. #endif
  55.  
  56. #ifdef sns_irTransceive_USEEEPROM
  57.     struct sns_irTransceive_Data{
  58.         uint8_t ch0_config;
  59.         uint8_t ch0_txpower;
  60.         uint16_t ch0_modfreq;
  61.         uint8_t ch1_config;
  62.         uint8_t ch1_txpower;
  63.         uint16_t ch1_modfreq;
  64.         uint8_t ch2_config;
  65.         uint8_t ch2_txpower;
  66.         uint16_t ch2_modfreq;
  67.     }; 
  68. #endif
  69.  
  70.  
  71. #define TRUE 1
  72. #define FALSE 0
  73.  
  74. #endif // SNS_IRTRANSCEIVE
  75.