beep when GPS ready
[protos/xbee-avr.git] / main.h
diff --git a/main.h b/main.h
index 1ad2c0b..7ee9ed7 100644 (file)
--- a/main.h
+++ b/main.h
 #include <aversive/error.h>
 
 #include <uart.h>
-#include <scheduler.h>
-#include <clock_time.h>
 #include <parse.h>
 #include <rdline.h>
 #include <timer.h>
 #include <xbee.h>
+#include <callout.h>
 
 #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);