X-Git-Url: http://git.droids-corp.org/?p=protos%2Fxbee-avr.git;a=blobdiff_plain;f=main.h;h=7ee9ed7df139aa48df5d6e7beb42810ba9cb4bbb;hp=1ad2c0b901b70738ecb133c3606a325403a72eb4;hb=HEAD;hpb=04735ee519979e772e94824304111369f6d01f2b diff --git a/main.h b/main.h index 1ad2c0b..7ee9ed7 100644 --- a/main.h +++ b/main.h @@ -31,24 +31,23 @@ #include #include -#include -#include #include #include #include #include +#include #include "cmdline.h" -#include "callout.h" #include "rc_proto.h" #include "spi_servo.h" -extern volatile uint16_t global_ms; - #define NB_LOGS 4 /** ERROR NUMS */ #define E_USER_DEFAULT 194 +#define E_USER_XBEE 195 +#define E_USER_RC_PROTO 196 +#define E_USER_I2C_PROTO 197 #define LED1_ON() sbi(PORTA, 2) #define LED1_OFF() cbi(PORTA, 2) @@ -63,10 +62,13 @@ extern volatile uint16_t global_ms; #define BUZZER_OFF() cbi(PORTA, 4) /* highest priority */ -#define LED_PRIO 170 -#define TIME_PRIO 160 -#define BEEP_PRIO 130 +#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 +#define I2C_PRIO 70 +#define LOW_PRIO 60 /* lowest priority */ #define MAX_POWER_LEVEL 5 @@ -76,6 +78,8 @@ struct xbeeboard { struct rdline rdl; char prompt[RDLINE_PROMPT_SIZE]; + struct callout_mgr intr_cm; + /* log */ uint8_t logs[NB_LOGS+1]; uint8_t log_level; @@ -83,41 +87,7 @@ 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); - -int8_t xbeeapp_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); +uint16_t get_time_ms(void);