예제 #1
0
    /**
     * <summary>
     *   Builds a list of all data streams hold by the data logger.
     * <para>
     *   The caller must pass by reference an empty array to hold YDataStream
     *   objects, and the function fills it with objects describing available
     *   data sequences.
     * </para>
     * </summary>
     * <param name="v">
     *   an array of YDataStream objects to be filled in
     * </param>
     * <returns>
     *   YAPI.SUCCESS if the call succeeds.
     * </returns>
     * <para>
     *   On failure, throws an exception or returns a negative error code.
     * </para>
     */
    public int get_dataStreams(List <YDataStream> v)
    {
        int functionReturnValue = 0;

        YAPI.TJsonParser j = null;
        int i   = 0;
        int res = 0;

        YAPI.TJSONRECORD root = default(YAPI.TJSONRECORD);
        YAPI.TJSONRECORD el   = default(YAPI.TJSONRECORD);

        v.Clear();
        res = getData(0, 0, ref j);
        if ((res != YAPI.SUCCESS))
        {
            functionReturnValue = res;
            return(functionReturnValue);
        }

        root = j.GetRootNode();
        for (i = 0; i <= root.itemcount - 1; i++)
        {
            el = root.items[i];
            v.Add(new YDataStream(this, el.items[0].ivalue, el.items[1].ivalue, el.items[2].ivalue, el.items[3].ivalue));
        }

        j = null;
        functionReturnValue = YAPI.SUCCESS;
        return(functionReturnValue);
    }
예제 #2
0
    //--- (generated code: YWireless implementation)

    protected override void _parseAttr(YAPI.TJSONRECORD member)
    {
        if (member.name == "linkQuality")
        {
            _linkQuality = (int)member.ivalue;
            return;
        }
        if (member.name == "ssid")
        {
            _ssid = member.svalue;
            return;
        }
        if (member.name == "channel")
        {
            _channel = (int)member.ivalue;
            return;
        }
        if (member.name == "security")
        {
            _security = (int)member.ivalue;
            return;
        }
        if (member.name == "message")
        {
            _message = member.svalue;
            return;
        }
        if (member.name == "wlanConfig")
        {
            _wlanConfig = member.svalue;
            return;
        }
        base._parseAttr(member);
    }
예제 #3
0
    //--- (YGenericSensor implementation)

    protected override void _parseAttr(YAPI.TJSONRECORD member)
    {
        if (member.name == "signalValue")
        {
            _signalValue = Math.Round(member.ivalue * 1000.0 / 65536.0) / 1000.0;
            return;
        }
        if (member.name == "signalUnit")
        {
            _signalUnit = member.svalue;
            return;
        }
        if (member.name == "signalRange")
        {
            _signalRange = member.svalue;
            return;
        }
        if (member.name == "valueRange")
        {
            _valueRange = member.svalue;
            return;
        }
        if (member.name == "signalBias")
        {
            _signalBias = Math.Round(member.ivalue * 1000.0 / 65536.0) / 1000.0;
            return;
        }
        if (member.name == "signalSampling")
        {
            _signalSampling = (int)member.ivalue;
            return;
        }
        base._parseAttr(member);
    }
    //--- (YColorLedCluster implementation)

    protected override void _parseAttr(YAPI.TJSONRECORD member)
    {
        if (member.name == "activeLedCount")
        {
            _activeLedCount = (int)member.ivalue;
            return;
        }
        if (member.name == "maxLedCount")
        {
            _maxLedCount = (int)member.ivalue;
            return;
        }
        if (member.name == "blinkSeqMaxCount")
        {
            _blinkSeqMaxCount = (int)member.ivalue;
            return;
        }
        if (member.name == "blinkSeqMaxSize")
        {
            _blinkSeqMaxSize = (int)member.ivalue;
            return;
        }
        if (member.name == "command")
        {
            _command = member.svalue;
            return;
        }
        base._parseAttr(member);
    }
    //--- (YAccelerometer implementation)

    protected override void _parseAttr(YAPI.TJSONRECORD member)
    {
        if (member.name == "bandwidth")
        {
            _bandwidth = (int)member.ivalue;
            return;
        }
        if (member.name == "xValue")
        {
            _xValue = Math.Round(member.ivalue * 1000.0 / 65536.0) / 1000.0;
            return;
        }
        if (member.name == "yValue")
        {
            _yValue = Math.Round(member.ivalue * 1000.0 / 65536.0) / 1000.0;
            return;
        }
        if (member.name == "zValue")
        {
            _zValue = Math.Round(member.ivalue * 1000.0 / 65536.0) / 1000.0;
            return;
        }
        if (member.name == "gravityCancellation")
        {
            _gravityCancellation = member.ivalue > 0 ? 1 : 0;
            return;
        }
        base._parseAttr(member);
    }
예제 #6
0
        //--- (YWakeUpMonitor implementation)

        protected override void _parseAttr(YAPI.TJSONRECORD member)
        {
            if (member.name == "powerDuration")
            {
                _powerDuration = (int)member.ivalue;
                return;
            }
            if (member.name == "sleepCountdown")
            {
                _sleepCountdown = (int)member.ivalue;
                return;
            }
            if (member.name == "nextWakeUp")
            {
                _nextWakeUp = member.ivalue;
                return;
            }
            if (member.name == "wakeUpReason")
            {
                _wakeUpReason = (int)member.ivalue;
                return;
            }
            if (member.name == "wakeUpState")
            {
                _wakeUpState = (int)member.ivalue;
                return;
            }
            if (member.name == "rtcTime")
            {
                _rtcTime = member.ivalue;
                return;
            }
            base._parseAttr(member);
        }
    //--- (YBuzzer implementation)

    protected override void _parseAttr(YAPI.TJSONRECORD member)
    {
        if (member.name == "frequency")
        {
            _frequency = Math.Round(member.ivalue * 1000.0 / 65536.0) / 1000.0;
            return;
        }
        if (member.name == "volume")
        {
            _volume = (int)member.ivalue;
            return;
        }
        if (member.name == "playSeqSize")
        {
            _playSeqSize = (int)member.ivalue;
            return;
        }
        if (member.name == "playSeqMaxSize")
        {
            _playSeqMaxSize = (int)member.ivalue;
            return;
        }
        if (member.name == "playSeqSignature")
        {
            _playSeqSignature = (int)member.ivalue;
            return;
        }
        if (member.name == "command")
        {
            _command = member.svalue;
            return;
        }
        base._parseAttr(member);
    }
예제 #8
0
        //--- (generated code: YDataLogger implementation)

        protected override void _parseAttr(YAPI.TJSONRECORD member)
        {
            if (member.name == "currentRunIndex")
            {
                _currentRunIndex = (int)member.ivalue;
                return;
            }
            if (member.name == "timeUTC")
            {
                _timeUTC = member.ivalue;
                return;
            }
            if (member.name == "recording")
            {
                _recording = member.ivalue > 0 ? 1 : 0;
                return;
            }
            if (member.name == "autoStart")
            {
                _autoStart = member.ivalue > 0 ? 1 : 0;
                return;
            }
            if (member.name == "clearHistory")
            {
                _clearHistory = member.ivalue > 0 ? 1 : 0;
                return;
            }
            base._parseAttr(member);
        }
    //--- (YAudioIn implementation)

    protected override void _parseAttr(YAPI.TJSONRECORD member)
    {
        if (member.name == "volume")
        {
            _volume = (int)member.ivalue;
            return;
        }
        if (member.name == "mute")
        {
            _mute = member.ivalue > 0 ? 1 : 0;
            return;
        }
        if (member.name == "volumeRange")
        {
            _volumeRange = member.svalue;
            return;
        }
        if (member.name == "signal")
        {
            _signal = (int)member.ivalue;
            return;
        }
        if (member.name == "noSignalFor")
        {
            _noSignalFor = (int)member.ivalue;
            return;
        }
        base._parseAttr(member);
    }
예제 #10
0
        //--- (YAnButton implementation)

        protected override void _parseAttr(YAPI.TJSONRECORD member)
        {
            if (member.name == "calibratedValue")
            {
                _calibratedValue = (int)member.ivalue;
                return;
            }
            if (member.name == "rawValue")
            {
                _rawValue = (int)member.ivalue;
                return;
            }
            if (member.name == "analogCalibration")
            {
                _analogCalibration = member.ivalue > 0 ? 1 : 0;
                return;
            }
            if (member.name == "calibrationMax")
            {
                _calibrationMax = (int)member.ivalue;
                return;
            }
            if (member.name == "calibrationMin")
            {
                _calibrationMin = (int)member.ivalue;
                return;
            }
            if (member.name == "sensitivity")
            {
                _sensitivity = (int)member.ivalue;
                return;
            }
            if (member.name == "isPressed")
            {
                _isPressed = member.ivalue > 0 ? 1 : 0;
                return;
            }
            if (member.name == "lastTimePressed")
            {
                _lastTimePressed = member.ivalue;
                return;
            }
            if (member.name == "lastTimeReleased")
            {
                _lastTimeReleased = member.ivalue;
                return;
            }
            if (member.name == "pulseCounter")
            {
                _pulseCounter = member.ivalue;
                return;
            }
            if (member.name == "pulseTimer")
            {
                _pulseTimer = member.ivalue;
                return;
            }
            base._parseAttr(member);
        }
예제 #11
0
    //--- (YServo implementation)

    protected override void _parseAttr(YAPI.TJSONRECORD member)
    {
        if (member.name == "position")
        {
            _position = (int)member.ivalue;
            return;
        }
        if (member.name == "enabled")
        {
            _enabled = member.ivalue > 0 ? 1 : 0;
            return;
        }
        if (member.name == "range")
        {
            _range = (int)member.ivalue;
            return;
        }
        if (member.name == "neutral")
        {
            _neutral = (int)member.ivalue;
            return;
        }
        if (member.name == "move")
        {
            if (member.recordtype == YAPI.TJSONRECORDTYPE.JSON_STRUCT)
            {
                YAPI.TJSONRECORD submemb;
                for (int l = 0; l < member.membercount; l++)
                {
                    submemb = member.members[l];
                    if (submemb.name == "moving")
                    {
                        _move.moving = (int)submemb.ivalue;
                    }
                    else if (submemb.name == "target")
                    {
                        _move.target = (int)submemb.ivalue;
                    }
                    else if (submemb.name == "ms")
                    {
                        _move.ms = (int)submemb.ivalue;
                    }
                }
            }
            return;
        }
        if (member.name == "positionAtPowerOn")
        {
            _positionAtPowerOn = (int)member.ivalue;
            return;
        }
        if (member.name == "enabledAtPowerOn")
        {
            _enabledAtPowerOn = member.ivalue > 0 ? 1 : 0;
            return;
        }
        base._parseAttr(member);
    }
예제 #12
0
    protected override int _parse(YAPI.TJSONRECORD j)
    {
        YAPI.TJSONRECORD member = default(YAPI.TJSONRECORD);
        int i = 0;

        if ((j.recordtype != YAPI.TJSONRECORDTYPE.JSON_STRUCT))
        {
            goto failed;
        }
        for (i = 0; i <= j.membercount - 1; i++)
        {
            member = j.members[i];
            if (member.name == "logicalName")
            {
                _logicalName = member.svalue;
            }
            else if (member.name == "advertisedValue")
            {
                _advertisedValue = member.svalue;
            }
            else if (member.name == "unit")
            {
                _unit = member.svalue;
            }
            else if (member.name == "currentValue")
            {
                _currentValue = Math.Round(member.ivalue / 6553.6) / 10;
            }
            else if (member.name == "lowestValue")
            {
                _lowestValue = Math.Round(member.ivalue / 6553.6) / 10;
            }
            else if (member.name == "highestValue")
            {
                _highestValue = Math.Round(member.ivalue / 6553.6) / 10;
            }
            else if (member.name == "currentRawValue")
            {
                _currentRawValue = member.ivalue / 65536.0;
            }
            else if (member.name == "resolution")
            {
                _resolution = 1.0 / Math.Round(65536.0 / member.ivalue);
            }
            else if (member.name == "calibrationParam")
            {
                _calibrationParam = member.svalue;
            }
            else if (member.name == "sensorType")
            {
                _sensorType = member.ivalue;
            }
        }
        return(0);

failed:
        return(-1);
    }
예제 #13
0
    //--- (YOsControl implementation)

    protected override void _parseAttr(YAPI.TJSONRECORD member)
    {
        if (member.name == "shutdownCountdown")
        {
            _shutdownCountdown = (int)member.ivalue;
            return;
        }
        base._parseAttr(member);
    }
    //--- (YPwmPowerSource implementation)

    protected override void _parseAttr(YAPI.TJSONRECORD member)
    {
        if (member.name == "powerMode")
        {
            _powerMode = (int)member.ivalue;
            return;
        }
        base._parseAttr(member);
    }
    //--- (YLightSensor implementation)

    protected override void _parseAttr(YAPI.TJSONRECORD member)
    {
        if (member.name == "measureType")
        {
            _measureType = (int)member.ivalue;
            return;
        }
        base._parseAttr(member);
    }
예제 #16
0
        //--- (YAltitude implementation)

        protected override void _parseAttr(YAPI.TJSONRECORD member)
        {
            if (member.name == "qnh")
            {
                _qnh = member.ivalue / 65536.0;
                return;
            }
            base._parseAttr(member);
        }
    //--- (YAltitude implementation)

    protected override void _parseAttr(YAPI.TJSONRECORD member)
    {
        if (member.name == "qnh")
        {
            _qnh = Math.Round(member.ivalue * 1000.0 / 65536.0) / 1000.0;
            return;
        }
        base._parseAttr(member);
    }
예제 #18
0
    protected override int _parse(YAPI.TJSONRECORD j)
    {
        YAPI.TJSONRECORD member = default(YAPI.TJSONRECORD);
        int i = 0;

        if ((j.recordtype != YAPI.TJSONRECORDTYPE.JSON_STRUCT))
        {
            goto failed;
        }
        for (i = 0; i <= j.membercount - 1; i++)
        {
            member = j.members[i];
            if (member.name == "logicalName")
            {
                _logicalName = member.svalue;
            }
            else if (member.name == "advertisedValue")
            {
                _advertisedValue = member.svalue;
            }
            else if (member.name == "oldestRunIndex")
            {
                _oldestRunIndex = member.ivalue;
            }
            else if (member.name == "currentRunIndex")
            {
                _currentRunIndex = member.ivalue;
            }
            else if (member.name == "samplingInterval")
            {
                _samplingInterval = member.ivalue;
            }
            else if (member.name == "timeUTC")
            {
                _timeUTC = member.ivalue;
            }
            else if (member.name == "recording")
            {
                _recording = member.ivalue;
            }
            else if (member.name == "autoStart")
            {
                _autoStart = member.ivalue;
            }
            else if (member.name == "clearHistory")
            {
                _clearHistory = member.ivalue;
            }
        }
        return(0);

failed:
        return(-1);
    }
예제 #19
0
    //--- (YBluetoothLink implementation)

    protected override void _parseAttr(YAPI.TJSONRECORD member)
    {
        if (member.name == "ownAddress")
        {
            _ownAddress = member.svalue;
            return;
        }
        if (member.name == "pairingPin")
        {
            _pairingPin = member.svalue;
            return;
        }
        if (member.name == "remoteAddress")
        {
            _remoteAddress = member.svalue;
            return;
        }
        if (member.name == "remoteName")
        {
            _remoteName = member.svalue;
            return;
        }
        if (member.name == "mute")
        {
            _mute = member.ivalue > 0 ? 1 : 0;
            return;
        }
        if (member.name == "preAmplifier")
        {
            _preAmplifier = (int)member.ivalue;
            return;
        }
        if (member.name == "volume")
        {
            _volume = (int)member.ivalue;
            return;
        }
        if (member.name == "linkState")
        {
            _linkState = (int)member.ivalue;
            return;
        }
        if (member.name == "linkQuality")
        {
            _linkQuality = (int)member.ivalue;
            return;
        }
        if (member.name == "command")
        {
            _command = member.svalue;
            return;
        }
        base._parseAttr(member);
    }
    //--- (YTilt implementation)

    protected override void _parseAttr(YAPI.TJSONRECORD member)
    {
        if (member.name == "bandwidth")
        {
            _bandwidth = (int)member.ivalue;
            return;
        }
        if (member.name == "axis")
        {
            _axis = (int)member.ivalue;
            return;
        }
        base._parseAttr(member);
    }
        //--- (generated code: YFiles implementation)

        protected override void _parseAttr(YAPI.TJSONRECORD member)
        {
            if (member.name == "filesCount")
            {
                _filesCount = (int)member.ivalue;
                return;
            }
            if (member.name == "freeSpace")
            {
                _freeSpace = (int)member.ivalue;
                return;
            }
            base._parseAttr(member);
        }
    //--- (YCompass implementation)

    protected override void _parseAttr(YAPI.TJSONRECORD member)
    {
        if (member.name == "axis")
        {
            _axis = (int)member.ivalue;
            return;
        }
        if (member.name == "magneticHeading")
        {
            _magneticHeading = Math.Round(member.ivalue * 1000.0 / 65536.0) / 1000.0;
            return;
        }
        base._parseAttr(member);
    }
    //--- (YCarbonDioxide implementation)

    protected override void _parseAttr(YAPI.TJSONRECORD member)
    {
        if (member.name == "abcPeriod")
        {
            _abcPeriod = (int)member.ivalue;
            return;
        }
        if (member.name == "command")
        {
            _command = member.svalue;
            return;
        }
        base._parseAttr(member);
    }
    //--- (YSegmentedDisplay implementation)

    protected override void _parseAttr(YAPI.TJSONRECORD member)
    {
        if (member.name == "displayedText")
        {
            _displayedText = member.svalue;
            return;
        }
        if (member.name == "displayMode")
        {
            _displayMode = (int)member.ivalue;
            return;
        }
        base._parseAttr(member);
    }
예제 #25
0
    //--- (YQuadratureDecoder implementation)

    protected override void _parseAttr(YAPI.TJSONRECORD member)
    {
        if (member.name == "speed")
        {
            _speed = Math.Round(member.ivalue * 1000.0 / 65536.0) / 1000.0;
            return;
        }
        if (member.name == "decoding")
        {
            _decoding = member.ivalue > 0 ? 1 : 0;
            return;
        }
        base._parseAttr(member);
    }
예제 #26
0
    //--- (YMotor implementation)

    protected override void _parseAttr(YAPI.TJSONRECORD member)
    {
        if (member.name == "motorStatus")
        {
            _motorStatus = (int)member.ivalue;
            return;
        }
        if (member.name == "drivingForce")
        {
            _drivingForce = Math.Round(member.ivalue * 1000.0 / 65536.0) / 1000.0;
            return;
        }
        if (member.name == "brakingForce")
        {
            _brakingForce = Math.Round(member.ivalue * 1000.0 / 65536.0) / 1000.0;
            return;
        }
        if (member.name == "cutOffVoltage")
        {
            _cutOffVoltage = Math.Round(member.ivalue * 1000.0 / 65536.0) / 1000.0;
            return;
        }
        if (member.name == "overCurrentLimit")
        {
            _overCurrentLimit = (int)member.ivalue;
            return;
        }
        if (member.name == "frequency")
        {
            _frequency = (int)member.ivalue;
            return;
        }
        if (member.name == "starterTime")
        {
            _starterTime = (int)member.ivalue;
            return;
        }
        if (member.name == "failSafeTimeout")
        {
            _failSafeTimeout = (int)member.ivalue;
            return;
        }
        if (member.name == "command")
        {
            _command = member.svalue;
            return;
        }
        base._parseAttr(member);
    }
예제 #27
0
 // Token: 0x060000F5 RID: 245 RVA: 0x000066F0 File Offset: 0x000048F0
 protected override int _parse(YAPI.TJSONRECORD j)
 {
     YAPI.TJSONRECORD member = default(YAPI.TJSONRECORD);
     if (j.recordtype == YAPI.TJSONRECORDTYPE.JSON_STRUCT)
     {
         for (int i = 0; i <= j.membercount - 1; i++)
         {
             member = j.members[i];
             if (member.name == "logicalName")
             {
                 this._logicalName = member.svalue;
             }
             else if (member.name == "advertisedValue")
             {
                 this._advertisedValue = member.svalue;
             }
             else if (member.name == "unit")
             {
                 this._unit = member.svalue;
             }
             else if (member.name == "currentValue")
             {
                 this._currentValue = Math.Round((double)member.ivalue / 65536.0);
             }
             else if (member.name == "lowestValue")
             {
                 this._lowestValue = Math.Round((double)member.ivalue / 65536.0);
             }
             else if (member.name == "highestValue")
             {
                 this._highestValue = Math.Round((double)member.ivalue / 65536.0);
             }
             else if (member.name == "currentRawValue")
             {
                 this._currentRawValue = (double)member.ivalue / 65536.0;
             }
             else if (member.name == "resolution")
             {
                 this._resolution = 1.0 / Math.Round(65536.0 / (double)member.ivalue);
             }
             else if (member.name == "calibrationParam")
             {
                 this._calibrationParam = member.svalue;
             }
         }
         return(0);
     }
     return(-1);
 }
예제 #28
0
        /**
         * <summary>
         *   Builds a list of all data streams hold by the data logger (legacy method).
         * <para>
         *   The caller must pass by reference an empty array to hold YDataStream
         *   objects, and the function fills it with objects describing available
         *   data sequences.
         * </para>
         * <para>
         *   This is the old way to retrieve data from the DataLogger.
         *   For new applications, you should rather use <c>get_dataSets()</c>
         *   method, or call directly <c>get_recordedData()</c> on the
         *   sensor object.
         * </para>
         * <para>
         * </para>
         * </summary>
         * <param name="v">
         *   an array of YDataStream objects to be filled in
         * </param>
         * <returns>
         *   <c>YAPI.SUCCESS</c> if the call succeeds.
         * </returns>
         * <para>
         *   On failure, throws an exception or returns a negative error code.
         * </para>
         */
        public int get_dataStreams(List <YDataStream> v)
        {
            YAPI.TJsonParser j = null;
            int i   = 0;
            int res = 0;

            YAPI.TJSONRECORD root = default(YAPI.TJSONRECORD);
            YAPI.TJSONRECORD el   = default(YAPI.TJSONRECORD);

            v.Clear();
            res = getData(0, 0, ref j);
            if (res != YAPI.SUCCESS)
            {
                return(res);
            }

            root = j.GetRootNode();
            if (root.itemcount == 0)
            {
                return(YAPI.SUCCESS);
            }
            if (root.items[0].recordtype == YAPI.TJSONRECORDTYPE.JSON_ARRAY)
            {
                // old datalogger format: [runIdx, timerel, utc, interval]
                for (i = 0; i <= root.itemcount - 1; i++)
                {
                    el = root.items[i];
                    v.Add(new YOldDataStream(this, (int)el.items[0].ivalue, (int)el.items[1].ivalue, (UInt32)el.items[2].ivalue, (int)el.items[3].ivalue));
                }
            }
            else
            {
                // new datalogger format: {"id":"...","unit":"...","streams":["...",...]}
                string          json_buffer = j.convertToString(root, false);
                List <YDataSet> sets        = this.parse_dataSets(YAPI.DefaultEncoding.GetBytes(json_buffer));
                for (int sj = 0; sj < sets.Count; sj++)
                {
                    List <YDataStream> ds = sets[sj].get_privateDataStreams();
                    for (int si = 0; si < ds.Count; si++)
                    {
                        v.Add(ds[si]);
                    }
                }
            }
            j = null;
            return(YAPI.SUCCESS);
        }
    //--- (YPwmOutput implementation)

    protected override void _parseAttr(YAPI.TJSONRECORD member)
    {
        if (member.name == "enabled")
        {
            _enabled = member.ivalue > 0 ? 1 : 0;
            return;
        }
        if (member.name == "frequency")
        {
            _frequency = Math.Round(member.ivalue * 1000.0 / 65536.0) / 1000.0;
            return;
        }
        if (member.name == "period")
        {
            _period = Math.Round(member.ivalue * 1000.0 / 65536.0) / 1000.0;
            return;
        }
        if (member.name == "dutyCycle")
        {
            _dutyCycle = Math.Round(member.ivalue * 1000.0 / 65536.0) / 1000.0;
            return;
        }
        if (member.name == "pulseDuration")
        {
            _pulseDuration = Math.Round(member.ivalue * 1000.0 / 65536.0) / 1000.0;
            return;
        }
        if (member.name == "pwmTransition")
        {
            _pwmTransition = member.svalue;
            return;
        }
        if (member.name == "enabledAtPowerOn")
        {
            _enabledAtPowerOn = member.ivalue > 0 ? 1 : 0;
            return;
        }
        if (member.name == "dutyCycleAtPowerOn")
        {
            _dutyCycleAtPowerOn = Math.Round(member.ivalue * 1000.0 / 65536.0) / 1000.0;
            return;
        }
        base._parseAttr(member);
    }
예제 #30
0
        //--- (YLed implementation)

        protected override void _parseAttr(YAPI.TJSONRECORD member)
        {
            if (member.name == "power")
            {
                _power = member.ivalue > 0 ? 1 : 0;
                return;
            }
            if (member.name == "luminosity")
            {
                _luminosity = (int)member.ivalue;
                return;
            }
            if (member.name == "blinking")
            {
                _blinking = (int)member.ivalue;
                return;
            }
            base._parseAttr(member);
        }