/// <summary> /// 修改单个信号设置信息 /// </summary> /// <param name="name">原信号名称</param> /// <param name="changesetting">修改后的信号设置信息</param> /// <returns></returns> public static bool ChangeValue(string name, OneListSetting changesetting) { var onesetting = _Settings.Find((x) => x.SignalName == name); if (onesetting == null) { cards[onesetting.OneCardSetting.cardname.Value].DelChannel(onesetting.OneCardSetting.channel.channel.Value); CardSettingError.RaiseError(001); return(false); } // setting修改 onesetting = changesetting; // 采集卡修改 cards[changesetting.OneCardSetting.cardname.Value].SetSamplerate(changesetting.OneCardSetting.channel.channel.Value, changesetting.OneCardSetting.samplerate); cards[changesetting.OneCardSetting.cardname.Value].SetValuesRange(changesetting.OneCardSetting.channel.channel.Value, changesetting.OneCardSetting.range.Value); // 数据库修改 var info = CollectDataSet.GetSignal(name); SignalInfo new_info = new SignalInfo(); new_info.cardname = changesetting.OneCardSetting.cardname.Value; new_info.name = changesetting.SignalName; new_info.position = changesetting.SensorPosition; new_info.resolution = (ushort)cards[changesetting.OneCardSetting.cardname.Value].GetResolution(); new_info.sensortype = changesetting.SensorType; new_info.signalrange = changesetting.OneCardSetting.range.Value; new_info.detectequipment = changesetting.DetectEquipment; new_info.resolutiondouble = cards[changesetting.OneCardSetting.cardname.Value].GetDoubleResolution(changesetting.OneCardSetting.range.Value, out new_info.basevalue); CollectDataSet.ChgSignal(info, new_info); ListChanged?.Invoke("Chg", changesetting); return(true); }
/// <summary> /// 添加单行信号设置 /// </summary> /// <param name="onesetting">单个信号设置</param> /// <returns>是否添加成功</returns> public static bool AddSetting(OneListSetting onesetting) { // setting添加 _Settings.Add(onesetting); // 采集卡进行设置采样频率以及电信号范围 cards[onesetting.OneCardSetting.cardname.Value].SetSamplerate(onesetting.OneCardSetting.channel.channel.Value, onesetting.OneCardSetting.samplerate); cards[onesetting.OneCardSetting.cardname.Value].SetValuesRange(onesetting.OneCardSetting.channel.channel.Value, onesetting.OneCardSetting.range.Value); // 将该行信号设置添加到数据库母表,并建立对应子表 SignalInfo info = new SignalInfo(); info.cardname = onesetting.OneCardSetting.cardname.Value; info.name = onesetting.SignalName; info.position = onesetting.SensorPosition; info.resolution = (ushort)cards[onesetting.OneCardSetting.cardname.Value].GetResolution(); info.sensortype = onesetting.SensorType; info.signalrange = onesetting.OneCardSetting.range.Value; info.detectequipment = onesetting.DetectEquipment; info.resolutiondouble = cards[onesetting.OneCardSetting.cardname.Value].GetDoubleResolution(onesetting.OneCardSetting.range.Value, out info.basevalue); CollectDataSet.AddSignal(info); // 事件 ListChanged?.Invoke("Add", onesetting); return(true); }
/// <summary> /// 停止信号采集 /// </summary> public static void StopRecord() { if (IsRecording) { stoptime = DateTime.Now.ToOADate(); foreach (var k in cards.Keys) { cards[k].StopRecord(); } foreach (var x in Settings) { CollectDataSet.AddTime(x.SignalName, starttime, stoptime); } _isRecording = false; RecordStageChanged?.Invoke(false); } }
/// <summary> /// 删除单个信号设置 /// </summary> /// <param name="name"></param> public static bool DelSetting(string name) { var onesetting = _Settings.Find(x => x.SignalName == name); if (onesetting != null) { // 采集卡删除 cards[onesetting.OneCardSetting.cardname.Value].DelChannel(onesetting.OneCardSetting.channel.channel.Value); // setting删除 _Settings.Remove(onesetting); // 数据库删除 CollectDataSet.DelSignal(onesetting.SignalName); // 事件 ListChanged?.Invoke("Del", onesetting); return(true); } else { CardSettingError.RaiseError(001); return(false); } }