/* * Copyright (C) 2006 BLADOX, s.r.o. All rights reserved. * * This file is part of an example program for Turbo. This example * program may be used, distributed and modified without limitation. * */ #include <config.h> #include <turbo/turbo.h> #include <stdlib.h> u8 PROGMEM t_bra_tag[] = "led"; u8 PROGMEM t_No_Link[] = "No Link"; u8 PROGMEM t_OK[] = "OK"; /* *INDENT-OFF* */ lc_char PROGMEM lc_Led[]={ LC_EN("Led") LC_END }; lc_char PROGMEM lc_On[]={ LC_EN("On") LC_END }; lc_char PROGMEM lc_Off[]={ LC_EN("Off") LC_END }; /* *INDENT-ON* */ u8 led_on (SCtx * ctx, u8 action) { if (action == APP_ENTER) { u8 *r = buf_A (); u8 l; r = bra_make_head (r, NULL, t_bra_tag, 1); *r++ = 0x01; //ON l = bra_txrx (buf_A (), r - buf_A (), t_bra_tag, 30, 1, 10); if (l > 0) r = display_text_raw (t_OK, Q_DISPLAY_TEXT_USER_CLEAR); else display_text_raw (t_No_Link, Q_DISPLAY_TEXT_USER_CLEAR); return APP_BACK; } return APP_OK; } u8 led_off (SCtx * ctx, u8 action) { if (action == APP_ENTER) { u8 *r = buf_A (); u8 l; r = bra_make_head (r, NULL, t_bra_tag, 1); *r++ = 0x00; //OFF l = bra_txrx (buf_A (), r - buf_A (), t_bra_tag, 30, 1, 10); if (l > 0) r = display_text_raw (t_OK, Q_DISPLAY_TEXT_USER_CLEAR); else display_text_raw (t_No_Link, Q_DISPLAY_TEXT_USER_CLEAR); return APP_BACK; } return APP_OK; } SNodeP led_n = { lc_Led, NULL }; SNodeP led_on_n = { lc_On, led_on }; SNodeP led_off_n = { lc_Off, led_off }; /* *INDENT-OFF* */ SEdgeP led_edges_p[] = { {&led_n, &led_on_n}, {&led_n, &led_off_n}, NULL }; /* *INDENT-ON* */ void action_menu (void *data) { SCtx *c; c = spider_init (); c->n = &led_n; c->eP = &led_edges_p; spider (c); } void turbo_handler (u8 action, void *data) { switch (action) { case ACTION_INSERT_MENU: insert_menu (locale (lc_Led)); break; case ACTION_MENU_SELECTION: stk_thread (action_menu, data); break; default: break; } }
Copyright © 2004-2006 BLADOX | Turbo version 1.2
|