public bool GetReceiverModlInfo(byte byRowAddr /*0~15*/, byte byColAddr /*0~13*/, ref tagRecvModlInfo rReceiverModlInfo) { bool bResult = false; if (NRealModuleAmount > MaxReceiverHubPortAmnt * MaxRecvHubPortModlAmnt) { NRealModuleAmount = MaxReceiverHubPortAmnt * MaxRecvHubPortModlAmnt; } for (int i = 0; i < NRealModuleAmount; i++) { if ((StReceiverModlInfo[i].ByModuleAddr >> 4) == byRowAddr && (StReceiverModlInfo[i].ByModuleAddr & 0xF) == byColAddr) { rReceiverModlInfo = StReceiverModlInfo[i]; bResult = true; break; } } return(bResult); }
public async void GetModuleData(CancellationToken ct) { while (!ct.IsCancellationRequested) { tagRecvModlInfo[] tmod = new tagRecvModlInfo[18]; moduleStatus_v1 ms1 = new moduleStatus_v1(); if (signs.PollingState) { int j = 0; int k = 0; Logger.Instance.Log("SenderID: {0}", signs.SenderId); for (int i = 0; i < 2; i++) { Logger.Instance.Log("{0} - Polling Modules...", signs.SenderId.ToString()); LEDLane.GetModuleData(signs.SenderId, (byte)j, 0, out ms1); if (j == 0) { j++; } else { j--; k++; } k = 0; int x = 0; int y = 0; Logger.Instance.Log("SenderID: {0} Receiver Card: {1}", signs.SenderId, i); for (int z = 0; z < 18; z++) { ms1.GetReceiverModlInfo((byte)x, (byte)y, ref tmod[z]); signs.recCard[i].Mod[z].ColAddr = tmod[z].GetModlAddrCol(); signs.recCard[i].Mod[z].RowAddr = tmod[z].GetModlAddrRow(); signs.recCard[i].Mod[z].ModVolt = tmod[z].GetModlVoltAsFloat(); signs.recCard[i].Mod[z].ModTemp = tmod[z].GetModlTemperature(); signs.recCard[i].Mod[z].CableStatus = tmod[z].IsCableOk(); if (y == 5) { y = 0; x++; } else { y++; } Logger.Instance.Log(string.Format("{0} - {1} {2} {3} {4}", signs.SenderId.ToString(), signs.recCard[i].Mod[z].ColAddr, signs.recCard[i].Mod[z].RowAddr, signs.recCard[i].Mod[z].ModVolt, signs.recCard[i].Mod[z].ModTemp, signs.recCard[i].Mod[z].CableStatus)); string sql = ConfigurationManager.AppSettings["InsertModuleData"].ToString(); string connString = ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString; using (SqlConnection conn = new SqlConnection(connString)) { try { using (SqlCommand cmd = new SqlCommand(sql)) { cmd.Connection = conn; cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@SignID", SqlDbType.Int).Value = signs.SignID; cmd.Parameters.Add("@SenderID", SqlDbType.Int).Value = signs.SenderId; cmd.Parameters.Add("@ReceiverIndexid", SqlDbType.Int).Value = signs.recCard[i].RecCardIndex; cmd.Parameters.Add("@ModTemp", SqlDbType.Decimal).Value = signs.recCard[i].Mod[z].ModTemp; cmd.Parameters.Add("@ModVoltage", SqlDbType.Decimal).Value = signs.recCard[i].Mod[z].ModVolt; cmd.Parameters.Add("@CableStatus", SqlDbType.Bit).Value = signs.recCard[i].Mod[z].CableStatus; cmd.Parameters.Add("@ModAddress", SqlDbType.VarChar).Value = signs.recCard[i].Mod[z].ColAddr.ToString() + "," + signs.recCard[i].Mod[z].RowAddr.ToString(); cmd.Connection.Open(); cmd.ExecuteNonQuery(); } } catch (SqlException ex) { Logger.Instance.Log("SQL Error: " + ex.Message); } catch (Exception e) { Logger.Instance.Log("Error: " + e.Message); } } } } } await Task.Delay(10000); } }