/** * <summary> * Returns the state of the relays at device startup (A for the idle position, * B for the active position, UNCHANGED to leave the relay state as is). * <para> * </para> * <para> * </para> * </summary> * <returns> * a value among <c>YRelay.STATEATPOWERON_UNCHANGED</c>, <c>YRelay.STATEATPOWERON_A</c> and * <c>YRelay.STATEATPOWERON_B</c> corresponding to the state of the relays at device startup (A for * the idle position, * B for the active position, UNCHANGED to leave the relay state as is) * </returns> * <para> * On failure, throws an exception or returns <c>YRelay.STATEATPOWERON_INVALID</c>. * </para> */ public int get_stateAtPowerOn() { int res; lock (_thisLock) { if (this._cacheExpiration <= YAPI.GetTickCount()) { if (this.load(YAPI._yapiContext.GetCacheValidity()) != YAPI.SUCCESS) { return(STATEATPOWERON_INVALID); } } res = this._stateAtPowerOn; } return(res); }
/** * <summary> * Returns the current measured value. * <para> * </para> * <para> * </para> * </summary> * <returns> * a floating point number corresponding to the current measured value * </returns> * <para> * On failure, throws an exception or returns <c>YCurrent.CURRENTVALUE_INVALID</c>. * </para> */ public double get_currentValue() { if (_cacheExpiration <= YAPI.GetTickCount()) { if (YAPI.YISERR(load(YAPI.DefaultCacheValidity))) { return(YCurrent.CURRENTVALUE_INVALID); } } double res = YAPI._applyCalibration(_currentRawValue, _calibrationParam, _calibrationOffset, _resolution); if (res != YCurrent.CURRENTVALUE_INVALID) { return(res); } return(_currentValue); }
public override async Task <int> Run() { YModule m; string errmsg = ""; if (await YAPI.RegisterHub(HubURL) != YAPI.SUCCESS) { WriteLine("RegisterHub error: " + errmsg); return(-1); } m = YModule.FindModule(Target + ".module"); // use serial or logical name if (await m.isOnline()) { if (Beacon) { await m.set_beacon(YModule.BEACON_ON); } else { await m.set_beacon(YModule.BEACON_OFF); } WriteLine("serial: " + await m.get_serialNumber()); WriteLine("logical name: " + await m.get_logicalName()); WriteLine("luminosity: " + await m.get_luminosity()); Write("beacon: "); if (await m.get_beacon() == YModule.BEACON_ON) { WriteLine("ON"); } else { WriteLine("OFF"); } WriteLine("upTime: " + (await m.get_upTime() / 1000) + " sec"); WriteLine("USB current: " + await m.get_usbCurrent() + " mA"); WriteLine("Logs:\r\n" + await m.get_lastLogs()); } else { WriteLine(Target + " not connected on" + HubURL + "(check identification and USB cable)"); } YAPI.FreeAPI(); return(0); }
static void Main(String[] args) { constants.init(args); string errsmg = ""; YAPI.RegisterLogFunction(LogManager.APIlog); if (YAPI.InitAPI(YAPI.DETECT_NONE, ref errsmg) == YAPI.SUCCESS) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } else { MessageBox.Show("Yoctopuce API init error:" + errsmg); } }
/** * <summary> * Returns estimated quality of the orientation (Yocto-3D-V2 only). * <para> * This function returns * an integer between 0 and 3 representing the degree of confidence of the position * estimate. When the value is 3, the estimation is reliable. Below 3, one should * expect sudden corrections, in particular for heading (<c>compass</c> function). * The most frequent causes for values below 3 are magnetic interferences, and * accelerations or rotations beyond the sensor range. * </para> * </summary> * <returns> * an integer between 0 and 3 (3 when the measure is reliable) * </returns> * <para> * On failure, throws an exception or returns a negative error code. * For the Yocto-3D (V1), this function always return -3 (unsupported function). * </para> */ public virtual int get_measureQuality() { string calibParam; List <int> iCalib = new List <int>(); int caltyp; int res; calibParam = this.get_calibrationParam(); iCalib = YAPI._decodeFloats(calibParam); caltyp = ((iCalib[0]) / (1000)); if (caltyp != 33) { return(YAPI.NOT_SUPPORTED); } res = ((iCalib[2]) / (1000)); return(res); }
static void HubDiscovered(string serial, string url) { // The call-back can be called several times for the same hub // (the discovery technique is based on a periodic broadcast) // So we use a dictionnary to avoid duplicates if (KnownHubs.Contains(serial)) { return; } Console.WriteLine("hub found: " + serial + " (" + url + ")"); // connect to the hub string msg = ""; YAPI.RegisterHub(url, ref msg); // find the hub module YModule hub = YModule.FindModule(serial); // iterate on all functions on the module and find the ports int fctCount = hub.functionCount(); for (int i = 0; i < fctCount; i++) { // retreive the hardware name of the ith function string fctHwdName = hub.functionId(i); if (fctHwdName.Length > 7) { if (fctHwdName.Substring(0, 7) == "hubPort") { // The port logical name is always the serial# // of the connected device string deviceid = hub.functionName(i); Console.WriteLine(" " + fctHwdName + " : " + deviceid); } } } // add the hub to the dictionnary so we won't have to // process is again. KnownHubs.Add(serial); // disconnect from the hub YAPI.UnregisterHub(url); }
// Token: 0x060000A5 RID: 165 RVA: 0x000051B0 File Offset: 0x000033B0 protected int _nextFunction(ref string hwid) { int fundescr = 0; int devdescr = 0; string serial = ""; string funcId = ""; string funcName = ""; string funcVal = ""; string errmsg = ""; int neededsize = 0; IntPtr p = 0; int[] pdata = new int[1]; int res = this._getDescriptor(ref fundescr, ref errmsg); if (YAPI.YISERR(res)) { this._throw(res, errmsg); return(res); } int maxsize = Marshal.SizeOf(pdata[0]); p = Marshal.AllocHGlobal(maxsize); res = YAPI.apiGetFunctionsByClass(this._className, fundescr, p, maxsize, ref neededsize, ref errmsg); Marshal.Copy(p, pdata, 0, 1); Marshal.FreeHGlobal(p); if (YAPI.YISERR(res)) { this._throw(res, errmsg); return(res); } if (Convert.ToInt32(neededsize / Marshal.SizeOf(pdata[0])) == 0) { hwid = ""; return(0); } res = YAPI.yapiGetFunctionInfo(pdata[0], ref devdescr, ref serial, ref funcId, ref funcName, ref funcVal, ref errmsg); if (YAPI.YISERR(res)) { this._throw(res, errmsg); return(0); } hwid = serial + "." + funcId; return(0); }
public YoctoLightV3Manager() { string errorMsg = string.Empty; if (YAPI.RegisterHub("usb", ref errorMsg) != YAPI.SUCCESS) { throw new InvalidOperationException(errorMsg); } YAPI.RegisterDeviceArrivalCallback(this.OnDeviceConnected); YAPI.RegisterDeviceRemovalCallback(this.OnDeviceDisconnected); this.workingThread = new Thread(this.RunSensorLoop) { IsBackground = true }; this.workingThread.Start(); }
void EfficientApproach() { ulong tm_start = YAPI.GetTickCount(); string errmsg = ""; int res = YAPI.HandleEvents(ref errmsg); if (res != YAPI.SUCCESS) { errorText.text = errmsg; return; } ulong tm_stop = YAPI.GetTickCount(); Debug.Log(string.Format("Get values (r{0:f} p{1:f} took {2:d}ms", _x, _z, tm_stop - tm_start)); Vector3 movement = new Vector3((float)_x, 0.0f, (float)_z); rb.AddForce(movement * speed); }
private void AddrTimer_Tick(object sender, EventArgs e) { string errmsg = ""; AddrTimer.Enabled = false; ClearPreviousRegister(); CurrentConnectionAddr = DeviceAddr.Text; if (CurrentConnectionAddr != "") { LogManager.Log("registering " + CurrentConnectionAddr); if (YAPI.PreregisterHub(CurrentConnectionAddr, ref errmsg) != YAPI.SUCCESS) { ChooseSensorErrorLabel.Text = "cannot connect to " + CurrentConnectionAddr + " : " + errmsg; LogManager.Log(ChooseSensorErrorLabel.Text); return; } } }
async Task dispatcherTimer_Tick() { long start = DateTime.Now.Ticks; try { await YAPI.HandleEvents(); } catch (YAPI_Exception ex) { await FatalError(ex.Message); } long stop = DateTime.Now.Ticks; long delta = (stop - start) / 1000; if (delta > 50) { Debug.WriteLine("Long Timer handler :{0}ms", delta); } }
/** * <summary> * Returns the 3D sensor calibration state (Yocto-3D-V2 only). * <para> * This function returns * an integer representing the calibration state of the 3 inertial sensors of * the BNO055 chip, found in the Yocto-3D-V2. Hundredths show the calibration state * of the accelerometer, tenths show the calibration state of the magnetometer while * units show the calibration state of the gyroscope. For each sensor, the value 0 * means no calibration and the value 3 means full calibration. * </para> * </summary> * <returns> * an integer representing the calibration state of Yocto-3D-V2: * 333 when fully calibrated, 0 when not calibrated at all. * </returns> * <para> * On failure, throws an exception or returns a negative error code. * For the Yocto-3D (V1), this function always return -3 (unsupported function). * </para> */ public virtual int get_calibrationState() { string calibParam; List <int> iCalib = new List <int>(); int caltyp; int res; // may throw an exception calibParam = this.get_calibrationParam(); iCalib = YAPI._decodeFloats(calibParam); caltyp = ((iCalib[0]) / (1000)); if (caltyp != 33) { return(YAPI.NOT_SUPPORTED); } res = ((iCalib[1]) / (1000)); return(res); }
// Token: 0x060000A4 RID: 164 RVA: 0x00005168 File Offset: 0x00003368 protected int _getDevice(ref YAPI.YDevice dev, ref string errMsg) { int fundescr = 0; int res = this._getDescriptor(ref fundescr, ref errMsg); if (YAPI.YISERR(res)) { return(res); } int devdescr = YAPI.yapiGetDeviceByFunction(fundescr, ref errMsg); if (YAPI.YISERR(devdescr)) { return(devdescr); } dev = YAPI.YDevice.getDevice(devdescr); return(0); }
private void RefreshTimer_Tick(object sender, EventArgs e) { string errmsg = ""; YAPI.HandleEvents(ref errmsg); refreshUI(); ulong now = YAPI.GetTickCount(); if (now - eventTick >= 1000) { for (int i = 0; i < eventCount.Length; i++) { freq[i] = (int)Math.Round(eventCount[i] * 1000.0 / (now - eventTick)); eventCount[i] = 0; } eventTick = now; } }
private async void OnLoad(object sender, RoutedEventArgs e) { HwIdTextBox.Text = "No sensor detected"; TempTextBox.Text = "N/A"; try { await YAPI.RegisterHub("usb"); } catch (YAPI_Exception ex) { var dialog = new MessageDialog("Init error:" + ex.Message); await dialog.ShowAsync(); return; } timer = new NonReentrantDispatcherTimer(); timer.Interval = new TimeSpan(0, 0, 0, 0, 100); timer.TickTask = async() => { await dispatcherTimer_Tick(); }; timer.Start(); }
public override async Task <int> Run() { DateTime _epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); try { await YAPI.RegisterHub(HubURL); // Enumerate all connected sensors YSensor sensor; List <YSensor> sensorList = new List <YSensor>(); sensor = YSensor.FirstSensor(); while (sensor != null) { sensorList.Add(sensor); sensor = sensor.nextSensor(); } if (sensorList.Count == 0) { WriteLine("No Yoctopuce sensor connected (check USB cable)"); } else { // Generate consolidated CSV output for all sensors YConsolidatedDataSet data = new YConsolidatedDataSet(0, 0, sensorList); List <Double> record = new List <Double>(); while (await data.nextRecord(record) < 100) { string line = _epoch.AddSeconds(record[0]).ToString("yyyy-MM-ddTHH:mm:ss.fff"); for (int i = 1; i < record.Count; i++) { line += String.Format(";{0:0.000}", record[i]); } WriteLine(line); } } } catch (YAPI_Exception ex) { WriteLine("Error:" + ex.Message); } YAPI.FreeAPI(); return(0); }
public virtual int _loadQuaternion() { int now_stamp; int age_ms; now_stamp = (int)((YAPI.GetTickCount()) & (0x7FFFFFFF)); age_ms = (((now_stamp - this._qt_stamp)) & (0x7FFFFFFF)); if ((age_ms >= 10) || (this._qt_stamp == 0)) { if (this.load(10) != YAPI.SUCCESS) { return(YAPI.DEVICE_NOT_FOUND); } if (this._qt_stamp == 0) { this._qt_w = YQt.FindQt("" + this._serial + ".qt1"); this._qt_x = YQt.FindQt("" + this._serial + ".qt2"); this._qt_y = YQt.FindQt("" + this._serial + ".qt3"); this._qt_z = YQt.FindQt("" + this._serial + ".qt4"); } if (this._qt_w.load(9) != YAPI.SUCCESS) { return(YAPI.DEVICE_NOT_FOUND); } if (this._qt_x.load(9) != YAPI.SUCCESS) { return(YAPI.DEVICE_NOT_FOUND); } if (this._qt_y.load(9) != YAPI.SUCCESS) { return(YAPI.DEVICE_NOT_FOUND); } if (this._qt_z.load(9) != YAPI.SUCCESS) { return(YAPI.DEVICE_NOT_FOUND); } this._w = this._qt_w.get_currentValue(); this._x = this._qt_x.get_currentValue(); this._y = this._qt_y.get_currentValue(); this._z = this._qt_z.get_currentValue(); this._qt_stamp = now_stamp; } return(YAPI.SUCCESS); }
public override async Task <int> Run() { try { await YAPI.RegisterHub(HubURL); YHumidity hsensor; YTemperature tsensor; YPressure psensor; if (Target.ToLower() == "any") { hsensor = YHumidity.FirstHumidity(); tsensor = YTemperature.FirstTemperature(); psensor = YPressure.FirstPressure(); if ((hsensor == null) || (tsensor == null) || (psensor == null)) { WriteLine("No module connected (check USB cable) "); return(-1); } } else { hsensor = YHumidity.FindHumidity(Target + ".humidity"); tsensor = YTemperature.FindTemperature(Target + ".temperature"); psensor = YPressure.FindPressure(Target + ".pressure"); } while (await hsensor.isOnline()) { WriteLine("Humidity: " + await hsensor.get_currentValue() + " %RH"); WriteLine("Temperature: " + await tsensor.get_currentValue() + " °C"); WriteLine("Pressure: " + await psensor.get_currentValue() + " hPa"); await YAPI.Sleep(1000); } WriteLine("Module not connected (check identification and USB cable)"); } catch (YAPI_Exception ex) { WriteLine("error: " + ex.Message); } YAPI.FreeAPI(); return(0); }
public override async Task <int> Run() { try { await YAPI.RegisterHub(HubURL); YVoltageOutput vout1; YVoltageOutput vout2; double voltage; voltage = Convert.ToDouble(RequestedVoltage); if (Target.ToLower() == "any") { vout1 = YVoltageOutput.FirstVoltageOutput(); if (vout1 == null) { WriteLine("No module connected (check USB cable) "); return(-1); } Target = await(await vout1.get_module()).get_serialNumber(); } vout1 = YVoltageOutput.FindVoltageOutput(Target + ".voltageOutput1"); vout2 = YVoltageOutput.FindVoltageOutput(Target + ".voltageOutput2"); if (await vout1.isOnline()) { WriteLine("output 1 : immediate change to " + voltage); await vout1.set_currentVoltage(voltage); WriteLine("output 2 : immediate smooth change to " + voltage); await vout2.voltageMove(voltage, 3000); } else { WriteLine("Module not connected (check identification and USB cable)"); } } catch (YAPI_Exception ex) { WriteLine("error: " + ex.Message); } YAPI.FreeAPI(); return(0); }
public override async Task <int> Run() { try { await YAPI.RegisterHub(HubURL); YRelay relay; if (Target.ToLower() == "any") { relay = YRelay.FirstRelay(); if (relay == null) { WriteLine("No module connected (check USB cable) "); return(-1); } Target = await(await relay.get_module()).get_serialNumber(); } WriteLine("using " + Target + ".relay" + Channel); relay = YRelay.FindRelay(Target + ".relay" + Channel); if (await relay.isOnline()) { if (RequestedState.ToUpper() == "ON") { await relay.set_output(YRelay.OUTPUT_ON); } else { await relay.set_output(YRelay.OUTPUT_OFF); } } else { WriteLine("Module not connected (check identification and USB cable)"); } } catch (YAPI_Exception ex) { WriteLine("error: " + ex.Message); } YAPI.FreeAPI(); return(0); }
static void Main(string[] args) { DateTime _epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); string errmsg = ""; if (YAPI.RegisterHub("usb", ref errmsg) != YAPI.SUCCESS) { Console.WriteLine("RegisterHub error: " + errmsg); Environment.Exit(1); } // Enumerate all connected sensors List <YSensor> sensorList = new List <YSensor>(); YSensor sensor; sensor = YSensor.FirstSensor(); while (sensor != null) { sensorList.Add(sensor); sensor = sensor.nextSensor(); } if (sensorList.Count == 0) { Console.WriteLine("No Yoctopuce sensor connected (check USB cable)"); Environment.Exit(1); } // Generate consolidated CSV output for all sensors YConsolidatedDataSet data = new YConsolidatedDataSet(0, 0, sensorList); List <double> record = new List <double>(); while (data.nextRecord(record) < 100) { string line = _epoch.AddSeconds(record[0]).ToString("yyyy-MM-ddTHH:mm:ss.fff"); for (int i = 1; i < record.Count; i++) { line += String.Format(";{0:0.000}", record[i]); } Console.WriteLine(line); } YAPI.FreeAPI(); }
public override async Task <int> Run() { try { await YAPI.RegisterHub(HubURL); YLightSensor ir, al; YProximity p; if (Target.ToLower() == "any") { p = YProximity.FirstProximity(); if (p == null) { WriteLine("No module connected (check USB cable) "); return(-1); } Target = await(await p.get_module()).get_serialNumber(); } else { p = YProximity.FindProximity(Target + ".proximity1"); } al = YLightSensor.FindLightSensor(Target + ".lightSensor1"); ir = YLightSensor.FindLightSensor(Target + ".lightSensor2"); while (await p.isOnline()) { Write("Proximity: " + await p.get_currentValue()); Write("\tAmbiant: " + await al.get_currentValue()); WriteLine("\tIR: " + await ir.get_currentValue()); await YAPI.Sleep(1000); } WriteLine("Module not connected (check identification and USB cable)"); } catch (YAPI_Exception ex) { WriteLine("error: " + ex.Message); } YAPI.FreeAPI(); return(0); }
public Form1() { InitializeComponent(); _t.Interval = 1000; _t.Enabled = true; _t.Tick += (sender, args) => { YAPI.HandleEvents(ref _err); }; YAPI.RegisterHub("USB", ref _err); YAPI.UpdateDeviceList(ref _err); var sensor = YSensor.FirstSensor(); sensor.registerTimedReportCallback(timedReport); _t.Start(); tbLux.Text = sensor.FriendlyName; }
static void Main(string[] args) { string errmsg = ""; if (YAPI.RegisterHub("usb", ref errmsg) != YAPI.SUCCESS) { Console.WriteLine("RegisterHub error : " + errmsg); Environment.Exit(0); } YAPI.RegisterDeviceArrivalCallback(deviceArrival); Console.WriteLine("Hit Ctrl-C to Stop "); while (true) { YAPI.UpdateDeviceList(ref errmsg); // traps plug/unplug events YAPI.Sleep(500, ref errmsg); // traps others events } }
public override async Task <int> Run() { try { await YAPI.RegisterHub(HubURL); YRelay relay; if (Target.ToLower() == "any") { relay = YRelay.FirstRelay(); if (relay == null) { WriteLine("No module connected (check USB cable) "); return(-1); } } else { relay = YRelay.FindRelay(Target + ".relay1"); } if (await relay.isOnline()) { if (RequestedState.ToUpper() == "A") { await relay.set_state(YRelay.STATE_A); } else { await relay.set_state(YRelay.STATE_B); } } else { WriteLine("Module not connected (check identification and USB cable)"); } } catch (YAPI_Exception ex) { WriteLine("error: " + ex.Message); } YAPI.FreeAPI(); return(0); }
public override async Task <int> Run() { try { await YAPI.RegisterHub(HubURL); YVoltage sensor; YVoltage sensorDC = null; YVoltage sensorAC = null; if (Target.ToLower() == "any") { // retreive any voltage sensor (can be AC or DC) sensor = YVoltage.FirstVoltage(); if (sensor == null) { WriteLine("No module connected"); return(-1); } Target = await(await sensor.get_module()).get_serialNumber(); } WriteLine("using " + Target); // we need to retreive both DC and AC voltage from the device. sensorDC = YVoltage.FindVoltage(Target + ".voltage1"); sensorAC = YVoltage.FindVoltage(Target + ".voltage2"); while (await sensorDC.isOnline()) { Write("DC: " + await sensorDC.get_currentValue() + " v "); WriteLine("AC: " + await sensorAC.get_currentValue() + " v "); await YAPI.Sleep(1000); } WriteLine("Module not connected (check identification and USB cable)"); } catch (YAPI_Exception ex) { WriteLine("error: " + ex.Message); } YAPI.FreeAPI(); return(0); }
public void runForever() { YPwmInput pwmInput; if (_hwid != "") { pwmInput = YPwmInput.FindPwmInput(_hwid); if (!pwmInput.isOnline()) { throw new Exception("No Yocto-PWM-Rx name " + _hwid + " found"); } } else { pwmInput = YPwmInput.FirstPwmInput(); if (pwmInput == null) { throw new Exception("No Yocto-PWM-Rx connected"); } } log("use PWM " + pwmInput.get_hardwareId()); configurePWMInput(pwmInput); pwmInput.resetCounter(); ResetRun(pwmInput.get_pulseCounter()); pwmInput.registerValueCallback(count_callback); string errmsg = ""; while (true) { YAPI.Sleep(1000, ref errmsg); _liveUpdateCb(getCurrentSpeedKmh(), getDistanceM(), getDurationS(), getMaxSpeedKmh(), getAVGSpeedKmh()); if (CheckExpiration()) { _endOfExerciceCb(getStartTime(), getDurationS(), getAVGSpeedKmh(), getMaxSpeedKmh(), getDistanceM()); ResetRun(pwmInput.get_pulseCounter()); Stop(); } } }
public override async Task <int> Run() { try { await YAPI.RegisterHub(HubURL); YGps gps; if (Target.ToLower() == "any") { gps = YGps.FirstGps(); if (gps == null) { WriteLine("No module connected (check USB cable) "); return(-1); } } else { gps = YGps.FindGps(Target + ".gps"); } while (await gps.isOnline()) { if (await gps.get_isFixed() != YGps.ISFIXED_TRUE) { WriteLine("fixing... "); } else { WriteLine(await gps.get_latitude() + " " + await gps.get_longitude()); } await YAPI.Sleep(1000); } WriteLine("Module not connected (check identification and USB cable)"); } catch (YAPI_Exception ex) { WriteLine("error: " + ex.Message); } YAPI.FreeAPI(); return(0); }
public override async Task <int> Run() { try { await YAPI.RegisterHub(HubURL); YLed led; if (Target.ToLower() == "any") { led = YLed.FirstLed(); if (led == null) { WriteLine("No module connected (check USB cable) "); return(-1); } } else { led = YLed.FindLed(Target + ".led"); } if (await led.isOnline()) { if (OnOff.ToUpper() == "ON") { await led.set_power(YLed.POWER_ON); } else { await led.set_power(YLed.POWER_OFF); } } else { WriteLine("Module not connected (check identification and USB cable)"); } } catch (YAPI_Exception ex) { WriteLine("error: " + ex.Message); } YAPI.FreeAPI(); return(0); }
public static string RegisterHub(string addr) { string errmsg = ""; if (!InternalStuff.initYoctopuceLibrary(ref errmsg, true)) { string msg = addr + " Yoctopuce API init failed (" + errmsg + ")"; return(msg); } InternalStuff.log("Registering Hub (" + addr + ") ..."); if (YAPI.RegisterHub(addr, ref errmsg) != YAPI.SUCCESS) { string msg = addr + " Hub registering failed (" + errmsg + ")"; return(msg); } try { YAPI.UpdateDeviceList(ref errmsg); } catch (Exception) { } return(""); }
//--- (YWakeUpSchedule implementation) protected override void _parseAttr(YAPI.TJSONRECORD member) { if (member.name == "minutesA") { _minutesA = (int)member.ivalue; return; } if (member.name == "minutesB") { _minutesB = (int)member.ivalue; return; } if (member.name == "hours") { _hours = (int)member.ivalue; return; } if (member.name == "weekDays") { _weekDays = (int)member.ivalue; return; } if (member.name == "monthDays") { _monthDays = (int)member.ivalue; return; } if (member.name == "months") { _months = (int)member.ivalue; return; } if (member.name == "nextOccurence") { _nextOccurence = member.ivalue; return; } base._parseAttr(member); }
// Return a pointer to our device caching object (may trigger a hub scan) protected YRETCODE _getDevice(ref YAPI.YDevice dev, ref string errMsg) { YRETCODE functionReturnValue = default(YRETCODE); YFUN_DESCR fundescr = default(YFUN_DESCR); YDEV_DESCR devdescr = default(YDEV_DESCR); YRETCODE res = default(YRETCODE); // Resolve function name res = _getDescriptor(ref fundescr, ref errMsg); if ((YAPI.YISERR(res))) { functionReturnValue = res; return functionReturnValue; } // Get device descriptor devdescr = YAPI.yapiGetDeviceByFunction(fundescr, ref errMsg); if ((YAPI.YISERR(devdescr))) { return devdescr; } // Get device object dev = YAPI.YDevice.getDevice(devdescr); functionReturnValue = YAPI.SUCCESS; return functionReturnValue; }
//--- (YAccelerometer implementation) protected override void _parseAttr(YAPI.TJSONRECORD member) { 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); }
public void setImmutableAttributes(ref YAPI.yDeviceSt infos) { _serialNumber = infos.serial; _productName = infos.productname; _productId = infos.deviceid; }
//--- (YColorLed implementation) protected override void _parseAttr(YAPI.TJSONRECORD member) { if (member.name == "rgbColor") { _rgbColor = (int)member.ivalue; return; } if (member.name == "hslColor") { _hslColor = (int)member.ivalue; return; } if (member.name == "rgbMove") { 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") _rgbMove.moving = (int) submemb.ivalue; else if (submemb.name == "target") _rgbMove.target = (int) submemb.ivalue; else if (submemb.name == "ms") _rgbMove.ms = (int) submemb.ivalue; } } return; } if (member.name == "hslMove") { 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") _hslMove.moving = (int) submemb.ivalue; else if (submemb.name == "target") _hslMove.target = (int) submemb.ivalue; else if (submemb.name == "ms") _hslMove.ms = (int) submemb.ivalue; } } return; } if (member.name == "rgbColorAtPowerOn") { _rgbColorAtPowerOn = (int)member.ivalue; return; } if (member.name == "blinkSeqSize") { _blinkSeqSize = (int)member.ivalue; return; } if (member.name == "blinkSeqMaxSize") { _blinkSeqMaxSize = (int)member.ivalue; return; } if (member.name == "blinkSeqSignature") { _blinkSeqSignature = (int)member.ivalue; return; } if (member.name == "command") { _command = member.svalue; return; } base._parseAttr(member); }
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; }
//--- (YAudioOut 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); }
//--- (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); }
//--- (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); }
//--- (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); }
//--- (YRefFrame implementation) protected override void _parseAttr(YAPI.TJSONRECORD member) { if (member.name == "mountPos") { _mountPos = (int)member.ivalue; return; } if (member.name == "bearing") { _bearing = Math.Round(member.ivalue * 1000.0 / 65536.0) / 1000.0; return; } if (member.name == "calibrationParam") { _calibrationParam = member.svalue; return; } base._parseAttr(member); }
public static void RegisterCalibrationHandler(int calibType, YAPI.yCalibrationHandler callback) { string key; key = calibType.ToString(); YFunction._CalibHandlers.Add(key, callback); }
//--- (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 = (int)member.ivalue; return; } if (member.name == "autoStart") { _autoStart = member.ivalue > 0 ? 1 : 0; return; } if (member.name == "beaconDriven") { _beaconDriven = member.ivalue > 0 ? 1 : 0; return; } if (member.name == "clearHistory") { _clearHistory = member.ivalue > 0 ? 1 : 0; return; } base._parseAttr(member); }
//--- (YDigitalIO implementation) protected override void _parseAttr(YAPI.TJSONRECORD member) { if (member.name == "portState") { _portState = (int)member.ivalue; return; } if (member.name == "portDirection") { _portDirection = (int)member.ivalue; return; } if (member.name == "portOpenDrain") { _portOpenDrain = (int)member.ivalue; return; } if (member.name == "portPolarity") { _portPolarity = (int)member.ivalue; return; } if (member.name == "portSize") { _portSize = (int)member.ivalue; return; } if (member.name == "outputVoltage") { _outputVoltage = (int)member.ivalue; return; } if (member.name == "command") { _command = member.svalue; return; } base._parseAttr(member); }
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; } } return 0; failed: return -1; }
//--- (generated code: YModule implementation) protected override void _parseAttr(YAPI.TJSONRECORD member) { if (member.name == "productName") { _productName = member.svalue; return; } if (member.name == "serialNumber") { _serialNumber = member.svalue; return; } if (member.name == "productId") { _productId = (int)member.ivalue; return; } if (member.name == "productRelease") { _productRelease = (int)member.ivalue; return; } if (member.name == "firmwareRelease") { _firmwareRelease = member.svalue; return; } if (member.name == "persistentSettings") { _persistentSettings = (int)member.ivalue; return; } if (member.name == "luminosity") { _luminosity = (int)member.ivalue; return; } if (member.name == "beacon") { _beacon = member.ivalue > 0 ? 1 : 0; return; } if (member.name == "upTime") { _upTime = member.ivalue; return; } if (member.name == "usbCurrent") { _usbCurrent = (int)member.ivalue; return; } if (member.name == "rebootCountdown") { _rebootCountdown = (int)member.ivalue; return; } if (member.name == "userVar") { _userVar = (int)member.ivalue; return; } base._parseAttr(member); }
public int getData(long runIdx, long timeIdx, ref YAPI.TJsonParser jsondata) { int functionReturnValue = 0; YAPI.YDevice dev = null; string errmsg = ""; string query = null; string buffer = ""; int res = 0; if (_dataLoggerURL == "") _dataLoggerURL = "/logger.json"; // Resolve our reference to our device, load REST API res = _getDevice(ref dev, ref errmsg); if ((YAPI.YISERR(res))) { _throw(res, errmsg); functionReturnValue = res; return functionReturnValue; } if ((timeIdx > 0)) { query = "GET " + _dataLoggerURL + "?run=" + runIdx.ToString() + "&time=" + timeIdx.ToString() + " HTTP/1.1\n\r\n\r"; } else { query = "GET " + _dataLoggerURL + " HTTP/1.1\n\r\n\r"; } res = dev.HTTPRequest(query, ref buffer, ref errmsg); if ((YAPI.YISERR(res))) { res = YAPI.UpdateDeviceList(ref errmsg); if ((YAPI.YISERR(res))) { _throw(res, errmsg); functionReturnValue = res; return functionReturnValue; } res = dev.HTTPRequest("GET " + _dataLoggerURL + " HTTP/1.1\n\r\n\r", ref buffer, ref errmsg); if ((YAPI.YISERR(res))) { _throw(res, errmsg); functionReturnValue = res; return functionReturnValue; } } try { jsondata = new YAPI.TJsonParser(buffer); } catch (Exception e) { errmsg = "unexpected JSON structure: " + e.Message; _throw(YAPI.IO_ERROR, errmsg); functionReturnValue = YAPI.IO_ERROR; return functionReturnValue; } if (jsondata.httpcode == 404 && _dataLoggerURL != "/dataLogger.json") { // retry using backward-compatible datalogger URL _dataLoggerURL = "/dataLogger.json"; return this.getData(runIdx, timeIdx, ref jsondata); } functionReturnValue = YAPI.SUCCESS; return functionReturnValue; }
//--- (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); }
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 == "voltage") { _voltage = member.ivalue; } else if (member.name == "failure") { _failure = member.ivalue; } else if (member.name == "overHeat") { _overHeat = member.ivalue; } else if (member.name == "overCurrent") { _overCurrent = member.ivalue; } else if (member.name == "overLoad") { _overLoad = member.ivalue; } else if (member.name == "regulationFailure") { _regulationFailure = member.ivalue; } else if (member.name == "extPowerFailure") { _extPowerFailure = member.ivalue; } else if (member.name == "move") { if (member.recordtype != YAPI.TJSONRECORDTYPE.JSON_STRUCT) goto failed; YAPI.TJSONRECORD submemb; for (int l=0 ; l<member.membercount ; l++) { submemb = member.members[l]; if (submemb.name == "moving") _move.moving = submemb.ivalue; else if (submemb.name == "target") _move.target = submemb.ivalue; else if (submemb.name == "ms") _move.ms = submemb.ivalue; } } else if (member.name == "pulseTimer") { if (member.recordtype != YAPI.TJSONRECORDTYPE.JSON_STRUCT) goto failed; YAPI.TJSONRECORD submemb; for (int l=0 ; l<member.membercount ; l++) { submemb = member.members[l]; if (submemb.name == "moving") _pulseTimer.moving = submemb.ivalue; else if (submemb.name == "target") _pulseTimer.target = submemb.ivalue; else if (submemb.name == "ms") _pulseTimer.ms = submemb.ivalue; } } } return 0; failed: return -1; }
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 == "position") { _position = member.ivalue; } else if (member.name == "range") { _range = member.ivalue; } else if (member.name == "neutral") { _neutral = member.ivalue; } else if (member.name == "move") { if (member.recordtype != YAPI.TJSONRECORDTYPE.JSON_STRUCT) goto failed; YAPI.TJSONRECORD submemb; for (int l=0 ; l<member.membercount ; l++) { submemb = member.members[l]; if (submemb.name == "moving") _move.moving = submemb.ivalue; else if (submemb.name == "target") _move.target = submemb.ivalue; else if (submemb.name == "ms") _move.ms = submemb.ivalue; } } } return 0; failed: return -1; }
//--- (YWatchdog implementation) protected override void _parseAttr(YAPI.TJSONRECORD member) { if (member.name == "state") { _state = member.ivalue > 0 ? 1 : 0; return; } if (member.name == "stateAtPowerOn") { _stateAtPowerOn = (int)member.ivalue; return; } if (member.name == "maxTimeOnStateA") { _maxTimeOnStateA = member.ivalue; return; } if (member.name == "maxTimeOnStateB") { _maxTimeOnStateB = member.ivalue; return; } if (member.name == "output") { _output = member.ivalue > 0 ? 1 : 0; return; } if (member.name == "pulseTimer") { _pulseTimer = member.ivalue; return; } if (member.name == "delayedPulseTimer") { 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") _delayedPulseTimer.moving = (int) submemb.ivalue; else if (submemb.name == "target") _delayedPulseTimer.target = (int) submemb.ivalue; else if (submemb.name == "ms") _delayedPulseTimer.ms = (int) submemb.ivalue; } } return; } if (member.name == "countdown") { _countdown = member.ivalue; return; } if (member.name == "autoStart") { _autoStart = member.ivalue > 0 ? 1 : 0; return; } if (member.name == "running") { _running = member.ivalue > 0 ? 1 : 0; return; } if (member.name == "triggerDelay") { _triggerDelay = member.ivalue; return; } if (member.name == "triggerDuration") { _triggerDuration = member.ivalue; return; } base._parseAttr(member); }
protected abstract int _parse(YAPI.TJSONRECORD parser);
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 == "enabled") { _enabled = member.ivalue; } else if (member.name == "portState") { _portState = member.ivalue; } else if (member.name == "baudRate") { _baudRate = member.ivalue; } } return 0; failed: return -1; }
//--- (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); }
//--- (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 = Math.Round(member.ivalue * 1000.0 / 65536.0) / 1000.0; 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); }
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 == "calibratedValue") { _calibratedValue = member.ivalue; } else if (member.name == "rawValue") { _rawValue = member.ivalue; } else if (member.name == "analogCalibration") { _analogCalibration = member.ivalue; } else if (member.name == "calibrationMax") { _calibrationMax = member.ivalue; } else if (member.name == "calibrationMin") { _calibrationMin = member.ivalue; } else if (member.name == "sensitivity") { _sensitivity = member.ivalue; } else if (member.name == "isPressed") { _isPressed = member.ivalue; } else if (member.name == "lastTimePressed") { _lastTimePressed = member.ivalue; } else if (member.name == "lastTimeReleased") { _lastTimeReleased = member.ivalue; } } return 0; failed: return -1; }
//--- (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); }
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 == "productName") { _productName = member.svalue; } else if (member.name == "serialNumber") { _serialNumber = member.svalue; } else if (member.name == "logicalName") { _logicalName = member.svalue; } else if (member.name == "productId") { _productId = member.ivalue; } else if (member.name == "productRelease") { _productRelease = member.ivalue; } else if (member.name == "firmwareRelease") { _firmwareRelease = member.svalue; } else if (member.name == "persistentSettings") { _persistentSettings = member.ivalue; } else if (member.name == "luminosity") { _luminosity = member.ivalue; } else if (member.name == "beacon") { _beacon = member.ivalue; } else if (member.name == "upTime") { _upTime = member.ivalue; } else if (member.name == "usbCurrent") { _usbCurrent = member.ivalue; } else if (member.name == "rebootCountdown") { _rebootCountdown = member.ivalue; } else if (member.name == "usbBandwidth") { _usbBandwidth = member.ivalue; } } return 0; failed: return -1; }
//--- (YCurrent implementation) protected override void _parseAttr(YAPI.TJSONRECORD member) { base._parseAttr(member); }