Exemplo n.º 1
0
/******************************************************************************
 *############################################################################*
 *#                            Private functions                             #*
 *############################################################################*
 ******************************************************************************/
static void
datasCallback(Var datas)
{
    VarValidator valid;
    Var v;
    VarArrayPos i;
    Light l;
    
    flockingClear();
    PtrArray_clear(_lights);
    
    valid = VarValidator_new();
    
    VarValidator_declareArrayVar(valid, "flocks");
    VarValidator_declareArrayVar(valid, "thunderbolts");
    VarValidator_declareArrayVar(valid, "skybox");
    VarValidator_declareArrayVar(valid, "lights");
    
    VarValidator_validate(valid, datas);
    VarValidator_del(valid);
    
    /*flocks of boids*/
    v = Var_getArrayElemByCName(datas, "flocks");
    i = 0;
    while (i < Var_getArraySize(v))
    {
        flockingAddGroup(Var_getArrayElemByPos(v, i));
        i++;
    }

    /*thunderbolt parameters*/
    thunderboltSet(Var_getArrayElemByCName(datas, "thunderbolts"));
    
    /*skybox*/
    skyboxSet(Var_getArrayElemByCName(datas, "skybox"));
    
    /*global lights*/
    v = Var_getArrayElemByCName(datas, "lights");
    i = 0;
    while (i < Var_getArraySize(v))
    {
        l = lightAdd();
        lightSetFromVar(l, Var_getArrayElemByPos(v, i));
        lightToggle(l, TRUE);
        i++;
        PtrArray_append(_lights, l);
    }
}
Exemplo n.º 2
0
void Insteon::switch_callback(RESTContext* context)
{
    RESTParameters* params = context->params;
    Dumais::JSON::JSON& json = context->returnData;
    InsteonID id = strtoul(params->getParam("id").c_str(),0,16);
    unsigned char subdev = 0;
    if (params->getParam("subdev")!="")
    {
        subdev = strtoul(params->getParam("subdev").c_str(),0,10);
    }

    if (params->getParam("action")=="on"){
        unsigned char level =255;
        if (params->getParam("level")!="") level = atoi(params->getParam("level").c_str());
        if (params->getParam("rate")!="") level = atoi(params->getParam("rate").c_str());
        lightOn(id,level,subdev);
    } else if (params->getParam("action")=="off"){
        lightOff(id,subdev);
    } else if (params->getParam("action")=="toggle"){
        lightToggle(id,subdev);    
    }
    json.addValue("ok","status");
}