Example #1
0
        //保存reader信息
        private static bool SaveReaderInfo(ref DataRow stDr, ref SettingsMain stSmi, int iIdx)
        {
            ReaderMain rm = new ReaderMain();

            Log.WriteLog(LogType.Trace, "come in SaveReaderInfo");

            rm.ReaderID    = Int32.Parse(stDr["ReaderID"].ToString());
            rm.IPaddress   = stDr["IPaddress"].ToString();
            rm.NumAntennas = Int32.Parse(stDr["NumAntennas"].ToString());
            rm.iReaderType = Int32.Parse(stDr["ReaderType"].ToString());

            Log.WriteLog(LogType.Trace, "success to save reader[" + iIdx + "] info is :ReaderID[" + rm.ReaderID + "], IPaddress[" + rm.IPaddress + "],NumAntennas[" + rm.NumAntennas + "], ReaderType[" + rm.iReaderType + "]");

            //保存reader下所有antenna信息
            if (rm.NumAntennas > 0)
            {
                if (!SaveAntennaInfo(ref rm, rm.ReaderID))
                {
                    Log.WriteLog(LogType.Trace, "error to call SaveAntennaInfo");
                    return(false);
                }
            }

            stSmi.Readers.Add(rm);

            return(true);
        }
Example #2
0
        //保存antenna信息
        private static bool SaveAntennaInfo(ref ReaderMain rm, int iReaderId)
        {
            DataSet   stDs;
            DataTable stDt;

            Log.WriteLog(LogType.Trace, "come in SaveAntennaInfo");

            string sSql = "select * from Antenna where ReaderID = " + iReaderId + " order by AntennaID;";


            try
            {
                stDs = SqlAccess.GetDataSet(sSql);

                Log.WriteLog(LogType.Trace, "success to get reader[" + iReaderId + "] antenna info from db");
                stDt = stDs.Tables[0];

                if (stDt.Rows.Count > 0)
                {
                    for (int iIdx = 0; iIdx < stDt.Rows.Count; iIdx++)
                    {
                        DataRow     stDr  = stDt.Rows[iIdx];
                        LTS.Antenna stAnt = new LTS.Antenna();

                        stAnt.AntennaID     = Int32.Parse(stDr["AntennaID"].ToString());
                        stAnt.ReaderID      = Int32.Parse(stDr["ReaderID"].ToString());
                        stAnt.RxPower       = decimal.Parse(stDr["RxPower"].ToString());
                        stAnt.TxPower       = decimal.Parse(stDr["TxPower"].ToString());
                        stAnt.AntennaNumber = Int32.Parse(stDr["AntennaNumber"].ToString());

                        rm.antennas.Add(stAnt);

                        Log.WriteLog(LogType.Trace, "success to save reader[" + iReaderId + "] antenna[" + stAnt.AntennaNumber + "] info:antennid[" + stAnt.AntennaID + "], " +
                                     "RxPower[" + stAnt.RxPower + "], TxPower[" + stAnt.TxPower + "]");
                    }
                }
                else
                {
                    Log.WriteLog(LogType.Trace, "info:there is not antenna with reader[" + iReaderId + "]");
                    return(true);
                }
            }
            catch (Exception ex)
            {
                Log.WriteLog(LogType.Error, "error to call GetDataSet");
                return(false);
            }



            return(true);
        }
        //Margo
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                dataGridViewReaders.DataSource = null;
                dataGridViewReaders.Rows.Clear();

                int settingsIndex = comboBox1.SelectedIndex;
                int settingsID    = listSet[settingsIndex].SettingsID;
                SelectedSetting = settingsID;

                SettingsMain sm = new SettingsMain();
                sm.SettingsID     = settingsID;
                sm.SettingsName   = listSet[settingsIndex].SettingsName;
                sm.SettingsSelect = listSet[settingsIndex].SettingsSelect;
                sm.StoreID        = listSet[settingsIndex].StoreID;

                smi = sm;

                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);
                }

                for (int i = 0; i < sm.Readers.Count; i++)
                {
                    for (int y = 0; y < sm.Readers[i].antennas.Count; y++)
                    {
                        dataGridViewReaders.Rows.Add(sm.Readers[i].IPaddress, sm.Readers[i].antennas[y].AntennaNumber, sm.Readers[i].antennas[y].TxPower, sm.Readers[i].antennas[y].RxPower);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Sorry Something went wrong, the action was not completed!");
            }
        }
Example #4
0
        //Margo
        private void Settings_Load(object sender, EventArgs e)
        {
            try
            {
                List <LTS.Settings> set = new List <LTS.Settings>();
                set = DAT.DataAccess.GetSettings().ToList();

                for (int x = 0; x < set.Count; x++)
                {
                    SettingsMain sm = new SettingsMain();
                    sm.SettingsID     = set[x].SettingsID;
                    sm.SettingsName   = set[x].SettingsName;
                    sm.SettingsSelect = set[x].SettingsSelect;
                    sm.StoreID        = set[x].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);
                    }

                    settings.Add(sm);
                }

                for (int i = 0; i < settings.Count; i++)
                {
                    dataGridViewSettings.Rows.Add(settings[i].SettingsID, settings[i].SettingsName, settings[i].SettingsSelect, settings[i].Readers.Count, settings[i].TotalAmountAntennas().ToString(), settings[i].StoreName);
                }
                dataGridViewSettings.ClearSelection();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Sorry Something went wrong, the action was not completed!");
            }
        }
        public override void HandleMessage(Message msg)
        {
            base.HandleMessage(msg);

            ReaderMain target;

            _ref.TryGetTarget(out target);

            ReaderMain act = target;

            if (act == null)
            {
                return;
            }

            switch (msg.What)
            {
            case ReaderConsts.MSG_LOOP_TEMP:
                App app = (App)act.Application;
                if (app.CheckIsRFIDReady())
                {
                    float t           = app.RfidMgr.BatteryTemperature;
                    int   chargeCycle = app.RfidMgr.BatteryChargeCycle;
                    app.BatteryTemperature = t;
                    app.BatteryChargeCycle = chargeCycle;

                    if (chargeCycle > 500 && !act.BatteryReminder)
                    {
                        act.BatteryReminder = true;
                        Toast.MakeText(act, Resource.String.toast_battery_charge_cycle_reminder, ToastLength.Long).Show();
                    }
                }

                act.StartLoopTemperatureTimer();
                break;
            }
        }
        //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);
        }
Example #7
0
        //Margo
        private void button5_Click(object sender, EventArgs e)
        {
            try
            {
                lblSelect.Visible = false;
                if (listS.Where(u => u.StoreName == comboBoxStore.SelectedItem.ToString()).FirstOrDefault() != null)
                {
                    if (set != null)
                    {
                        button4.Enabled       = false;
                        button2.Enabled       = false;
                        comboBoxStore.Enabled = false;
                        lblConnect.Text       = "Connecting ...";
                        lblStartRead.Visible  = false;
                        lblStop.Visible       = false;
                        btnStart.Enabled      = false;

                        lblConnect.Visible = true;
                        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.FullScan;
                            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)
                        {
                            config           = true;
                            lblConnect.Text  = "Connected";
                            btnStart.Enabled = true;
                            btnStop.Enabled  = false;
                            ((Form1)this.Parent.Parent.Parent.Parent).scan = true;
                        }
                        else
                        {
                            lblConnect.Text = "Not Connected";
                        }
                    }
                    else
                    {
                        MessageBox.Show("The Store selected does not have a setting set, please go to the Select Setting page and choose a setting!", "", MessageBoxButtons.OKCancel);
                    }
                }
                else
                {
                    lblSelect.Visible = true;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Sorry Something went wrong, the action was not completed!");
            }
        }
Example #8
0
        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);
            }
        }
 public ReaderHandler(ReaderMain act)
 {
     _ref = new WeakReference <ReaderMain>(act);
 }
Example #10
0
        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!");
            }
        }