nes-proj/cart/cart.c

52 lines
1.2 KiB
C
Raw Permalink Normal View History

2019-04-11 15:46:54 +00:00
#include <stdio.h>
#include <string.h>
#include "../common/supermarket_net.h"
#include "batmon.h"
2019-04-11 15:46:54 +00:00
#include "event.h"
#include "log.h"
#include "sendrecv.h"
2019-04-12 12:56:37 +00:00
#include "status.h"
2019-04-11 15:46:54 +00:00
PROCESS(cart_main_process, "Cart Process");
AUTOSTART_PROCESSES(&cart_main_process);
PROCESS_THREAD(cart_main_process, ev, data) {
PROCESS_BEGIN();
/*** Variables initialization ***/
2019-05-25 09:27:33 +00:00
status = NOT_ASSOCIATED;
/*** Timer initialization ***/
etimer_set(&assigner_timer, 5 * CLOCK_SECOND);
etimer_set(&battery_timer, 10 * CLOCK_SECOND);
2019-04-11 15:46:54 +00:00
2019-04-12 12:56:37 +00:00
/*** Subsystem initialization ***/
net_init();
2019-04-11 15:46:54 +00:00
2019-04-12 12:56:37 +00:00
/* START */
2019-04-11 15:46:54 +00:00
printf("Hello! I'm the cart.\n");
while (true) {
PROCESS_WAIT_EVENT();
if (ev == PROCESS_EVENT_TIMER && etimer_expired(&battery_timer)) batmon();
2019-04-11 15:46:54 +00:00
switch(status) {
case NOT_ASSOCIATED: s_not_associated(ev, data); break;
case ASSOCIATED: s_associated(ev, data); break;
case SHOPPING: s_shopping(ev, data); break;
case CASH_OUT_WAIT4ACK: s_cash_out_wait4ack(ev, data); break;
case CASH_OUT_SEND_LIST: s_cash_out_send_list(ev, data); break;
default:
printf("[E] Invalid status. Resetting status.\n");
status = NOT_ASSOCIATED;
2019-04-12 14:30:05 +00:00
break;
2019-04-11 15:46:54 +00:00
}
}
PROCESS_END();
}