/// <summary> /// Обновить списки /// </summary> private void updateLists() { listView1.Items.Clear(); foreach (int id in CasLP16.Instance.getIDsOfPLUs()) { PLU plu = CasLP16.Instance.GetPLUbyID(id); ListViewItem lvi = listView1.Items.Add(plu.ID.ToString()); lvi.SubItems.Add(plu.Code.ToString()); lvi.SubItems.Add(plu.ProductName1); lvi.SubItems.Add(plu.ProductName2.ToString()); lvi.SubItems.Add(plu.Price.ToString()); lvi.SubItems.Add(plu.LiveTime.ToString()); lvi.SubItems.Add(plu.TaraWeight.ToString()); lvi.SubItems.Add(plu.GroupCode.ToString()); lvi.SubItems.Add(plu.MessageID.ToString()); lvi.Tag = plu; } ///Обновляем сообщения lvMSG.Items.Clear(); foreach (int id in CasLP16.Instance.getIDsOfMSGs()) { MSG msg = CasLP16.Instance.GetMSGbyID(id); ListViewItem lvi = lvMSG.Items.Add(msg.ID.ToString()); lvi.SubItems.Add(msg.Text); lvi.Tag = msg; } tbMessage.Text = ""; tbMessage.Enabled = false; Application.DoEvents(); if (!ScaleOpt.GetBoolOpt(ScaleOpt.OptType.Monitoring)) { saveSummarys(); } }
/// <summary> /// Отдельный поток.Загружает данные с весов /// Также устанавливает соединение если нет такового /// <param name="loadMsg">Загружать ли сообщения</param> /// </summary> private static void loadfromscale(bool loadMsg) { _logger.DebugFormat("loadFromScale"); //Если с весами работает другой поток(StartListen), то надо подождать. while (CasLP16.Instance.Loading) { Thread.Sleep(1000); } if (!CasLP16.Instance.Connected) { CasLP16.Instance.SetScaleAddress(ScaleOpt.GetStrOpt(ScaleOpt.OptType.ScaleAddres), ScaleOpt.GetIntOpt(ScaleOpt.OptType.ScalePort)); _lastAnswer = CasLP16.Instance.Connect(); _logger.DebugFormat("Connection: {0:d}", _lastAnswer); if (_lastAnswer != ReturnCode.SUCCESS) { return; } } _lastAnswer = CasLP16.Instance.LoadPLUs(ScaleOpt.GetIntOpt(ScaleOpt.OptType.ScanPLUFrom), ScaleOpt.GetIntOpt(ScaleOpt.OptType.ScanPLUUntil)); _logger.DebugFormat("loadPLU: {0:d}", _lastAnswer); if (_lastAnswer != ReturnCode.SUCCESS) { return; } if (loadMsg) { _lastAnswer = CasLP16.Instance.LoadMSGs(ScaleOpt.GetIntOpt(ScaleOpt.OptType.ScanMSGFrom), ScaleOpt.GetIntOpt(ScaleOpt.OptType.ScanMSGUntil)); _logger.DebugFormat("loadMSG: {0:d}", _lastAnswer); if (_lastAnswer != ReturnCode.SUCCESS) { return; } } }
/// <summary> /// Запускает поток, проверяющий внесение новых данных /// </summary> public static void StartMonitoring() { if (!ScaleOpt.GetBoolOpt(ScaleOpt.OptType.Monitoring)) { return; } _scaleFormActive = false; _scanSmrs = true; Thread scaner = new Thread(listener); scaner.IsBackground = true; scaner.Start(); }
private void tabControl1_Selected(object sender, TabControlEventArgs e) { if (tabControl1.SelectedTab == tpOptions) { tbAddress.Text = ScaleOpt.GetStrOpt(ScaleOpt.OptType.ScaleAddres); tbPort.Text = ScaleOpt.GetStrOpt(ScaleOpt.OptType.ScalePort); tbSF.Text = ScaleOpt.GetStrOpt(ScaleOpt.OptType.ScanPLUFrom); tbSU.Text = ScaleOpt.GetStrOpt(ScaleOpt.OptType.ScanPLUUntil); nudScanFreq.Value = ScaleOpt.GetIntOpt(ScaleOpt.OptType.ScanDelay); tbMSGsf.Text = ScaleOpt.GetStrOpt(ScaleOpt.OptType.ScanMSGFrom); tbMSGsu.Text = ScaleOpt.GetStrOpt(ScaleOpt.OptType.ScanMSGUntil); chMonitor.Checked = nudScanFreq.Enabled = ScaleOpt.GetBoolOpt(ScaleOpt.OptType.Monitoring); } }
private void btOptionsSave_Click(object sender, EventArgs e) { ScaleOpt.SaveStrOpt(ScaleOpt.OptType.ScaleAddres, tbAddress.Text); ScaleOpt.SaveStrOpt(ScaleOpt.OptType.ScalePort, tbPort.Text); ScaleOpt.SaveStrOpt(ScaleOpt.OptType.ScanPLUFrom, tbSF.Text); ScaleOpt.SaveStrOpt(ScaleOpt.OptType.ScanPLUUntil, tbSU.Text); ScaleOpt.SaveIntOpt(ScaleOpt.OptType.ScanDelay, (int)nudScanFreq.Value); ScaleOpt.SaveStrOpt(ScaleOpt.OptType.ScanMSGFrom, tbMSGsf.Text); ScaleOpt.SaveStrOpt(ScaleOpt.OptType.ScanMSGUntil, tbMSGsu.Text); ScaleOpt.SaveBoolOpt(ScaleOpt.OptType.Monitoring, chMonitor.Checked); if (chMonitor.Checked) { _contSS = true; } tabControl1.SelectedTab = tabPage1; }
public static void listener() { while (_scanSmrs) { if (!CasLP16.Instance.Loading) { loadfromscale(false); saveSummarys(); } Thread.Sleep(ScaleOpt.GetIntOpt(ScaleOpt.OptType.ScanDelay) * 1000); } if (!_scaleFormActive) { CasLP16.Instance.Disconnect(); } }