X-Git-Url: http://git.droids-corp.org/?p=protos%2Fxbee-avr.git;a=blobdiff_plain;f=main.h;h=18ddf0514d8c19c763a1599512b4e68b717b6dfc;hp=4ed5259d85bac22aa1612f23ab51e925434a585e;hb=49ab9eea94ed30f2b1ea6c731c2d42ac32d9650e;hpb=d6014994e06ebe952d51bef2e36a795f624c4b4d diff --git a/main.h b/main.h index 4ed5259..18ddf05 100644 --- a/main.h +++ b/main.h @@ -25,25 +25,46 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include "cmdline.h" +#include "rc_proto.h" +#include "spi_servo.h" + #define NB_LOGS 4 /** ERROR NUMS */ #define E_USER_DEFAULT 194 -#define LED1_ON() sbi(PORTE, 2) -#define LED1_OFF() cbi(PORTE, 2) +#define LED1_ON() sbi(PORTA, 2) +#define LED1_OFF() cbi(PORTA, 2) -#define LED2_ON() sbi(PORTE, 3) -#define LED2_OFF() cbi(PORTE, 3) +#define LED2_ON() sbi(PORTA, 1) +#define LED2_OFF() cbi(PORTA, 1) -#define LED3_ON() sbi(PORTB, 3) -#define LED3_OFF() cbi(PORTB, 3) +#define LED3_ON() sbi(PORTA, 0) +#define LED3_OFF() cbi(PORTA, 0) -#define LED4_ON() sbi(PORTB, 4) -#define LED4_OFF() cbi(PORTB, 4) +#define BUZZER_ON() sbi(PORTA, 4) +#define BUZZER_OFF() cbi(PORTA, 4) -#define LED_PRIO 170 -#define TIME_PRIO 160 +/* highest priority */ +#define LED_PRIO 160 +#define TIME_PRIO 140 +#define BEEP_PRIO 120 +#define SPI_PRIO 100 /* users of spi_servo must have lower prio */ +#define XBEE_PRIO 80 +/* lowest priority */ #define MAX_POWER_LEVEL 5 /* generic to all boards */ @@ -52,6 +73,12 @@ struct xbeeboard { struct rdline rdl; char prompt[RDLINE_PROMPT_SIZE]; + struct callout_mgr mainloop_cm; + struct callout_mgr intr_cm; + struct callout spi_timer; + struct callout beep_timer; + struct callout xbee_rx_poll_timer; + /* log */ uint8_t logs[NB_LOGS+1]; uint8_t log_level; @@ -59,41 +86,6 @@ struct xbeeboard { }; extern struct xbeeboard xbeeboard; - -/* used for timeouts and xbee rx callback */ -struct xbee_ctx { - int foreground; - int channel; - char atcmd_query[2]; - int (*func)(void *frame, unsigned len, void *arg); - void *arg; - struct callout timeout; -}; - -//extern cmdline_parse_ctx_t main_ctx; -extern struct xbee_dev *xbee_dev; -extern int xbee_raw; -extern int xbee_hexdump; -extern int xbee_debug; - -extern struct callout_manager cm; - +extern volatile uint32_t global_ms; void bootloader(void); - -void xbee_rx(struct xbee_dev *dev, int channel, int type, - void *frame, unsigned len, void *opaque); -int xbeeapp_send_atcmd(const char *atcmd_str, - void *param, unsigned param_len, int foreground, - int (*func)(void *frame, unsigned len, void *arg), - void *arg); -int xbeeapp_send_msg(uint64_t addr, void *data, - unsigned data_len, int foreground); - -void xbee_stdin_enable(void); -void xbee_stdin_disable(void); - -void xbee_load_timeout(struct xbee_ctx *ctx); -void xbee_unload_timeout(struct xbee_ctx *ctx); - -void xbee_mainloop(void);