private void updateItem_store_SelectedIdxChg(object sender, EventArgs e) { Log.WriteLog(LogType.Trace, "come in updateItem_store_SelectedIdxChg"); lConnectMsg.Text = " "; lStoreMsg.Text = " "; try { if (cbStore.SelectedIndex > -1) { LTS.Store stStore = listS[cbStore.SelectedIndex]; LTS.Settings set = DAT.DataAccess.GetSettings().Where(y => y.StoreID == stStore.StoreID && y.SettingsSelect == true).FirstOrDefault(); //在指定的store下进行扫描,并返回扫到的epc if (set == null) { Log.WriteLog(LogType.Warning, "warning:there is not settings available in store[" + stStore.StoreID + "]"); lStoreMsg.Text = ("the matchine[" + stStore.StoreName + "] is not band any settings, please change another matchine. "); } } } catch (Exception ex) { Log.WriteLog(LogType.Error, "error to change store index, the error msg is " + ex.Message + ""); } }
private void addItem_rfid_click(object sender, EventArgs e) { Log.WriteLog(LogType.Trace, "come in addItem_rfid_click"); lStoreMsg.Visible = false; try { try { time = 0; lblTimer.Text = time.ToString(); timer = new System.Timers.Timer(); //注册时间超时后需要执行的事件 timer.Elapsed += addItem_timer_elapsed; timer.Interval = 1000; //屏蔽一些控件的可用性 addItem_enableOrDisable(false); epc = ""; int iStore = cbStore.SelectedIndex; LTS.Store s = listS[iStore]; //读取store下生效的settings配置 LTS.Settings set = DAT.DataAccess.GetSettings().Where(y => y.StoreID == s.StoreID && y.SettingsSelect == true).FirstOrDefault(); if (set != null) { Log.WriteLog(LogType.Trace, "goto connect reader with setting[" + set.SettingsID + "] in store[" + s.StoreID + "]"); addItem_connect(set); } else { //lblConnect.Text = ("Settings not found!"); lStoreMsg.Visible = true; Log.WriteLog(LogType.Error, "can not get any settings from database with in store[" + s.StoreID + "]"); addItem_enableOrDisable(true); } } catch (Exception exx) { Log.WriteLog(LogType.Error, "error to get settings info with store"); //lblConnect.Text = ("Store not selected!"); lStoreMsg.Visible = true; addItem_enableOrDisable(true); } } catch (Exception ex) { Log.WriteLog(LogType.Error, "error to connect to reader in store"); MessageBox.Show("Sorry Something went wrong, the action was not completed!"); } }
/*向数据库添加一条setting记录*/ public static bool SA_AddSettings(string sStoreName, int iStoreId, string sSettingsName, ref int iSettingsId) { StringBuilder sLogStr = new StringBuilder(); //LTS.Store oStore; LTS.Settings oSettings = null; sLogStr.AppendFormat("come in SA_AddSettings\r\nsStoreName[{0}], sSettingsName[{1}],iStoreId[{2}] ", sStoreName, sSettingsName, iStoreId); Log.WriteLog(LogType.Trace, sLogStr); try { //oStore = DAT.DataAccess.GetStoreItemByName(sStoreName); //oStore = DAT.DataAccess.GetStoreItemByID(iStoreId); oSettings = DAT.DataAccess.GetSettingsItemByName(sSettingsName, iStoreId); if (oSettings == null) { oSettings = new LTS.Settings(); oSettings.SettingsName = sSettingsName; oSettings.StoreID = iStoreId; oSettings.SettingsSelect = false; iSettingsId = DAT.DataAccess.AddSettings(oSettings); if (iSettingsId == -1) { Log.WriteLog(LogType.Error, "error to call DataAccess.AddSettings"); return(false); } sLogStr.Length = 0; sLogStr.AppendFormat("success to add settings record with id[{0}], name[{1}],selectFlag[{2}],storeId[{3}]", iSettingsId, oSettings.SettingsName, oSettings.SettingsSelect, iStoreId); Log.WriteLog(LogType.Trace, sLogStr); return(true); } else { iSettingsId = oSettings.SettingsID; sLogStr.Length = 0; sLogStr.AppendFormat("success to get settings record with id[{0}], name[{1}],storeId[{2}]", iSettingsId, oSettings.SettingsName, iStoreId); Log.WriteLog(LogType.Trace, sLogStr); return(true); } } catch (Exception ex) { Log.WriteLog(LogType.Error, "TraceLog Error:" + ex.Message.ToString()); return(false); } }
//Margo private void button2_Click(object sender, EventArgs e) { try { label1.Visible = false; if (st.Where(u => u.StoreName == comboBoxStore.SelectedItem.ToString()).FirstOrDefault() != null) { try { time = 0; lblTimer.Text = time.ToString(); timer = new System.Timers.Timer(); timer.Elapsed += timer_Elapsed; timer.Interval = 1000; ((UpdateStock)this.Parent.Parent).EnableOrDisable(false); EnableOrDisable(false); epc = ""; int iStore = comboBoxStore.SelectedIndex; LTS.Store s = st[iStore]; LTS.Settings set = DAT.DataAccess.GetSettings().Where(y => y.StoreID == s.StoreID && y.SettingsSelect == true).FirstOrDefault(); if (set != null) { connect(set); } else { lblConnect.Text = ("Settings not found!"); EnableOrDisable(true); ((UpdateStock)this.Parent.Parent).EnableOrDisable(true); } } catch (Exception exx) { lblConnect.Text = ("Store not selected!"); EnableOrDisable(true); ((UpdateStock)this.Parent.Parent).EnableOrDisable(true); } } else { label1.Visible = true; } } catch (Exception ex) { MessageBox.Show("Sorry Something went wrong, the action was not completed!"); } }
public static LTS.Settings GetSettingsItemByID(int?SettingsID) { LTS.Settings settings = new LTS.Settings(); try { using (LTS.LTSBase access = new LTS.LTSDC()) { settings = access.Settings.Where(o => o.SettingsID == SettingsID).FirstOrDefault(); } } catch (Exception ex) { } return(settings); }
public static int AddSettings(LTS.Settings settings) { int?SettingsID = -1; try { using (LTS.LTSBase access = new LTS.LTSDC()) { access.InsertSettings(settings.SettingsName, settings.SettingsSelect, settings.StoreID, ref SettingsID); } } catch (Exception ex) { } return(SettingsID.Value); }
public static bool UpdateSettings(LTS.Settings settings) { bool completed = false; try { using (LTS.LTSBase access = new LTS.LTSDC()) { access.UpdateSettings(settings.SettingsName, settings.SettingsSelect, settings.StoreID, settings.SettingsID); completed = true; } } catch (Exception ex) { completed = false; } return(completed); }
//Margo private void comboBoxStore_SelectedIndexChanged(object sender, EventArgs e) { try { panel1.Visible = false; int index = comboBoxStore.SelectedIndex; int storeID = listS[index].StoreID; set = DAT.DataAccess.GetSettings().Where(r => r.StoreID == storeID && r.SettingsSelect == true).FirstOrDefault(); if (set != null) { setName.Text = set.SettingsName; List <LTS.Reader> r = new List <LTS.Reader>(); r = DAT.DataAccess.GetReader().Where(y => y.SettingsID == set.SettingsID).ToList(); List <string> rs = new List <string>(); for (int q = 0; q < r.Count; q++) { rs.Add(r[q].IPaddress + " : " + r[q].NumAntennas + " antenna(s)"); } lbReader.DataSource = rs; panel1.Visible = true; dbList = DAT.DataAccess.GetItem().Where(t => t.ItemStatus == true && t.StoreID == storeID).ToList(); theList.Clear(); for (int h = 0; h < dbList.Count; h++) { inventory i = new inventory(); i.itemID = dbList[h].ItemID; i.EPC = dbList[h].TagEPC; LTS.Product p = DAT.DataAccess.GetProduct().Where(t => t.ProductID == dbList[h].ProductID).FirstOrDefault(); if (p != null) { i.ProductName = p.ProductName; i.ProductDescription = p.ProductDescription; theList.Add(i); } } } } catch (Exception ex) { MessageBox.Show("Sorry Something went wrong, the action was not completed!"); } }
/*在指定的store里面扫描epc,并把epc返回*/ private void updateItem_rfid_click(object sender, EventArgs e) { Log.WriteLog(LogType.Trace, "come in updateItem_rfid_click"); lConnectMsg.Text = " "; label4.Visible = false; try { time = 0; lblTimer.Text = time.ToString(); timer = new System.Timers.Timer(); timer.Elapsed += updateItem_timer_elapsed; timer.Interval = 1000; updateItem_enableOrDisable(false); epc = ""; int iStore = cbStore.SelectedIndex; LTS.Store s = listS[iStore]; LTS.Settings set = DAT.DataAccess.GetSettings().Where(y => y.StoreID == s.StoreID && y.SettingsSelect == true).FirstOrDefault(); //在指定的store下进行扫描,并返回扫到的epc if (set != null) { Log.WriteLog(LogType.Trace, "goto connect reader using settings[" + set.SettingsID + "] configuration in store[" + s.StoreID + "]"); updateItem_connect(set); } else { Log.WriteLog(LogType.Warning, "warning:there is not settings available in store[" + s.StoreID + "]"); lStoreMsg.Text = ("Settings not found!"); updateItem_enableOrDisable(true); } } catch (Exception exx) { Log.WriteLog(LogType.Error, "error to get epc from specify store"); lStoreMsg.Text = ("error to get epc from specify store"); updateItem_enableOrDisable(true); } }
//Margo bool connect(LTS.Settings se) { try { lblConnect.Text = "Connecting..."; int index = comboBoxStore.SelectedIndex; if (st != null) { int storeID = st[index].StoreID; LTS.Settings set = se; sm = null; sm = new SettingsMain(); impinjrev.Clear(); sm.SettingsID = set.SettingsID; sm.SettingsName = set.SettingsName; sm.SettingsSelect = set.SettingsSelect; sm.StoreID = set.StoreID; LTS.Store store = DAT.DataAccess.GetStore().Where(i => i.StoreID == sm.StoreID).FirstOrDefault(); sm.StoreLocation = store.StoreLocation; sm.StoreName = store.StoreName; List <LTS.Reader> readers = new List <LTS.Reader>(); readers = DAT.DataAccess.GetReader().Where(j => j.SettingsID == sm.SettingsID).ToList(); for (int j = 0; j < readers.Count; j++) { ReaderMain rm = new ReaderMain(); rm.ReaderID = readers[j].ReaderID; rm.IPaddress = readers[j].IPaddress; rm.NumAntennas = readers[j].NumAntennas; rm.antennas = DAT.DataAccess.GetAntenna().Where(q => q.ReaderID == rm.ReaderID).ToList(); sm.Readers.Add(rm); } bool checks = true; for (int x = 0; x < sm.Readers.Count; x++) { ImpinjRevolution ir = new ImpinjRevolution(); ir.ReaderScanMode = ScanMode.ScanItem; ir.HostName = sm.Readers[x].IPaddress; ir.Antennas = sm.Readers[x].antennas; ir.TagRead += ir_TagRead; ir.Connect(); impinjrev.Add(ir); if (!ir.isConnected) { if (checks == true) { checks = false; } } } if (checks == true) { lblConnect.Text = "Connected"; timer.Start(); impinjrev.ForEach(imp => { imp.TagRead += ir_TagRead; imp.StartRead(); }); ((Form1)this.Parent.Parent.Parent.Parent).scan = true; lblConnect.Text = "Reading..."; lblTimer.Text = time.ToString(); } else { lblConnect.Text = "Not Connected!"; timer.Stop(); timer.Elapsed -= timer_Elapsed; time = 0; for (int i = 0; i < impinjrev.Count; i++) { impinjrev[i].StopRead(); impinjrev[i].Disconnect(); } EnableOrDisable(true); ((Form1)this.Parent.Parent.Parent.Parent).scan = false; } } } catch (Exception ex) { MessageBox.Show("Sorry Something went wrong, the action was not completed!"); } return(true); }
//Margo private void btnAdd_Click(object sender, EventArgs e) { try { label6.Visible = false; test.Visible = false; if (listS.Where(u => u.StoreName == comboBoxStore.SelectedItem.ToString()).FirstOrDefault() == null) { label6.Visible = true; } if (listSet.Where(u => u.SettingsName == comboBox1.SelectedItem.ToString()).FirstOrDefault() == null) { label6.Visible = true; } if (label6.Visible == false) { label6.Visible = false; if (dataGridViewReaders.Rows.Count != 0) { LTS.Settings old = DAT.DataAccess.GetSettings().Where(i => i.StoreID == SelectedStore && i.SettingsSelect == true).FirstOrDefault(); bool oldchanged; if (old != null) { old.SettingsSelect = false; oldchanged = DAT.DataAccess.UpdateSettings(old); } else { oldchanged = true; } if (oldchanged) { LTS.Settings newSelect = DAT.DataAccess.GetSettings().Where(i => i.SettingsID == SelectedSetting).FirstOrDefault(); newSelect.SettingsSelect = true; bool newchanged = DAT.DataAccess.UpdateSettings(newSelect); if (newchanged) { MessageBox.Show("Setting Selected Successfully!"); ((Main)this.Parent.Parent).ChangeView <Settings>(); } else { MessageBox.Show("Sorry, something went wrong, the setting was not selected!"); ((Main)this.Parent.Parent).ChangeView <Settings>(); } } else { MessageBox.Show("Sorry, something went wrong, the setting was not selected!"); ((Main)this.Parent.Parent).ChangeView <Settings>(); } } else { label6.Visible = true; } } } catch (Exception ex) { MessageBox.Show("Sorry Something went wrong, the action was not completed!"); } }
bool updateItem_connect(LTS.Settings se) { Log.WriteLog(LogType.Trace, "come in updateItem_connect"); try { lConnectMsg.Text = "Connecting..."; int index = cbStore.SelectedIndex; int storeID = listS[index].StoreID; LTS.Settings set = se; sm = null; sm = new SettingsMain(); impinjrev.Clear(); sm.SettingsID = set.SettingsID; sm.SettingsName = set.SettingsName; sm.SettingsSelect = set.SettingsSelect; sm.StoreID = set.StoreID; LTS.Store store = DAT.DataAccess.GetStore().Where(i => i.StoreID == sm.StoreID).FirstOrDefault(); if (null == store) { Log.WriteLog(LogType.Error, "error to get store with id[" + set.StoreID + "]"); return(false); } sm.StoreLocation = store.StoreLocation; sm.StoreName = store.StoreName; Log.WriteLog(LogType.Trace, "success to get settings[" + sm.SettingsID + "] witch in store[" + set.StoreID + "] info:settingsName[" + set.SettingsName + "], " + "select flag[" + set.SettingsSelect + "], the storeName[" + store.StoreName + "] and storeLocation[" + store.StoreLocation + "]"); List <LTS.Reader> readers = new List <LTS.Reader>(); readers = DAT.DataAccess.GetReader().Where(j => j.SettingsID == sm.SettingsID).ToList(); if (null == readers) { Log.WriteLog(LogType.Error, "error to get readers in settings[" + sm.SettingsID + "]"); return(false); } for (int j = 0; j < readers.Count; j++) { ReaderMain rm = new ReaderMain(); rm.ReaderID = readers[j].ReaderID; rm.IPaddress = readers[j].IPaddress; rm.NumAntennas = readers[j].NumAntennas; rm.antennas = DAT.DataAccess.GetAntenna().Where(q => q.ReaderID == rm.ReaderID).ToList(); sm.Readers.Add(rm); } bool checks = true; Log.WriteLog(LogType.Trace, "success go get " + readers.Count + " readers with in settings[" + sm.SettingsID + "] into memery"); Log.WriteLog(LogType.Trace, "success go get " + readers.Count + " readers with in settings[" + sm.SettingsID + "] into memery"); //根据settings上的读写器配置,进行读写器连接操作 for (int x = 0; x < sm.Readers.Count; x++) { bool bOk = true; //针对每一个reader配置生成一个reader解决方案节点 ImpinjRevolution ir = new ImpinjRevolution(); ir.ReaderScanMode = ScanMode.ScanItem; ir.HostName = sm.Readers[x].IPaddress; ir.Antennas = sm.Readers[x].antennas; ir.isConnected = false; //ir.TagRead += ir_TagRead; Log.WriteLog(LogType.Trace, "goto connect to reader with ip[" + ir.HostName + "]"); //连接到指定的读写器上 if (!ir.ir_connectReader()) { bOk = false; Log.WriteLog(LogType.Error, "error to connect to reader[" + ir.HostName + "]"); } impinjrev.Add(ir); if (!bOk) { if (checks == true) { Log.WriteLog(LogType.Trace, "goto set the check flag into false status."); checks = false; } } } Log.WriteLog(LogType.Trace, "after connect to all the readers"); if (checks == true) { lConnectMsg.Text = "Connected"; //启动定时器,定时器超时后,执行定时器超时函数 timer.Start(); //遍历读写器数组,为他们注册委托事件,并启动读写器 impinjrev.ForEach(imp => { imp.dReadHandler += updateItem_ir_tagRead; imp.ir_startRead(); }); Log.WriteLog(LogType.Trace, "success to start all readers"); ((Form1)this.Parent.Parent.Parent.Parent).scan = true; lConnectMsg.Text = "Reading..."; } else { lConnectMsg.Text = "Not Connected!"; timer.Stop(); timer.Elapsed -= updateItem_timer_elapsed; time = 0; for (int i = 0; i < impinjrev.Count; i++) { impinjrev[i].ir_stopRead(); impinjrev[i].ir_disconnect(); } updateItem_enableOrDisable(true); ((Form1)this.Parent.Parent.Parent.Parent).scan = false; } return(true); } catch (Exception ex) { Log.WriteLog(LogType.Error, "there is something wrong during connect to readers. the error msg is " + ex.Message + ""); MessageBox.Show("Sorry Something went wrong, the action was not completed!"); return(true); } }
private void btnAdd_Click(object sender, EventArgs e) { try { int totalNum = 0; lblName.Visible = false; lblReader.Visible = false; lblStore.Visible = false; lblAntenna.Visible = false; lblIP.Visible = false; string name = txtSettingsName.Text; if (name != "") { if (comboBoxStore.DataSource != null && listS.Where(u => u.StoreName == comboBoxStore.SelectedItem.ToString()).FirstOrDefault() != null) { if (reader.Count != 0) { int index = comboBoxStore.SelectedIndex; int storeID = listS[index].StoreID; sm.StoreID = storeID; sm.SettingsName = name; sm.SettingsSelect = false; for (int x = 0; x < reader.Count; x++) { ReaderMain rm = new ReaderMain(); rm.IPaddress = reader[x].IPaddress; rm.NumAntennas = reader[x].numAntennas; for (int y = 0; y < reader[x].antenna.Count; y++) { LTS.Antenna a = new LTS.Antenna(); a.AntennaNumber = reader[x].antenna[y].antennaNumber; a.RxPower = reader[x].antenna[y].rxPower; a.TxPower = reader[x].antenna[y].txPower; rm.antennas.Add(a); } sm.Readers.Add(rm); } LTS.Settings set = new LTS.Settings(); set.SettingsName = sm.SettingsName; set.SettingsSelect = sm.SettingsSelect; set.StoreID = sm.StoreID; int setDone = DAT.DataAccess.AddSettings(set); if (setDone != -1) { sm.SettingsID = setDone; for (int a = 0; a < sm.Readers.Count; a++) { LTS.Reader r = new LTS.Reader(); r.IPaddress = sm.Readers[a].IPaddress; r.NumAntennas = sm.Readers[a].NumAntennas; r.SettingsID = sm.SettingsID; int rid = DAT.DataAccess.AddReader(r); if (rid != -1) { sm.Readers[a].ReaderID = rid; for (int b = 0; b < sm.Readers[a].antennas.Count; b++) { LTS.Antenna ant = new LTS.Antenna(); ant.AntennaNumber = sm.Readers[a].antennas[b].AntennaNumber; ant.RxPower = sm.Readers[a].antennas[b].RxPower; ant.TxPower = sm.Readers[a].antennas[b].TxPower; ant.ReaderID = sm.Readers[a].ReaderID; int aid = DAT.DataAccess.AddAntenna(ant); if (aid != -1) { totalNum = totalNum + 1; } else { MessageBox.Show("Sorry, something went wrong, the setting was not added!"); ((Main)this.Parent.Parent).ChangeView <Settings>(); break; } } if (totalNum == sm.TotalAmountAntennas()) { MessageBox.Show("The setting was added successfully!"); ((Main)this.Parent.Parent).ChangeView <Settings>(); } else { MessageBox.Show("Sorry, something went wrong, the setting was not added!"); ((Main)this.Parent.Parent).ChangeView <Settings>(); } } else { MessageBox.Show("Sorry, something went wrong, the setting was not added!"); ((Main)this.Parent.Parent).ChangeView <Settings>(); break; } } } else { MessageBox.Show("Sorry, something went wrong, the setting was not added!"); ((Main)this.Parent.Parent).ChangeView <Settings>(); } } else { lblReader.Visible = true; } } else { lblStore.Visible = true; } } else { lblName.Visible = true; } } catch (Exception ex) { MessageBox.Show("Sorry Something went wrong, the action was not completed!"); } }
//当改变store时,显示旗下settings的配置信息 private void scanItem_cbStore_selectIdxChg(object sender, EventArgs e) { panel1.Visible = false; int index = cbStore.SelectedIndex; LTS.Store stStore = listS[index]; int iStoreId = stStore.StoreID; Log.WriteLog(LogType.Trace, "come in scanItem_cbStore_selectIdxChg"); Log.WriteLog(LogType.Trace, "goto get store[" + iStoreId + "] avaliable settings from database"); try { //获取store生效的settings gstSettings = DAT.DataAccess.GetSettings().Where(s => s.StoreID == iStoreId && s.SettingsSelect == true).FirstOrDefault(); if (gstSettings != null) { List <LTS.Reader> stReader; //获取settings配置的readers stReader = DAT.DataAccess.GetReader().Where(y => y.SettingsID == gstSettings.SettingsID).ToList(); if (stReader == null) { Log.WriteLog(LogType.Error, "error to get settings[" + gstSettings.SettingsID + "] readers info"); return; } Log.WriteLog(LogType.Trace, "success to get " + stReader.Count + " reader(s) from settings[" + gstSettings.SettingsID + "]"); //提取reader信息,并显示在list box中 List <string> sReaderInfo = new List <string>(); for (int q = 0; q < stReader.Count; q++) { sReaderInfo.Add(stReader[q].IPaddress + " : " + stReader[q].NumAntennas + " antenna(s)"); Log.WriteLog(LogType.Trace, "success to add reader[" + stReader[q].ReaderID + "] with [" + stReader[q].NumAntennas + "] antenna(s) into front"); } lbReader.DataSource = sReaderInfo; setName.Text = gstSettings.SettingsName; //在小窗口显示reader信息 scanItem_showReaderInfo(true, iStoreId); /*从数据库中获取指定store下的所有item*/ if (!scanItem_item2List(iStoreId, ref theList)) { Log.WriteLog(LogType.Error, "error to call scanItem_Items2List"); return; } //将items通过list box显示 if (!scanItem_itemList2ListBox(ref theList)) { Log.WriteLog(LogType.Error, "error to call scanItem_itemList2ListBox"); return; } } else { Log.WriteLog(LogType.Trace, "there is not avaliable settings in store[" + iStoreId + "], please change another store."); scanItem_showReaderInfo(false, iStoreId); } } catch (Exception ex) { Log.WriteLog(LogType.Error, "the exception is:" + ex.Message + "."); } }