X-Git-Url: http://git.droids-corp.org/?p=protos%2Fxbee-avr.git;a=blobdiff_plain;f=main.h;h=7ee9ed7df139aa48df5d6e7beb42810ba9cb4bbb;hp=617628e922ac47f1659a15dbc24f620bf25683a0;hb=HEAD;hpb=a4e51d8b2a5b13308d314aaf72e58672346dfb1f diff --git a/main.h b/main.h index 617628e..7ee9ed7 100644 --- a/main.h +++ b/main.h @@ -25,10 +25,29 @@ * 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 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) @@ -39,8 +58,18 @@ #define LED3_ON() sbi(PORTA, 0) #define LED3_OFF() cbi(PORTA, 0) -#define LED_PRIO 170 -#define TIME_PRIO 160 +#define BUZZER_ON() sbi(PORTA, 4) +#define BUZZER_OFF() cbi(PORTA, 4) + +/* 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 +#define I2C_PRIO 70 +#define LOW_PRIO 60 +/* lowest priority */ #define MAX_POWER_LEVEL 5 /* generic to all boards */ @@ -49,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; @@ -56,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); - -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); +uint16_t get_time_ms(void);