#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"
/** ERROR NUMS */
#define E_USER_DEFAULT 194
+#define E_USER_XBEE 195
+#define E_USER_RC_PROTO 196
#define LED1_ON() sbi(PORTA, 2)
#define LED1_OFF() cbi(PORTA, 2)
#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 LOW_PRIO 60
/* lowest priority */
#define MAX_POWER_LEVEL 5
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;
/* log */
uint8_t logs[NB_LOGS+1];
};
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 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);