Exemplo n.º 1
0
void prepare_data( RTC_Clock clock)
{	 
	power_screen(true);
	display_clear();
	show_picture(15, 30, IMAGE_LOGO);
//	get_up_config();
	get_down_config();
//	get_gen_config();
	get_relation();
	get_base();
	get_act();
	get_step();
	get_position();
	get_event();		
}
Exemplo n.º 2
0
int
parse_gact(struct action_util *a, int *argc_p, char ***argv_p, int tca_id, struct nlmsghdr *n)
{
    int argc = *argc_p;
    char **argv = *argv_p;
    int ok = 0;
    int action = TC_POLICE_RECLASSIFY;
    struct tc_gact p;
#ifdef CONFIG_GACT_PROB
    int rd = 0;
    struct tc_gact_p pp;
#endif
    struct rtattr *tail;

    memset(&p, 0, sizeof (p));
    p.action = TC_POLICE_RECLASSIFY;

    if (argc < 0)
        return -1;


    if (matches(*argv, "gact") == 0) {
        ok++;
    } else {
        action = get_act(&argv);
        if (action != -10) {
            p.action = action;
            ok++;
        } else {
            explain();
            return action;
        }
    }

    if (ok) {
        argc--;
        argv++;
    }

#ifdef CONFIG_GACT_PROB
    if (ok && argc > 0) {
        if (matches(*argv, "random") == 0) {
            rd = 1;
            NEXT_ARG();
            if (matches(*argv, "netrand") == 0) {
                NEXT_ARG();
                pp.ptype = PGACT_NETRAND;
            } else if  (matches(*argv, "determ") == 0) {
                NEXT_ARG();
                pp.ptype = PGACT_DETERM;
            } else {
                fprintf(stderr, "Illegal \"random type\"\n");
                return -1;
            }

            action = get_act(&argv);
            if (action != -10) { /* FIXME */
                pp.paction = action;
            } else {
                explain();
                return -1;
            }
            argc--;
            argv++;
            if (get_u16(&pp.pval, *argv, 10)) {
                fprintf(stderr, "Illegal probability val 0x%x\n",pp.pval);
                return -1;
            }
            if (pp.pval > 10000) {
                fprintf(stderr, "Illegal probability val  0x%x\n",pp.pval);
                return -1;
            }
            argc--;
            argv++;
        }
    }
#endif

    if (argc > 0) {
        if (matches(*argv, "index") == 0) {
            NEXT_ARG();
            if (get_u32(&p.index, *argv, 10)) {
                fprintf(stderr, "Illegal \"index\"\n");
                return -1;
            }
            argc--;
            argv++;
            ok++;
        }
    }

    if (!ok)
        return -1;

    tail = NLMSG_TAIL(n);
    addattr_l(n, MAX_MSG, tca_id, NULL, 0);
    addattr_l(n, MAX_MSG, TCA_GACT_PARMS, &p, sizeof (p));
#ifdef CONFIG_GACT_PROB
    if (rd) {
        addattr_l(n, MAX_MSG, TCA_GACT_PROB, &pp, sizeof (pp));
    }
#endif
    tail->rta_len = (void *) NLMSG_TAIL(n) - (void *) tail;

    *argc_p = argc;
    *argv_p = argv;
    return 0;
}