protected void RaiseProgress(ProgressType progressType,
                              SchemaObjectType schemaObjectType,
                              string name, int?index, int?count)
 {
     ReaderEventArgs.RaiseEvent(ReaderProgress, this, progressType, schemaObjectType,
                                name, index, count);
 }
 private void OnReaderEventRaised(object sender, ReaderEventArgs e)
 {
     if (e != null && e.Type == Reader.EventType.Read)
     {
         Interlocked.Increment(ref _readerFinishedCount);
     }
 }
Beispiel #3
0
        public DatabaseTable Load(string tableName, CancellationToken ct)
        {
            if (ct.IsCancellationRequested)
            {
                return(new DatabaseTable());
            }
            ReaderEventArgs.RaiseEvent(ReaderProgress, this, ProgressType.ReadingSchema, SchemaObjectType.Tables, tableName, null, null);

            var           schemaOwner = _schemaReader.Owner;
            DatabaseTable table;

            using (var ds = _schemaReader.Table(tableName))
            {
                if (ds == null)
                {
                    return(null);
                }
                if (ds.Tables.Count == 0)
                {
                    return(null);
                }
                ReaderEventArgs.RaiseEvent(ReaderProgress, this, ProgressType.Processing, SchemaObjectType.Tables, tableName, null, null);

                table = _databaseSchema.FindTableByName(tableName, schemaOwner);
                if (table == null)
                {
                    table = new DatabaseTable();
                    _databaseSchema.Tables.Add(table);
                }
                table.Name        = tableName;
                table.SchemaOwner = schemaOwner;
                //columns must be done first as it is updated by the others
                schemaOwner = AddColumns(schemaOwner, tableName, table, ds);
                AddConstraints(ds, table);
                AddOthers(schemaOwner, tableName, table, ds);

                _schemaReader.PostProcessing(table);
            }
            return(table);
        }
Beispiel #4
0
        private void _readerImpinj_TagsEventSender(object sender, ReaderEventArgs e)
        {
            if (e.EventType != ReaderEventArgs.EventsType.TAGS_REPORT)
            {
                return;
            }


            foreach (var epc in e.Tags.Keys)
            {
                this.RunInUIThread(() =>
                {
                    var rssi    = e.Tags[epc].Item1;
                    var antenna = e.Tags[epc].Item2;
                    PublishEpc(epc, rssi, antenna);
                    if (listEpcs.Items.Count == 0 || !listEpcs.Items.ContainsKey(epc))
                    {
                        var item1  = new ListViewItem(new[] { epc, rssi.ToString(), antenna.ToString() });
                        item1.Name = epc;
                        listEpcs.Items.Add(item1);
                        _totalEpcs++;
                    }
                    else
                    {
                        var item_index = listEpcs.FindItemWithText(epc).Index;
                        listEpcs.Items[item_index].SubItems[1].Text = rssi.ToString();
                        listEpcs.Items[item_index].SubItems[2].Text = antenna.ToString();
                    }

                    _totalReads++;

                    lbltotalEpcs.Text  = _totalEpcs.ToString();
                    lbltotalReads.Text = _totalReads.ToString();
                });
            }
        }
 protected void RaiseReadingProgress(SchemaObjectType schemaObjectType)
 {
     ReaderEventArgs.RaiseEvent(ReaderProgress, this, ProgressType.ReadingSchema, schemaObjectType);
 }
Beispiel #6
0
 private void readCallBack(object sender, ReaderEventArgs e)
 {
     //this.numberCardNo.Value = Convert.ToDecimal(e.id);
     this.tbCardNoQ.Text = wsm.GetCardNoById(e.id);
     this.tbNeedName.Text = "";
     btnSearch_Click(null, null);
 }
Beispiel #7
0
        void OnReaderEvent(object sender, ReaderEventArgs e)
        {
            string mmm;

            if (e.Payload != null)
            {
                mmm = Encoding.ASCII.GetString(e.Payload);

                Console.WriteLine("[{0}]{1}", e.Kind, mmm);
            }

            // sender : Reader 객체
            // e.Kind : 발생된 이벤트 종류
            // e.Message : 이벤트 발생에 대한 설명
            // e.Payload : 리더로부터 수신된 바이트 배열
            // e.CloseType : 닫기 유형
            string payload;

            switch (e.Kind)
            {
            // 연결이 정상 처리 되면 발생합니다.
            case ReaderEventKind.Connected:
                Log.WLog("장비와 연결 되었습니다.");

                //램프를 끈다
                Lamp_Order(false);

                IsConnected = enConnectionStatus.Connected;

                dev.GetSioInputControl();
                break;

            // 연결이 정상적으로 해제되면 발생합니다.
            case ReaderEventKind.Disconnected:
                Log.WLog("장비와 연결이 종료 되었습니다.");
                IsConnected = enConnectionStatus.Disconnected;
                break;

            // 일정시간 동안 응답이 없는 경우 발생합니다.
            case ReaderEventKind.timeout:
                break;

            // 리더의 버전정보 수신시 발생합니다.
            case ReaderEventKind.Version:
                break;


            // 리더의 안테나 정보 수신시 발생합니다.
            case ReaderEventKind.AntennaState:
            // 리더의 안테나 파워값 수신시 발생합니다.
            case ReaderEventKind.Power:
                break;


            // Inventory시 Tag ID 수신시 발생합니다.
            case ReaderEventKind.TagId:
                // 리더로부터 수신된 데이터는 바이트 배열에 들어 있으며 문자열로 Decode하여 사용합니다.
                // 한개 이상의 수신 데이터가 들어 있을 수 있습니다.
                // 하기와 같이 "\r\n>" 기준으로 분리하여 사용합니다.

                payload = Encoding.ASCII.GetString(e.Payload);
                string[] tagIds = payload.Split(new string[] { "\r\n>" }, StringSplitOptions.RemoveEmptyEntries);

                foreach (string tagid in tagIds)
                {
                    //this.lvwInventory.Items.Add(tagid);
                    // 앞의 2자 (1T)는 응답코드이므로 제거합니다.
                    string epc = tagid.Substring(2);


                    //HEX 형태를 문자열로 표시해 준다.
                    string txt = string.Empty;
                    if (dev.TagType == TagType.ISO18000_6C_GEN2)
                    {
                        // PC 값 "HHHH" 을 제거하고 처리한다 - PC(HHHH)
                        int p = 4;
                        if (tagid.Length > p)
                        {
                            //201608 값 그대로 사용 하면 된다.
                            //string hex = epc.Substring(p, epc.Length - p);
                            //txt = dev.MakeTextFromHex(hex);

                            txt = epc;
                        }
                    }

                    //중복수신 체크
                    if (Tag_duplicate_min < 1)
                    {
                        dicTag.Clear();
                    }
                    else
                    {
                        string[] tags = dicTag.Keys.ToArray <string>();

                        //시간이 지난 정보 삭제
                        foreach (string tag in tags)
                        {
                            TimeSpan span = DateTime.Now - dicTag[tag];
                            if (span.TotalMinutes > Tag_duplicate_min)
                            {
                                dicTag.Remove(tag);
                            }
                        }

                        if (dicTag.ContainsKey(txt) || LastTagID.Equals(txt))
                        {
                            Log.WLog("RFID TAG 중복수신 - 처리 무시 [ROW]{0} [TXT]{1}", epc, txt);
                            return;
                        }

                        //중복수신 방지
                        dicTag.Add(txt, DateTime.Now);

                        LastTagID = txt;
                    }


                    Log.WLog("RFID TAG 수신 [ROW]{0} [TXT]{1}", epc, txt);

                    //램프를 켠다
                    Lamp_Order(true);
                    lamp_cnt = 0;

                    if (_onTagReceive != null)
                    {
                        _onTagReceive(this, epc, txt);
                    }
                }
                break;


            // Memory Bank 값 Read시 발생
            case ReaderEventKind.GetTagMemory:
                break;

            // Memory Bank 값 Write, Lock, Kill 등 작업에 대한 응답
            case ReaderEventKind.TagResponseCode:
                // C : Error등 응답코드
                break;

            case ReaderEventKind.SioInputStatus:
            case ReaderEventKind.SioInputTrigger:

                if (Op_Type == enOP_Type.I)
                {
                    payload = Encoding.ASCII.GetString(e.Payload);


                    switch (payload)
                    {
                    case "#PPACBF00#":
                    case "#PPACIS0000000000#":
                        isSensing = true;
                        break;

                    default:
                        isSensing = false;
                        break;
                    }

                    //isSensing = payload.Equals("#PPACBF00#") || payload.Equals("#PPACOS0000000000#");

                    Console.WriteLine("센스확인 {0}", isSensing);

                    Log.WLog("센스확인 {0}", isSensing);

                    inv_cnt = 0;

                    if (isSensing && Inventory_Status != Action.Start)
                    {
                        Inventory_Start();
                    }
                }



                break;
            }
        }
Beispiel #8
0
        private void OnReaderEvent(object sender, ReaderEventArgs e)
        {
            if (this.InvokeRequired)
            {
                this.BeginInvoke(new ReaderEventHandler(OnReaderEvent), new object[] { sender, e });
                return;
            }
            switch (e.Type)
            {
                case EventType.Connected:
                    {
                        tsLbState.Text = e.Message;
                        tsBtConnect.Text = "&Disconnect";
                        tsFunctions.Visible = true;
                        break;
                    }
                case EventType.Disconnected:
                    {
                        tsLbState.Text = e.Message;
                        tsBtConnect.Text = "&Connect";
                        tsFunctions.Visible = true;
                        if (e.CloseType == CloseType.FormClose)
                            Close();
                        else
                            setTimer(6000, "Reconnect");
                        break;
                    }
                case EventType.Timeout:
                    {
                        tsLbState.Text = e.Message;
                        break;
                    }
                ///////////////////////////////////////////////////////////////////////////////////////////////////////
                // BASIC OPERATIONS EVENTS
                ///////////////////////////////////////////////////////////////////////////////////////////////////////
                case EventType.Inventory:
                case EventType.ReadMemory:
                case EventType.WriteMemory:
                case EventType.Command:
                case EventType.Lock:
                case EventType.Kill:
                ///////////////////////////////////////////////////////////////////////////////////////////////////////
                // CONFIGURATIONS EVENTS
                ///////////////////////////////////////////////////////////////////////////////////////////////////////
                case EventType.Buzzer:
                case EventType.ContinueMode:
                case EventType.Power:
                case EventType.Version:
                case EventType.AccessPwd:
                case EventType.GlobalBand:
                case EventType.Port:
                case EventType.Selection:
                case EventType.Filtering:
                case EventType.Algorithm:
                case EventType.TcpIp:
                    {

                        //Received data are in the byte array (e.payload), it decodes into string using
                        //following function.
                        string szPayload = Encoding.ASCII.GetString(e.Payload);
                       // MessageBox.Show(szPayload);
                        //Many responses can be contained in the generated event and it separates first.
                        //Received data may contain tag ID, set value, response code, etc. according to call
                        //function, byte array(e.payload) may contain more than 1 response therefore it
                        //separates using following separator.

                        string[] szResponses = szPayload.Split(new string[] { "\r\n>" }, StringSplitOptions.RemoveEmptyEntries);
                        ///////////////////////////////////////////////////////////////////////////////////////////////////
                        // Response Code : [#]C##
                        // Tag Memory : [#]T3000111122223333444455556666[##]
                        // RSSI: [#]RFD##
                        // Settings Values : p0, c1, ...
                        ///////////////////////////////////////////////////////////////////////////////////////////////////
                        char code;
                        string szValue;
                        bool bCheckSum = reader.IsFixedType();
                        bool bMultiPort = reader.IsMultiPort();
                        int nPos = bMultiPort ? 1 : 0;
                        int flag1 = 0;
                        int rssi1 = 0, rssi2 = 0, rssi3 = 0, rssi4 = 0, rssi = 0 ;
                        Dictionary<string, int> dRss1 = new Dictionary<string, int>();
                        Dictionary<string, int> dRss2 = new Dictionary<string, int>();
                        Dictionary<string, int> dRss3 = new Dictionary<string, int>();
                        Dictionary<string, int> dRss4 = new Dictionary<string, int>();

                        string szTxt = string.Empty;
                        foreach (string szResponse in szResponses)
                        {
                            code = szResponse[nPos];
                            this.totalRead += 1;
                            switch (code)
                            {
                                case 'T':
                                    {
                                        szValue = szResponse.Substring(nPos + 1, szResponse.Length - (nPos + 1 + (bCheckSum ? 2 : 0)));//exclude [#]T/C, CheckSum
                                        num5 = szValue;
                                        if (szValue.Length > 4)
                                        {
                                            string hex = szValue.Substring(4, szValue.Length - 4);
                                            szTxt = Reader.MakeTextFromHex(hex).ToString();
                                            text = szTxt;
                                        }
                                        switch (szResponse[0])
                                        {
                                            case '1':
                                                tbTagId.Text = szValue;
                                                tbPort.Text = szResponse[0].ToString();
                                                tbText.Text = szTxt;
                                                foreach (string value in tagId)
                                                {
                                                    if (value.CompareTo(szValue) == 0)
                                                    {
                                                        flag1 = 1;
                                                        break;
                                                    }
                                                }
                                                if (flag1 == 0)
                                                {
                                                    tagId.Add(szValue);
                                                }
                                                break;
                                            case '2':
                                                tbTagId1.Text = szValue;
                                                tbPort1.Text = szResponse[0].ToString();
                                                tbText1.Text = szTxt;
                                                break;
                                            case '3':
                                                tbTagId2.Text = szValue;
                                                tbPort2.Text = szResponse[0].ToString();
                                                tbText2.Text = szTxt;
                                                break;
                                            case '4':
                                                tbTagId3.Text = szValue;
                                                tbPort3.Text = szResponse[0].ToString();
                                                tbText3.Text = szTxt;
                                                break;
                                            default:
                                                break;
                                        }
                                        lbxResponses.Items.Insert(0, "Tag ID: " + szValue);
                                        lbxResponses.Items.Insert(1, "Port: " + szResponse[0]);
                                        lbxResponses.Items.Insert(2, "Text: " + szTxt);
                                    }
                                    break;
                                case 'C':
                                    {
                                        szValue = szResponse.Substring(nPos + 1, szResponse.Length - (nPos + 1));//exclude [#]T/C
                                        szValue = szValue + "-" + reader.Responses(szValue);
                                        //if HEARTBEAT response, fire heartbeat timer again.
                                        if (string.Compare(szValue, "FF", StringComparison.Ordinal) == 0)
                                        {
                                            setTimer(9000, "Heartbeat");
                                        }
                                        lbxResponses.Items.Insert(0, "Data" + szValue);
                                    }
                                    break;
                                case 'R':
                                    {
                                        szValue = szResponse.Substring(szResponse.Length - 2, 2);
                                        rssi = Convert.ToInt32(szValue, 0x10);

                                        double a = sdk.distanceFromRssi(rssi);

                                        lbxResponses.Items.Insert(4, "Rssi " + szResponse[0] + ":" + " -" + rssi);
                                        switch (szResponse[0])
                                        {
                                            case '1':
                                                {
                                                    rssi1 = rssi;
                                                    tbRssi.Text = "-" + rssi.ToString();
                                                    arrRssi1.Add(rssi);
                                                    totalReadCounts1 ++;
                                                    tbRead.Text = totalReadCounts1.ToString();
                                                }
                                                break;
                                            case '2':
                                                {
                                                    rssi2 = rssi;
                                                    tbRssi1.Text = "-" + rssi.ToString();
                                                    arrRssi2.Add(rssi);
                                                    totalReadCounts2++;
                                                    tbRead1.Text = totalReadCounts2.ToString();
                                                }
                                                break;
                                            case '3':
                                                {
                                                    this.tbRssi2.Text = "-" + rssi.ToString();
                                                    rssi3 = rssi;
                                                    arrRssi3.Add(rssi);
                                                    totalReadCounts3++;
                                                    tbRead2.Text = totalReadCounts3.ToString();
                                                }
                                                break;
                                            case '4':
                                                {
                                                    rssi4 = rssi;
                                                    tbRssi3.Text = "-" + rssi.ToString();
                                                    arrRssi4.Add(rssi);
                                                    totalReadCounts4++;
                                                    tbRead3.Text = totalReadCounts4.ToString();
                                                }
                                                break;
                                            default:
                                                break;
                                        }
                                        if (trainingFlag ==false)
                                          {

                                            string query = "INSERT INTO rfidreader.rfid(TagId ,Rssi1,Rssi2, Rssi3, Rssi4, Text, TotalRead1, TotalRead2, TotalRead3, TotalRead4,Position) VALUE('" + num5 + "', '" + rssi1.ToString() + "','" + rssi2.ToString() + "',  '" + rssi3.ToString() + "', '" + rssi4.ToString() + "','" + text + "' , '" + totalReadCounts1.ToString() + "','" + totalReadCounts2.ToString() + "','" + totalReadCounts3.ToString() + "','" + totalReadCounts4.ToString() + "', '" + "" + "')";
                                            cmd = new MySqlCommand(query, conn);
                                            MySqlDataReader myReader;
                                            try
                                            {
                                                OpenConnection();
                                                myReader = cmd.ExecuteReader();
                                                CloseConnection();
                                            }
                                            catch (MySqlException ex)
                                            {
                                                MessageBox.Show(ex.Message);
                                                CloseConnection();
                                            }
                                            rssi1 = rssi2 = rssi3 = rssi4 = 0;
                                            this.totalRead = 0;
                                        }
                                    }
                                    break;

                                default:
                                       lbxResponses.Items.Insert(1, szResponse);
                                    break;
                            }

                        }
                        break;
                    }
                default:
                    break;
            }
        }
        public IList <DatabaseView> Execute(CancellationToken ct)
        {
            if (ct.IsCancellationRequested)
            {
                return(new List <DatabaseView>());
            }
            RaiseReadingProgress(SchemaObjectType.Views);
            var views = _readerAdapter.Views(null);

            if (ct.IsCancellationRequested)
            {
                return(views);
            }
            ReaderEventArgs.RaiseEvent(ReaderProgress, this, ProgressType.Processing, SchemaObjectType.Views);
            var viewFilter = _exclusions.ViewFilter;

            if (viewFilter != null)
            {
                views = views.Where(t => !viewFilter.Exclude(t.Name)).ToList();
            }

            if (ct.IsCancellationRequested)
            {
                return(views);
            }
            var sources = _readerAdapter.ViewSources(null);

            if (sources.Count > 0)
            {
                foreach (var view in views)
                {
                    var owner = view.SchemaOwner;
                    var name  = view.Name;
                    var src   = sources.FirstOrDefault(x => x.Name == name && x.SchemaOwner == owner);
                    if (src != null)
                    {
                        view.Sql = src.Text;
                    }
                }
            }

            //get full datatables for all tables, to minimize database calls
            if (ct.IsCancellationRequested)
            {
                return(views);
            }
            RaiseReadingProgress(SchemaObjectType.ViewColumns);

            var viewColumns = _readerAdapter.ViewColumns(null);
            var count       = views.Count;

            for (var index = 0; index < count; index++)
            {
                if (ct.IsCancellationRequested)
                {
                    return(views);
                }
                DatabaseView v = views[index];
                ReaderEventArgs.RaiseEvent(ReaderProgress, this, ProgressType.Processing, SchemaObjectType.ViewColumns, v.Name, index, count);
                IEnumerable <DatabaseColumn> cols;
                if (viewColumns.Count == 0)
                {
                    cols = _readerAdapter.ViewColumns(v.Name);
                }
                else
                {
                    cols = viewColumns.Where(x => x.TableName == v.Name && x.SchemaOwner == v.SchemaOwner);
                }
                v.Columns.AddRange(cols);
            }
            return(views);
        }
Beispiel #10
0
        private void OnReaderEvent(object sender, ReaderEventArgs e)
        {
            if (this.InvokeRequired)
            {
                this.BeginInvoke(new ReaderEventHandler(OnReaderEvent), new object[] { sender, e });
                return;
            }
            switch (e.Type)
            {
            case EventType.Connected:
            {
                tsLbState.Text      = e.Message;
                tsBtConnect.Text    = "&Disconnect";
                tsFunctions.Visible = true;
                break;
            }

            case EventType.Disconnected:
            {
                tsLbState.Text      = e.Message;
                tsBtConnect.Text    = "&Connect";
                tsFunctions.Visible = true;
                if (e.CloseType == CloseType.FormClose)
                {
                    Close();
                }
                else
                {
                    setTimer(6000, "Reconnect");
                }
                break;
            }

            case EventType.Timeout:
            {
                tsLbState.Text = e.Message;
                break;
            }

            ///////////////////////////////////////////////////////////////////////////////////////////////////////
            // BASIC OPERATIONS EVENTS
            ///////////////////////////////////////////////////////////////////////////////////////////////////////
            case EventType.Inventory:
            case EventType.ReadMemory:
            case EventType.WriteMemory:
            case EventType.Command:
            case EventType.Lock:
            case EventType.Kill:
            ///////////////////////////////////////////////////////////////////////////////////////////////////////
            // CONFIGURATIONS EVENTS
            ///////////////////////////////////////////////////////////////////////////////////////////////////////
            case EventType.Buzzer:
            case EventType.ContinueMode:
            case EventType.Power:
            case EventType.Version:
            case EventType.AccessPwd:
            case EventType.GlobalBand:
            case EventType.Port:
            case EventType.Selection:
            case EventType.Filtering:
            case EventType.Algorithm:
            case EventType.TcpIp:
            {
                //Received data are in the byte array (e.payload), it decodes into string using
                //following function.
                string szPayload = Encoding.ASCII.GetString(e.Payload);
                // MessageBox.Show(szPayload);
                //Many responses can be contained in the generated event and it separates first.
                //Received data may contain tag ID, set value, response code, etc. according to call
                //function, byte array(e.payload) may contain more than 1 response therefore it
                //separates using following separator.

                string[] szResponses = szPayload.Split(new string[] { "\r\n>" }, StringSplitOptions.RemoveEmptyEntries);
                ///////////////////////////////////////////////////////////////////////////////////////////////////
                // Response Code : [#]C##
                // Tag Memory : [#]T3000111122223333444455556666[##]
                // RSSI: [#]RFD##
                // Settings Values : p0, c1, ...
                ///////////////////////////////////////////////////////////////////////////////////////////////////
                char   code;
                string szValue;
                bool   bCheckSum = reader.IsFixedType();
                bool   bMultiPort = reader.IsMultiPort();
                int    nPos = bMultiPort ? 1 : 0;
                int    flag1 = 0;
                int    rssi1 = 0, rssi2 = 0, rssi3 = 0, rssi4 = 0, rssi = 0;
                Dictionary <string, int> dRss1 = new Dictionary <string, int>();
                Dictionary <string, int> dRss2 = new Dictionary <string, int>();
                Dictionary <string, int> dRss3 = new Dictionary <string, int>();
                Dictionary <string, int> dRss4 = new Dictionary <string, int>();
                // lbxResponses.Items.Insert(0, szPayload);
                string szTxt = string.Empty;
                foreach (string szResponse in szResponses)
                {
                    code            = szResponse[nPos];
                    this.totalRead += 1;
                    //  code = 'R';
                    switch (code)
                    {
                    case 'T':
                    {
                        szValue = szResponse.Substring(nPos + 1, szResponse.Length - (nPos + 1 + (bCheckSum ? 2 : 0)));                //exclude [#]T/C, CheckSum
                        num5    = szValue;
                        if (szValue.Length > 4)
                        {
                            string hex = szValue.Substring(4, szValue.Length - 4);
                            szTxt = Reader.MakeTextFromHex(hex).ToString();
                            text  = szTxt;
                        }
                        switch (szResponse[0])
                        {
                        case '1':
                            tbTagId.Text = szValue;
                            tbPort.Text  = szResponse[0].ToString();
                            tbText.Text  = szTxt;
                            foreach (string value in tagId)
                            {
                                if (value.CompareTo(szValue) == 0)
                                {
                                    flag1 = 1;
                                    break;
                                }
                            }
                            if (flag1 == 0)
                            {
                                tagId.Add(szValue);
                            }
                            break;

                        case '2':
                            tbTagId1.Text = szValue;
                            tbPort1.Text  = szResponse[0].ToString();
                            tbText1.Text  = szTxt;
                            break;

                        case '3':
                            tbTagId2.Text = szValue;
                            tbPort2.Text  = szResponse[0].ToString();
                            tbText2.Text  = szTxt;
                            break;

                        case '4':
                            tbTagId3.Text = szValue;
                            tbPort3.Text  = szResponse[0].ToString();
                            tbText3.Text  = szTxt;
                            break;

                        default:
                            break;
                        }
                        lbxResponses.Items.Insert(0, "Tag ID: " + szValue);
                        lbxResponses.Items.Insert(1, "Port: " + szResponse[0]);
                        lbxResponses.Items.Insert(2, "Text: " + szTxt);
                    }
                    break;

                    case 'C':
                    {
                        szValue = szResponse.Substring(nPos + 1, szResponse.Length - (nPos + 1));                //exclude [#]T/C
                        szValue = szValue + "-" + reader.Responses(szValue);
                        //if HEARTBEAT response, fire heartbeat timer again.
                        if (string.Compare(szValue, "FF", StringComparison.Ordinal) == 0)
                        {
                            setTimer(9000, "Heartbeat");
                        }
                        lbxResponses.Items.Insert(0, "Data" + szValue);
                    }
                    break;

                    case 'R':
                    {
                        szValue = szResponse.Substring(szResponse.Length - 2, 2);
                        rssi    = Convert.ToInt32(szValue, 0x10);

                        double a = sdk.distanceFromRssi(rssi);

                        lbxResponses.Items.Insert(0, "Rssi " + szResponse[0] + ":" + " -" + rssi);
                        switch (szResponse[0])
                        {
                        case '1':
                        {
                            rssi1       = rssi;
                            tbRssi.Text = "-" + rssi.ToString();
                            arrRssi1.Add(rssi);
                            totalReadCounts1++;
                            tbRead.Text = totalReadCounts1.ToString();
                        }
                        break;

                        case '2':
                        {
                            rssi2        = rssi;
                            tbRssi1.Text = "-" + rssi.ToString();
                            arrRssi2.Add(rssi);
                            totalReadCounts2++;
                            tbRead1.Text = totalReadCounts2.ToString();
                        }
                        break;

                        case '3':
                        {
                            this.tbRssi2.Text = "-" + rssi.ToString();
                            rssi3             = rssi;
                            arrRssi3.Add(rssi);
                            totalReadCounts3++;
                            tbRead2.Text = totalReadCounts3.ToString();
                        }
                        break;

                        case '4':
                        {
                            rssi4        = rssi;
                            tbRssi3.Text = "-" + rssi.ToString();
                            arrRssi4.Add(rssi);
                            totalReadCounts4++;
                            tbRead3.Text = totalReadCounts4.ToString();
                        }
                        break;

                        default:
                            break;
                        }
                        if (trainingFlag == false)
                        {
                            string query = "INSERT INTO rfidreader.rfid(TagId ,Rssi1,Rssi2, Rssi3, Rssi4, Text, TotalRead1, TotalRead2, TotalRead3, TotalRead4,Position) VALUE('" + num5 + "', '" + rssi1.ToString() + "','" + rssi2.ToString() + "',  '" + rssi3.ToString() + "', '" + rssi4.ToString() + "','" + text + "' , '" + totalReadCounts1.ToString() + "','" + totalReadCounts2.ToString() + "','" + totalReadCounts3.ToString() + "','" + totalReadCounts4.ToString() + "', '" + "" + "')";
                            cmd = new MySqlCommand(query, conn);
                            MySqlDataReader myReader;
                            try
                            {
                                OpenConnection();
                                myReader = cmd.ExecuteReader();
                                CloseConnection();
                            }
                            catch (MySqlException ex)
                            {
                                MessageBox.Show(ex.Message);
                                CloseConnection();
                            }
                            rssi1          = rssi2 = rssi3 = rssi4 = 0;
                            this.totalRead = 0;
                        }
                    }
                    break;

                    default:
                        lbxResponses.Items.Insert(1, szResponse);
                        break;
                    }
                }
                break;
            }

            default:
                break;
            }
        }
Beispiel #11
0
 private void Rdr_ReaderProgress(object sender, ReaderEventArgs e)
 {
 }
        public void Load(CancellationToken ct)
        {
            if (ct.IsCancellationRequested)
            {
                return;
            }
            try
            {
                ReaderEventArgs.RaiseEvent(ReaderProgress, this, ProgressType.ReadingSchema, SchemaObjectType.Functions);
                var functions = _schemaReader.Functions();
                ReaderEventArgs.RaiseEvent(ReaderProgress, this, ProgressType.Processing, SchemaObjectType.Functions);
                _databaseSchema.Functions.Clear();
                _databaseSchema.Functions.AddRange(SchemaProcedureConverter.Functions(functions));
            }
            catch (DbException ex)
            {
                Debug.WriteLine("Cannot read functions - database security may prevent access to DDL\n" + ex.Message);
                throw; //or suppress if not applicable
            }
            if (ct.IsCancellationRequested)
            {
                return;
            }

            ReaderEventArgs.RaiseEvent(ReaderProgress, this, ProgressType.ReadingSchema, SchemaObjectType.StoredProcedure);
            var dt = _schemaReader.StoredProcedures();

            if (ct.IsCancellationRequested)
            {
                return;
            }
            ReaderEventArgs.RaiseEvent(ReaderProgress, this, ProgressType.Processing, SchemaObjectType.StoredProcedure);
            SchemaProcedureConverter.StoredProcedures(_databaseSchema, dt);
            var procFilter = _exclusions.StoredProcedureFilter;

            if (procFilter != null)
            {
                _databaseSchema.StoredProcedures.RemoveAll(p => procFilter.Exclude(p.Name));
            }

            _databaseSchema.Packages.Clear();
            _databaseSchema.Packages.AddRange(SchemaProcedureConverter.Packages(_schemaReader.Packages()));
            var packFilter = _exclusions.PackageFilter;

            if (packFilter != null)
            {
                _databaseSchema.Packages.RemoveAll(p => packFilter.Exclude(p.Name));
            }

            if (ct.IsCancellationRequested)
            {
                return;
            }

            //do all the arguments as one call and sort them out.
            //NB: This is often slow on Oracle
            ReaderEventArgs.RaiseEvent(ReaderProgress, this, ProgressType.ReadingSchema, SchemaObjectType.ProcedureArguments);
            var args = _schemaReader.StoredProcedureArguments(null);

            ReaderEventArgs.RaiseEvent(ReaderProgress, this, ProgressType.Processing, SchemaObjectType.ProcedureArguments);
            var converter = new SchemaProcedureConverter();

            converter.PackageFilter         = _exclusions.PackageFilter;
            converter.StoredProcedureFilter = _exclusions.StoredProcedureFilter;
            if (args.Rows.Count == 0)
            {
                //MySql v6 won't do all stored procedures. So we have to do them individually.
                foreach (var sproc in _databaseSchema.StoredProcedures)
                {
                    if (ct.IsCancellationRequested)
                    {
                        return;
                    }
                    args = _schemaReader.StoredProcedureArguments(sproc.Name);
                    converter.UpdateArguments(_databaseSchema, args);
                }

                foreach (var function in _databaseSchema.Functions)
                {
                    if (ct.IsCancellationRequested)
                    {
                        return;
                    }
                    args = _schemaReader.StoredProcedureArguments(function.Name);
                    converter.UpdateArguments(_databaseSchema, args);
                }
            }

            if (ct.IsCancellationRequested)
            {
                return;
            }
            //arguments could be for functions too
            converter.UpdateArguments(_databaseSchema, args);
            foreach (var function in _databaseSchema.Functions)
            {
                //return types are assigned as arguments (in most platforms). Move them to return type.
                function.CheckArgumentsForReturnType();
            }

            if (ct.IsCancellationRequested)
            {
                return;
            }
            //procedure, function and view source sql
            ReaderEventArgs.RaiseEvent(ReaderProgress, this, ProgressType.ReadingSchema, SchemaObjectType.ProcedureSource);
            var srcs = _schemaReader.ProcedureSource(null);

            if (ct.IsCancellationRequested)
            {
                return;
            }
            ReaderEventArgs.RaiseEvent(ReaderProgress, this, ProgressType.Processing, SchemaObjectType.ProcedureSource);
            SchemaSourceConverter.AddSources(_databaseSchema, srcs);
        }
 void adcReader_CalculatorChanged(object sender, ReaderEventArgs e)
 {
     SetPercentageProgress(e.persentage);
 }
Beispiel #14
0
 private void OnGetStatus(ReaderEventArgs e)
 {
     ChangeStatus?.Invoke(this, e);
 }
        public IList <DatabaseTable> Load(CancellationToken ct)
        {
            if (ct.IsCancellationRequested)
            {
                return(EmptyList());
            }
            RaiseReadingProgress(SchemaObjectType.Tables);

            //get full datatables for all tables, to minimize database calls
            var tabs = _schemaReader.Tables();

            //we either use the converters directly (DataTable to our db model)
            //or loaders, which wrap the schema loader calls and converters
            //loaders hide the switch between calling for all tables, or a specific table
            if (ct.IsCancellationRequested)
            {
                return(EmptyList());
            }
            RaiseReadingProgress(SchemaObjectType.Columns);
            var columnLoader = new ColumnLoader(_schemaReader);

            if (ct.IsCancellationRequested)
            {
                return(EmptyList());
            }
            RaiseReadingProgress(SchemaObjectType.Constraints);
            var constraintLoader = new SchemaConstraintLoader(_schemaReader);
            var indexLoader      = new IndexLoader(_schemaReader);

            var ids       = _schemaReader.IdentityColumns(null);
            var computeds = _schemaReader.ComputedColumns(null);

            if (ct.IsCancellationRequested)
            {
                return(EmptyList());
            }
            RaiseReadingProgress(SchemaObjectType.Descriptions);
            var tableDescriptions  = new TableDescriptionConverter(_schemaReader.TableDescription(null));
            var columnDescriptions = new ColumnDescriptionConverter(_schemaReader.ColumnDescription(null));

            DataTable triggers         = _schemaReader.Triggers(null);
            var       triggerConverter = new TriggerConverter(triggers);

            if (ct.IsCancellationRequested)
            {
                return(EmptyList());
            }
            ReaderEventArgs.RaiseEvent(ReaderProgress, this, ProgressType.Processing, SchemaObjectType.Tables);
            var tables      = SchemaConverter.Tables(tabs);
            var tableFilter = _exclusions.TableFilter;

            if (tableFilter != null)
            {
                tables.RemoveAll(t => tableFilter.Exclude(t.Name));
            }
            tables.Sort(delegate(DatabaseTable t1, DatabaseTable t2)
            {
                //doesn't account for mixed schemas
                return(string.Compare(t1.Name, t2.Name, StringComparison.OrdinalIgnoreCase));
            });

            int tablesCount = tables.Count;

            for (var i = 0; i < tablesCount; i++)
            {
                var table      = tables[i];
                var tableName  = table.Name;
                var schemaName = table.SchemaOwner;

                if (ct.IsCancellationRequested)
                {
                    return(tables);
                }
                ReaderEventArgs.RaiseEvent(ReaderProgress, this, ProgressType.Processing, SchemaObjectType.Tables, tableName, i, tablesCount);
                table.Description = tableDescriptions.FindDescription(table.SchemaOwner, tableName);

                var databaseColumns = columnLoader.Load(tableName, schemaName);
                table.Columns.AddRange(databaseColumns);

                columnDescriptions.AddDescriptions(table);

                var pkConstraints = constraintLoader.Load(tableName, schemaName, ConstraintType.PrimaryKey);
                PrimaryKeyLogic.AddPrimaryKey(table, pkConstraints);

                var fks = constraintLoader.Load(tableName, schemaName, ConstraintType.ForeignKey);
                table.AddConstraints(fks);

                table.AddConstraints(constraintLoader.Load(tableName, schemaName, ConstraintType.UniqueKey));
                table.AddConstraints(constraintLoader.Load(tableName, schemaName, ConstraintType.Check));
                table.AddConstraints(constraintLoader.Load(tableName, schemaName, ConstraintType.Default));

                indexLoader.AddIndexes(table);

                SchemaConstraintConverter.AddIdentity(ids, table);
                SchemaConstraintConverter.AddComputed(computeds, table);

                table.Triggers.Clear();
                table.Triggers.AddRange(triggerConverter.Triggers(tableName));
                _schemaReader.PostProcessing(table);
            }
            return(tables);
        }
Beispiel #16
0
        private void OnReaderEvent(object sender, ReaderEventArgs e)
        {
            if (this.InvokeRequired)
            {
                this.BeginInvoke(new ReaderEventHandler(OnReaderEvent), new object[] { sender, e });
                return;
            }

            switch (e.Type)
            {
            case EventType.ReadMemory:
            {
                string result = Encoding.ASCII.GetString(e.Payload);
                if (!isSaveTag)
                {
                    if (result.Substring(1, result.Length - 1) == "C00")
                    {
                        tbReadResult.Text = "Error code - 00: Fail to read";
                    }
                    else if (result.Substring(1, result.Length - 1) == "T00")
                    {
                        tbReadResult.Text = "Error: Over length";
                    }
                    else
                    {
                        tbReadResult.Text = result.Substring(2, result.Length - 4);
                    }
                    //tbReadResult.Text = result;
                    //if (result[2] == 'E')
                    //    szTID = result;
                    if (cbReadMemType.Text == "TID")
                    {
                        tag.TIDMem = result.Substring(2, result.Length - 4);
                        Console.WriteLine(tag.TIDMem);
                        progressBarSave.Increment(25);
                    }
                    if (cbReadMemType.Text == "EPC")
                    {
                        tag.EPCMem = result.Substring(2, result.Length - 4);
                        Console.WriteLine(tag.EPCMem);
                        progressBarSave.Increment(25);
                    }
                    if (cbReadMemType.Text == "Reserved")
                    {
                        tag.reservedMem = result.Substring(2, result.Length - 4);
                        Console.WriteLine(tag.reservedMem);
                        progressBarSave.Increment(25);
                    }
                    if (cbReadMemType.Text == "User")
                    {
                        tag.userMem = result.Substring(2, result.Length - 4);
                        Console.WriteLine(tag.userMem);
                        progressBarSave.Increment(25);
                    }
                    if (tag.TIDMem != null && tag.EPCMem != null && tag.userMem != null && tag.reservedMem != null)
                    {
                        TagInformationConnUtils connTag = new TagInformationConnUtils();
                        connTag.addTag(tag.TIDMem, tag.EPCMem, tag.userMem, tag.reservedMem);
                        MessageBox.Show("Tag was saved.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        tag = new TagInformation();
                    }
                }
                else if (isSaveTag)
                {
                    //if (btnStep.Text == "Read TID")
                    //{
                    //    if (result.Substring(1, result.Length - 1) == "C00")
                    //    {
                    //        lbxRespone.Items.Add("Error code - 00: Fail to read TID memory.");
                    //    }
                    //    else if (result.Substring(1, result.Length - 1) == "T00")
                    //    {
                    //        lbxRespone.Items.Add("Error: Over length of TID memory");
                    //    }
                    //    else
                    //    {
                    //        lbxRespone.Items.Add("Reading TID memory is success.");
                    //        tag.TIDMem = result.Substring(2, result.Length - 4);
                    //        Console.WriteLine(tag.TIDMem);
                    //        progressBarSaveTag.PerformStep();
                    //    }
                    //}
                    //if (btnStep.Text == "Read EPC")
                    //{
                    //    if (result.Substring(1, result.Length - 1) == "C00")
                    //    {
                    //        lbxRespone.Items.Add("Error code - 00: Fail to read TID memory.");
                    //    }
                    //    else if (result.Substring(1, result.Length - 1) == "T00")
                    //    {
                    //        lbxRespone.Items.Add("Error: Over length of TID memory");
                    //    }
                    //    else
                    //    {
                    //        lbxRespone.Items.Add("Reading TID memory is success.");
                    //        tag.TIDMem = result.Substring(2, result.Length - 4);
                    //        Console.WriteLine(tag.TIDMem);
                    //        progressBarSaveTag.PerformStep();
                    //    }
                    //}
                    //if (btnStep.Text == "Read User")
                    //{
                    //    if (result.Substring(1, result.Length - 1) == "C00")
                    //    {
                    //        lbxRespone.Items.Add("Error code - 00: Fail to read User memory.");
                    //    }
                    //    else if (result.Substring(1, result.Length - 1) == "T00")
                    //    {
                    //        lbxRespone.Items.Add("Error: Over length of USer memory");
                    //    }
                    //    else
                    //    {
                    //        lbxRespone.Items.Add("Reading User memory is success.");
                    //        tag.userMem = result.Substring(2, result.Length - 4);
                    //        Console.WriteLine(tag.userMem);
                    //    }
                    //}
                    //if (btnStep.Text == "Read Reserved")
                    //{
                    //    if (result.Substring(1, result.Length - 1) == "C00")
                    //    {
                    //        lbxRespone.Items.Add("Error code - 00: Fail to read Reserved memory.");
                    //    }
                    //    else if (result.Substring(1, result.Length - 1) == "T00")
                    //    {
                    //        lbxRespone.Items.Add("Error: Over length of Reserved memory");
                    //    }
                    //    else
                    //    {
                    //        lbxRespone.Items.Add("Reading Reserved memory is success.");
                    //        tag.reservedMem = result.Substring(2, result.Length - 4);
                    //        Console.WriteLine(tag.reservedMem);
                    //    }
                    //}
                    if (isSaveTID)
                    {
                        isSaveTID = false;
                        Console.WriteLine(isSaveTID);
                        if (result.Substring(1, result.Length - 1) == "C00")
                        {
                            lbxRespone.Items.Add("Error code - 00: Fail to read TID memory.");
                        }
                        else if (result.Substring(1, result.Length - 1) == "T00")
                        {
                            lbxRespone.Items.Add("Error: Over length of TID memory");
                        }
                        else
                        {
                            lbxRespone.Items.Add("Reading TID memory is success.");
                            tag.TIDMem = result.Substring(2, result.Length - 4);
                            Console.WriteLine(tag.TIDMem);
                            progressBarSaveTag.PerformStep();
                        }
                    }
                    if (isSaveEPC)
                    {
                        isSaveEPC = false;
                        if (result.Substring(1, result.Length - 1) == "C00")
                        {
                            lbxRespone.Items.Add("Error code - 00: Fail to read EPC memory.");
                        }
                        else if (result.Substring(1, result.Length - 1) == "T00")
                        {
                            lbxRespone.Items.Add("Error: Over length of EPC memory");
                        }
                        else
                        {
                            lbxRespone.Items.Add("Reading EPC memory is success.");
                            tag.EPCMem = result.Substring(2, result.Length - 4);
                            Console.WriteLine(tag.EPCMem);
                        }
                    }
                    if (isSaveUser)
                    {
                        isSaveUser = false;
                        if (result.Substring(1, result.Length - 1) == "C00")
                        {
                            lbxRespone.Items.Add("Error code - 00: Fail to read User memory.");
                        }
                        else if (result.Substring(1, result.Length - 1) == "T00")
                        {
                            lbxRespone.Items.Add("Error: Over length of USer memory");
                        }
                        else
                        {
                            lbxRespone.Items.Add("Reading User memory is success.");
                            tag.userMem = result.Substring(2, result.Length - 4);
                            Console.WriteLine(tag.userMem);
                        }
                    }
                    if (isSaveReserved)
                    {
                        isSaveReserved = false;
                        if (result.Substring(1, result.Length - 1) == "C00")
                        {
                            lbxRespone.Items.Add("Error code - 00: Fail to read Reserved memory.");
                        }
                        else if (result.Substring(1, result.Length - 1) == "T00")
                        {
                            lbxRespone.Items.Add("Error: Over length of Reserved memory");
                        }
                        else
                        {
                            lbxRespone.Items.Add("Reading Reserved memory is success.");
                            tag.reservedMem = result.Substring(2, result.Length - 4);
                            Console.WriteLine(tag.reservedMem);
                        }
                    }
                    if (tag.EPCMem != null && tag.TIDMem != null && tag.userMem != null && tag.reservedMem != null)
                    {
                        TagInformationConnUtils connTag = new TagInformationConnUtils();
                        connTag.addTag(tag.TIDMem, tag.EPCMem, tag.userMem, tag.reservedMem);
                        MessageBox.Show("Tag was saved", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    //else
                    //{
                    //    MessageBox.Show("Tag was not saved. Try again later.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    //}
                    //isSaveTag = false;
                }
                else if (isWriteMem)
                {
                    if (result.Substring(1, result.Length - 1) == "C00")
                    {
                        lbReadTID.Text = ("Error code - 00: Fail to read TID memory.");
                    }
                    else if (result.Substring(1, result.Length - 1) == "T00")
                    {
                        lbReadTID.Text = ("Error: Over length of TID memory");
                    }
                    else
                    {
                        lbReadTID.Text = ("Reading TID memory is success.");
                        string TIDmem = result.Substring(2, result.Length - 4);
                        TagInformationConnUtils connTag = new TagInformationConnUtils();
                        bool chkExist = connTag.checkTagExist(TIDmem);
                    }
                }
                break;
            }

            case EventType.WriteMemory:
            {
                string result = Encoding.ASCII.GetString(e.Payload);
                Console.WriteLine(result);
                switch (navigationPane1.SelectedPageIndex)
                {
                case 1:
                {
                    if (result.Substring(1, result.Length - 1) == "C01")
                    {
                        lbWriteResult.Text = "01 - Success";
                    }
                    else
                    {
                        lbWriteResult.Text = "00 - Other error";
                    }
                    break;
                }

                case 2:
                {
                    if (result.Substring(1, result.Length - 1) == "C01")
                    {
                        lbWriteTextResult.Text = "01 - Success";
                    }
                    else
                    {
                        lbWriteTextResult.Text = "00 - Other error";
                    }
                    break;
                }

                default: break;
                }

                //string result = Encoding.ASCII.GetString(e.Payload);
                //lbWriteResult.Text = navigationPane1.SelectedPageIndex == 1 ? result : "";
                //lbWriteTextResult.Text = navigationPane1.SelectedPageIndex == 2 ? result : "";
                break;
            }
            }
        }