// update the datalogger control buttons private void refreshDatloggerButton(YSensor s) { if (s != null) { YModule m = s.get_module(); // get the module harboring the sensor YDataLogger dtl = YDataLogger.FindDataLogger(m.get_serialNumber() + ".dataLogger"); if (dtl.isOnline()) { if (dtl.get_recording() == YDataLogger.RECORDING_ON) { RecordButton.Enabled = false; PauseButton.Enabled = true; DeleteButton.Enabled = false; return; } else { RecordButton.Enabled = true; PauseButton.Enabled = false; DeleteButton.Enabled = true; return; } } } RecordButton.Enabled = false; PauseButton.Enabled = false; DeleteButton.Enabled = false; }
// Datalogger buttons handling private void DataLoggerButton_Click(object sender, EventArgs e) { YSensor s = getSelectedSensor(); if (s != null) { YModule m = s.get_module(); // get the module harboring the sensor YDataLogger dtl = YDataLogger.FindDataLogger(m.get_serialNumber() + ".dataLogger"); if (dtl.isOnline()) { if (sender == RecordButton) { dtl.set_recording(YDataLogger.RECORDING_ON); } if (sender == PauseButton) { dtl.set_recording(YDataLogger.RECORDING_OFF); } if (sender == DeleteButton) { dtl.set_recording(YDataLogger.RECORDING_OFF); MessageBox.Show("clear"); dtl.forgetAllDataStreams(); clearGraph(); } } } refreshDatloggerButton(s); }
public static YDataLoggerProxy FindDataLogger(string name) { // cases to handle: // name ="" no matching unknwn // name ="" unknown exists // name != "" no matching unknown // name !="" unknown exists YDataLogger func = null; YDataLoggerProxy res = (YDataLoggerProxy)YFunctionProxy.FindSimilarUnknownFunction("YDataLoggerProxy"); if (name == "") { if (res != null) { return(res); } res = (YDataLoggerProxy)YFunctionProxy.FindSimilarKnownFunction("YDataLoggerProxy"); if (res != null) { return(res); } func = YDataLogger.FirstDataLogger(); if (func != null) { name = func.get_hardwareId(); if (func.get_userData() != null) { return((YDataLoggerProxy)func.get_userData()); } } } else { // allow to get datalogger from the name of any function int p = name.IndexOf("."); if (p > 0) { name = name.Substring(0, p) + ".dataLogger"; } func = YDataLogger.FindDataLogger(name); if (func.get_userData() != null) { return((YDataLoggerProxy)func.get_userData()); } } if (res == null) { res = new YDataLoggerProxy(func, name); } if (func != null) { res.linkToHardware(name); if (func.isOnline()) { res.arrival(); } } return(res); }
// link the instance to a real YoctoAPI object internal override void linkToHardware(string hwdName) { YDataLogger hwd = YDataLogger.FindDataLogger(hwdName); // first redo base_init to update all _func pointers base_init(hwd, hwdName); // then setup Yocto-API pointers and callbacks init(hwd); }
public void reloadConfig(YModule Source) { _name = _sourceSensor.get_friendlyName();; _serial = _sourceSensor.get_module().get_module().get_serialNumber(); _unit = _sourceSensor.get_unit(); _datalogger = YDataLogger.FindDataLogger(_serial + ".dataLogger"); _tempSensor = YTemperature.FindTemperature(_serial + ".temperature"); string tt = _sourceSensor.get_hardwareId().Replace("weighScale", "genericSensor"); _genSensor = YGenericSensor.FindGenericSensor(tt); }
private void clearDataLogger(object sender, EventArgs e) { if (System.Windows.Forms.MessageBox.Show("Do you really want to erase contents of all dataloggers related to this graph?", "Erase dataloggers contents?", MessageBoxButtons.YesNo) == DialogResult.No) { return; } List <YDataLogger> loggers = new List <YDataLogger>(); for (int i = 0; i < SeriesCount; i++) { ChartSerie s = (ChartSerie)prop.GetType().GetProperty("Graph_series" + i.ToString()).GetValue(prop, null); CustomYSensor sensor = s.DataSource_source; if (!(sensor is NullYSensor)) { sensor.stopDataloggerloading(); string serial = sensor.get_hardwareId(); int n = serial.IndexOf("."); serial = serial.Substring(0, n); YDataLogger d = YDataLogger.FindDataLogger(serial + ".dataLogger"); if (d.isOnline()) { if (loggers.IndexOf(d) < 0) { loggers.Add(d); } } } } for (int i = 0; i < loggers.Count; i++) { loggers[i].forgetAllDataStreams(); loggers[i].set_recording(YDataLogger.RECORDING_ON); } bool tmp = prop.Graph_showRecordedData; prop.Graph_showRecordedData = false; truncateView(); prop.Graph_showRecordedData = tmp; }
private List <List <double> > GetRecordList(string serial) { StreamWriter file = new StreamWriter("c:\\tmp\\debug.log"); YDataLogger logger = YDataLogger.FindDataLogger(serial + ".dataLogger"); List <YMeasure> qt_w = LoadQT(serial + ".qt1"); List <YMeasure> qt_x = LoadQT(serial + ".qt2"); List <YMeasure> qt_y = LoadQT(serial + ".qt3"); List <YMeasure> qt_z = LoadQT(serial + ".qt4"); int count = qt_w.Count; double len = qt_w[qt_w.Count - 1].get_startTimeUTC() - qt_w[0].get_startTimeUTC(); double frame = len * 30; file.WriteLine("nb measure = " + count + " duration:" + len + "s (we should get " + frame + " at 30/s)"); List <List <double> > angles = new List <List <double> >(count); double start = qt_w[0].get_startTimeUTC(); for (int i = 0; i < count; i++) { List <double> pos = computeAngles(qt_w[i].get_averageValue(), qt_x[i].get_averageValue(), qt_y[i].get_averageValue(), qt_z[i].get_averageValue(), 0, qt_w[i].get_startTimeUTC() - qt_w[0].get_startTimeUTC() ); angles.Add(pos); len = qt_w[i].get_endTimeUTC() - qt_w[i].get_startTimeUTC(); double abs = qt_w[i].get_startTimeUTC() - start; String line = String.Format("{0} -> {1:0.000}s len{2:0.000} : W={3:0.00} X={4:0.00} Y={5:0.00} Z={6:0.00} => r={7:0.00} p={8:0.00} h={9:0.00}", i, abs, len, qt_w[i].get_averageValue(), qt_x[i].get_averageValue(), qt_y[i].get_averageValue(), qt_z[i].get_averageValue(), pos[0], pos[1], pos[2]); file.WriteLine(line); backgroundWorker1.ReportProgress(10 * i / count); } file.Close(); return(angles); }
private void ConfigureYocto3d(string serial) { YQt q1 = YQt.FindQt(serial + ".qt1"); q1.set_logFrequency("25/s"); YQt q2 = YQt.FindQt(serial + ".qt2"); q2.set_logFrequency("25/s"); YQt q3 = YQt.FindQt(serial + ".qt3"); q3.set_logFrequency("25/s"); YQt q4 = YQt.FindQt(serial + ".qt4"); q4.set_logFrequency("25/s"); YDataLogger logger = YDataLogger.FindDataLogger(serial + ".dataLogger"); logger.set_recording(YDataLogger.RECORDING_OFF); logger.set_autoStart(YDataLogger.AUTOSTART_OFF); logger.set_beaconDriven(YDataLogger.BEACONDRIVEN_ON); logger.get_module().saveToFlash(); logger.forgetAllDataStreams(); System.Threading.Thread.Sleep(5000); MessageBox.Show("the Yocto-3D " + serial + " is now ready to record data"); }
private void moduleInventory() { YModule m, currentmodule; string name; int index; comboBox1.Items.Clear(); currentmodule = null; m = YModule.FirstModule(); while (m != null) { if (m.get_productName() == "Yocto-3D") { comboBox1.Items.Add(m); //stop the datalogger YDataLogger d = YDataLogger.FindDataLogger(m.get_serialNumber() + ".dataLogger"); d.set_recording(YDataLogger.RECORDING_OFF); } m = m.nextModule(); } if (comboBox1.Items.Count == 0) { comboBox1.Enabled = false; reset.Enabled = false; loadButton.Enabled = false; } else { comboBox1.Enabled = true; reset.Enabled = true; loadButton.Enabled = true; index = 0; comboBox1.SelectedIndex = index; } }