| | |
| | | |
| | | #include "hal.h" |
| | | |
| | | int hal_init(void) |
| | | /* LED_R LED_G LED_B */ |
| | | static int led_pin[LED_MAX] = { 0,0,0 }; |
| | | static int relay_pin = 0; |
| | | |
| | | void init_relay(int pin); |
| | | void init_led(int redpin, int greenpin, int bluepin); |
| | | |
| | | int hal_init(hwconf_t *hwconf) |
| | | { |
| | | if( !hwconf->enable ) |
| | | { |
| | | log_err("All hardware modules are disabled, skip initialise HAL.\n"); |
| | | return 0; |
| | | } |
| | | |
| | | wiringPiSetup(); |
| | | |
| | | init_led(); |
| | | init_relay(); |
| | | if( hwconf->leds ) |
| | | init_led(hwconf->redled, hwconf->greenled, hwconf->blueled); |
| | | |
| | | #if 0 |
| | | if( sht2x_init() < 0 ) |
| | | if(hwconf->relay) |
| | | init_relay(hwconf->relay); |
| | | |
| | | if( hwconf->sht2x && sht2x_init() < 0 ) |
| | | { |
| | | log_err("Initialise SHT20 failure\n"); |
| | | return -2; |
| | | return -1; |
| | | } |
| | | #endif |
| | | |
| | | return 0; |
| | | } |
| | | |
| | | void init_led(int redpin, int greenpin, int bluepin) |
| | | { |
| | | int i; |
| | | |
| | | led_pin[LED_R]=redpin; |
| | | led_pin[LED_G]=greenpin; |
| | | led_pin[LED_B]=bluepin; |
| | | |
| | | for(i=0; i<LED_MAX; i++) |
| | | { |
| | | if(led_pin[i]) |
| | | pinMode(led_pin[i], OUTPUT ); |
| | | } |
| | | } |
| | | |
| | | int turn_led(int which, int cmd) |
| | | { |
| | | if( which<0 || which>=LED_MAX ) |
| | | return -1; |
| | | |
| | | if( OFF == cmd ) |
| | | { |
| | | if(led_pin[which]) |
| | | digitalWrite (led_pin[which], LOW); |
| | | } |
| | | else |
| | | { |
| | | if(led_pin[which]) |
| | | digitalWrite (led_pin[which], HIGH); |
| | | } |
| | | |
| | | return 0; |
| | | } |
| | | |
| | | |
| | | void init_relay(int pin) |
| | | { |
| | | relay_pin = pin; |
| | | pinMode(relay_pin, OUTPUT); |
| | | } |
| | | |
| | | |
| | | void turn_relay(int cmd) |
| | | { |
| | | if( OFF == cmd ) |
| | | { |
| | | digitalWrite ( relay_pin, LOW ); |
| | | } |
| | | else |
| | | { |
| | | digitalWrite ( relay_pin, HIGH ); |
| | | } |
| | | } |
| | | |
| | | |