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