Esempio n. 1
0
YFileRecord::YFileRecord(const string& json)
{
    yJsonStateMachine j;
    
    // Parse JSON data 
    j.src = json.c_str();
    j.end = j.src + strlen(j.src);
    j.st = YJSON_START;
    if(yJsonParse(&j) != YJSON_PARSE_AVAIL || j.st != YJSON_PARSE_STRUCT) {
        return ;
    }
    while(yJsonParse(&j) == YJSON_PARSE_AVAIL && j.st == YJSON_PARSE_MEMBNAME) {
        if (!strcmp(j.token, "name")) {
            if (yJsonParse(&j) != YJSON_PARSE_AVAIL) {
                return ;
            }
            _name = (string)j.token;
            while(j.next == YJSON_PARSE_STRINGCONT && yJsonParse(&j) == YJSON_PARSE_AVAIL) {
                _name =(string)j.token;
            }
        } else if(!strcmp(j.token, "crc")) {
            if (yJsonParse(&j) != YJSON_PARSE_AVAIL) {
                return;
            }
            _crc = atoi(j.token);;
        } else if(!strcmp(j.token, "size")) {
            if (yJsonParse(&j) != YJSON_PARSE_AVAIL) {
                return;
            }
            _size = atoi(j.token);;
        } else {
            yJsonSkip(&j, 1);
        }
    }
}
Esempio n. 2
0
int YLed::_parse(yJsonStateMachine& j)
{
    if(yJsonParse(&j) != YJSON_PARSE_AVAIL || j.st != YJSON_PARSE_STRUCT) {
    failed:
        return -1;
    }
    while(yJsonParse(&j) == YJSON_PARSE_AVAIL && j.st == YJSON_PARSE_MEMBNAME) {
        if(!strcmp(j.token, "logicalName")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _logicalName =  _parseString(j);
        } else if(!strcmp(j.token, "advertisedValue")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _advertisedValue =  _parseString(j);
        } else if(!strcmp(j.token, "power")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _power =  (Y_POWER_enum)atoi(j.token);
        } else if(!strcmp(j.token, "luminosity")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _luminosity =  atoi(j.token);
        } else if(!strcmp(j.token, "blinking")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _blinking =  (Y_BLINKING_enum)atoi(j.token);
        } else {
            // ignore unknown field
            yJsonSkip(&j, 1);
        }
    }
    if(j.st != YJSON_PARSE_STRUCT) goto failed;
    return 0;
}
Esempio n. 3
0
int YDisplay::_parse(yJsonStateMachine& j)
{
    if(yJsonParse(&j) != YJSON_PARSE_AVAIL || j.st != YJSON_PARSE_STRUCT) {
    failed:
        return -1;
    }
    while(yJsonParse(&j) == YJSON_PARSE_AVAIL && j.st == YJSON_PARSE_MEMBNAME) {
        if(!strcmp(j.token, "logicalName")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _logicalName =  _parseString(j);
        } else if(!strcmp(j.token, "advertisedValue")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _advertisedValue =  _parseString(j);
        } else if(!strcmp(j.token, "powerState")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _powerState =  (Y_POWERSTATE_enum)atoi(j.token);
        } else if(!strcmp(j.token, "startupSeq")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _startupSeq =  _parseString(j);
        } else if(!strcmp(j.token, "brightness")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _brightness =  atoi(j.token);
        } else if(!strcmp(j.token, "orientation")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _orientation =  (Y_ORIENTATION_enum)atoi(j.token);
        } else if(!strcmp(j.token, "displayWidth")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _displayWidth =  atoi(j.token);
        } else if(!strcmp(j.token, "displayHeight")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _displayHeight =  atoi(j.token);
        } else if(!strcmp(j.token, "displayType")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _displayType =  (Y_DISPLAYTYPE_enum)atoi(j.token);
        } else if(!strcmp(j.token, "layerWidth")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _layerWidth =  atoi(j.token);
        } else if(!strcmp(j.token, "layerHeight")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _layerHeight =  atoi(j.token);
        } else if(!strcmp(j.token, "layerCount")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _layerCount =  atoi(j.token);
        } else if(!strcmp(j.token, "command")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _command =  _parseString(j);
        } else {
            // ignore unknown field
            yJsonSkip(&j, 1);
        }
    }
    if(j.st != YJSON_PARSE_STRUCT) goto failed;
    return 0;
}
Esempio n. 4
0
int YRelay::_parse(yJsonStateMachine& j)
{
    if(yJsonParse(&j) != YJSON_PARSE_AVAIL || j.st != YJSON_PARSE_STRUCT) {
    failed:
        return -1;
    }
    while(yJsonParse(&j) == YJSON_PARSE_AVAIL && j.st == YJSON_PARSE_MEMBNAME) {
        if(!strcmp(j.token, "logicalName")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _logicalName =  _parseString(j);
        } else if(!strcmp(j.token, "advertisedValue")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _advertisedValue =  _parseString(j);
        } else if(!strcmp(j.token, "state")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _state =  (Y_STATE_enum)atoi(j.token);
        } else if(!strcmp(j.token, "output")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _output =  (Y_OUTPUT_enum)atoi(j.token);
        } else if(!strcmp(j.token, "pulseTimer")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _pulseTimer =  atoi(j.token);
        } else if(!strcmp(j.token, "delayedPulseTimer")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            if(j.st != YJSON_PARSE_STRUCT) goto failed;
            while(yJsonParse(&j) == YJSON_PARSE_AVAIL && j.st == YJSON_PARSE_MEMBNAME) {
                if(!strcmp(j.token, "moving")) {
                    if(yJsonParse(&j) != YJSON_PARSE_AVAIL) goto failed;
                    _delayedPulseTimer.moving = atoi(j.token);
                } else if(!strcmp(j.token, "target")) {
                    if(yJsonParse(&j) != YJSON_PARSE_AVAIL) goto failed;
                    _delayedPulseTimer.target = atoi(j.token);
                } else if(!strcmp(j.token, "ms")) {
                    if(yJsonParse(&j) != YJSON_PARSE_AVAIL) goto failed;
                    _delayedPulseTimer.ms = atoi(j.token);
                }
            }
            if(j.st != YJSON_PARSE_STRUCT) goto failed; 
            
        } else if(!strcmp(j.token, "countdown")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _countdown =  atoi(j.token);
        } else {
            // ignore unknown field
            yJsonSkip(&j, 1);
        }
    }
    if(j.st != YJSON_PARSE_STRUCT) goto failed;
    return 0;
}
Esempio n. 5
0
YWlanRecord::YWlanRecord(const string& json):_ssid(""),_channel(-1),_sec(""),_rssi(-1)
{
    yJsonStateMachine j;
    
    // Parse JSON data 
    j.src = json.c_str();
    j.end = j.src + strlen(j.src);
    j.st = YJSON_START;
    if(yJsonParse(&j) != YJSON_PARSE_AVAIL || j.st != YJSON_PARSE_STRUCT) {
        return ;
    }
    while(yJsonParse(&j) == YJSON_PARSE_AVAIL && j.st == YJSON_PARSE_MEMBNAME) {
        if (!strcmp(j.token, "ssid")) {
            if (yJsonParse(&j) != YJSON_PARSE_AVAIL) {
                return ;
            }
            _ssid = (string)j.token;
            while(j.next == YJSON_PARSE_STRINGCONT && yJsonParse(&j) == YJSON_PARSE_AVAIL) {
                _ssid +=(string)j.token;
            }
        }else if (!strcmp(j.token, "sec")) {
            if (yJsonParse(&j) != YJSON_PARSE_AVAIL) {
                return ;
            }
            _sec = (string)j.token;
            while(j.next == YJSON_PARSE_STRINGCONT && yJsonParse(&j) == YJSON_PARSE_AVAIL) {
                _sec +=(string)j.token;
            }
        } else if(!strcmp(j.token, "channel")) {
            if (yJsonParse(&j) != YJSON_PARSE_AVAIL) {
                return;
            }
            _channel = atoi(j.token);;
        } else if(!strcmp(j.token, "rssi")) {
            if (yJsonParse(&j) != YJSON_PARSE_AVAIL) {
                return;
            }
            _rssi = atoi(j.token);;
        } else {
            yJsonSkip(&j, 1);
        }
    }
}
Esempio n. 6
0
int YCurrent::_parse(yJsonStateMachine& j)
{
    if(yJsonParse(&j) != YJSON_PARSE_AVAIL || j.st != YJSON_PARSE_STRUCT) {
    failed:
        return -1;
    }
    while(yJsonParse(&j) == YJSON_PARSE_AVAIL && j.st == YJSON_PARSE_MEMBNAME) {
        if(!strcmp(j.token, "logicalName")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _logicalName =  _parseString(j);
        } else if(!strcmp(j.token, "advertisedValue")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _advertisedValue =  _parseString(j);
        } else if(!strcmp(j.token, "unit")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _unit =  _parseString(j);
        } else if(!strcmp(j.token, "currentValue")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _currentValue =  floor(atof(j.token)/65536.0+.5);
        } else if(!strcmp(j.token, "lowestValue")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _lowestValue =  floor(atof(j.token)/65536.0+.5);
        } else if(!strcmp(j.token, "highestValue")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _highestValue =  floor(atof(j.token)/65536.0+.5);
        } else if(!strcmp(j.token, "currentRawValue")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _currentRawValue =  atof(j.token)/65536.0;
        } else if(!strcmp(j.token, "calibrationParam")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _calibrationParam =  _parseString(j);
        } else if(!strcmp(j.token, "resolution")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _resolution =  (atoi(j.token) > 100 ? 1.0 / floor(65536.0/atof(j.token)+.5) : 0.001 / floor(67.0/atof(j.token)+.5));
        } else {
            // ignore unknown field
            yJsonSkip(&j, 1);
        }
    }
    if(j.st != YJSON_PARSE_STRUCT) goto failed;
    return 0;
}
Esempio n. 7
0
int YNetwork::_parse(yJsonStateMachine& j)
{
    if(yJsonParse(&j) != YJSON_PARSE_AVAIL || j.st != YJSON_PARSE_STRUCT) {
    failed:
        return -1;
    }
    while(yJsonParse(&j) == YJSON_PARSE_AVAIL && j.st == YJSON_PARSE_MEMBNAME) {
        if(!strcmp(j.token, "logicalName")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _logicalName =  _parseString(j);
        } else if(!strcmp(j.token, "advertisedValue")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _advertisedValue =  _parseString(j);
        } else if(!strcmp(j.token, "readiness")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _readiness =  (Y_READINESS_enum)atoi(j.token);
        } else if(!strcmp(j.token, "macAddress")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _macAddress =  _parseString(j);
        } else if(!strcmp(j.token, "ipAddress")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _ipAddress =  _parseString(j);
        } else if(!strcmp(j.token, "subnetMask")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _subnetMask =  _parseString(j);
        } else if(!strcmp(j.token, "router")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _router =  _parseString(j);
        } else if(!strcmp(j.token, "ipConfig")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _ipConfig =  _parseString(j);
        } else if(!strcmp(j.token, "primaryDNS")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _primaryDNS =  _parseString(j);
        } else if(!strcmp(j.token, "secondaryDNS")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _secondaryDNS =  _parseString(j);
        } else if(!strcmp(j.token, "userPassword")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _userPassword =  _parseString(j);
        } else if(!strcmp(j.token, "adminPassword")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _adminPassword =  _parseString(j);
        } else if(!strcmp(j.token, "discoverable")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _discoverable =  (Y_DISCOVERABLE_enum)atoi(j.token);
        } else if(!strcmp(j.token, "wwwWatchdogDelay")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _wwwWatchdogDelay =  atoi(j.token);
        } else if(!strcmp(j.token, "callbackUrl")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _callbackUrl =  _parseString(j);
        } else if(!strcmp(j.token, "callbackMethod")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _callbackMethod =  (Y_CALLBACKMETHOD_enum)atoi(j.token);
        } else if(!strcmp(j.token, "callbackEncoding")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _callbackEncoding =  (Y_CALLBACKENCODING_enum)atoi(j.token);
        } else if(!strcmp(j.token, "callbackCredentials")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _callbackCredentials =  _parseString(j);
        } else if(!strcmp(j.token, "callbackMinDelay")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _callbackMinDelay =  atoi(j.token);
        } else if(!strcmp(j.token, "callbackMaxDelay")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _callbackMaxDelay =  atoi(j.token);
        } else if(!strcmp(j.token, "poeCurrent")) {
            if(yJsonParse(&j) != YJSON_PARSE_AVAIL) return -1;
            _poeCurrent =  atoi(j.token);
        } else {
            // ignore unknown field
            yJsonSkip(&j, 1);
        }
    }
    if(j.st != YJSON_PARSE_STRUCT) goto failed;
    return 0;
}