private void ErrorForUI_EventHandler(object sender, ReceiveErrorEventArgs e) { string msg = e.Msg; // if (this.IsHandleCreated && null != this.m_currentStation) if (this.IsHandleCreated) { try { if (msg.Contains("TRU")) { AddLog(msg); string[] str = msg.Split(' '); string str1 = str[1]; // uint str1 = uint.Parse(str[1]); // string strgprs=str1.ToString("X").PadLeft(8, '0'); // item.m_modemId.ToString("X").PadLeft(8, '0') CEntityStation entity = new CEntityStation(); entity = CDBDataMgr.Instance.GetStationByGprs_1(str1); AddLog(String.Format("站点{0}对时成功!", entity.StationName)); m_dgvClock.UpdateStationStatus(entity.StationID, CDataGridViewSystemClock.EStationClockState.EAjustSuccess); } m_dgvClock.UpdateDataToUI(); } catch (Exception exp) { Debug.WriteLine(exp.Message); } } }
public CStationComboBox(EStationBatchType batchType) : base() { InitComponent(); InitUI(batchType); m_currentStation = null; }
//public static void sendMyTru(String stationid) //{ // CEntityStation entity = new CEntityStation(); // // entity.StationID = "6018"; // entity = CDBDataMgr.Instance.GetStationById(stationid); // // entity.StationID = stationid; // // entity.GPRS = "60006018"; // Form1 f1 = new Form1(); // // entity.GPRS = f1.getGPRSback(stationid); // if (entity != null) // { // CPortDataMgr.Instance.SendHex(entity); // } //} public static void sendMyTru(String stationid) { CEntityStation entity = new CEntityStation(); // entity.StationID = "6018"; entity = CDBDataMgr.Instance.GetStationById(stationid); // entity.StationID = stationid; // entity.GPRS = "60006018"; Form1 f1 = new Form1(); // entity.GPRS = f1.getGPRSback(stationid); if (entity != null) { CPortDataMgr.Instance.SendHex(entity); } else { CEntitySoilStation soilEntity = new CEntitySoilStation(); soilEntity = CDBSoilDataMgr.Instance.GetSoilStationInfoByStationId(stationid); if (soilEntity != null) { CPortDataMgr.Instance.SendSoilHex(soilEntity); } } }
/// <summary> /// 选择了列表框中的某一个站点 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void EHListBoxSelected(object sender, EventArgs e) { this.TextChanged -= cmbStation_TextChanged; //this.Items.Clear(); //this.Items.Add(m_listBoxStation.SelectedItem); //this.SelectedIndex = 0; this.Text = m_listBoxStation.SelectedItem.ToString(); string[] idName = m_listBoxStation.SelectedItem.ToString().Split('|'); // 匹配当前的站点赋值 string stationId = idName[0].Substring(1).Trim(); for (int i = 0; i < m_listStations.Count; ++i) { if (stationId == m_listStations[i].StationID) { m_currentStation = m_listStations[i]; // 发消息 if (StationSelected != null) { StationSelected.Invoke(this, new CEventSingleArgs <CEntityStation>(m_currentStation)); } break; } } this.TextChanged += new EventHandler(cmbStation_TextChanged); HideListBox(); }
private CEntityStation m_currentStation; //当前选中的测站 public CStationComboBox() : base() { InitComponent(); InitUI(); m_currentStation = null; }
public List <CEntityVoltage> QueryForRateMonthTable(CEntityStation station, DateTime startTime, DateTime endTime) { List <CEntityVoltage> results = new List <CEntityVoltage>(); string stationID = station.StationID; try { CTF_TableName = "voltage" + startTime.Year.ToString() + startTime.Month.ToString() + (startTime.Day < 15 ? "A" : "B"); CTT_TableName = "voltage" + endTime.Year.ToString() + endTime.Month.ToString() + (endTime.Day < 15 ? "A" : "B"); string sql = "select * from " + CF_TableName + " where stationid = " + stationID + " and convert(VARCHAR, " + CN_DataTime + ", 120) LIKE '%00:00%' and datatime between '" + startTime + "' and '" + endTime + "' and messagetype = 8;"; SqlDataAdapter adapter = new SqlDataAdapter(sql, CDBManager.GetInstacne().GetConnection()); DataTable dataTableTmp = new DataTable(); adapter.Fill(dataTableTmp); for (int i = 0; i < dataTableTmp.Rows.Count; ++i) { CEntityVoltage res = new CEntityVoltage(); res.TimeCollect = DateTime.Parse(dataTableTmp.Rows[i][CN_DataTime].ToString()); res.type = dataTableTmp.Rows[i][CN_TransType].ToString(); results.Add(res); } } catch { } return(results); }
private void btn_StartAdjust_Click(object sender, EventArgs e) { var listStation = this.m_dgvClock.GetAllSelectedStation(); if (0 == listStation.Count) { MessageBox.Show("请选择站点!"); return; } this.btn_StartAdjust.Enabled = false; int i = 0; System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer() { Interval = 40000 }; AddLog("系统正在对时,请耐心等待!"); timer.Tick += (s1, e1) => { if (i >= listStation.Count) { timer.Stop(); m_currentStation = null; this.btn_StartAdjust.Enabled = true; return; } m_currentStation = listStation[i]; Debug.WriteLine(" i = " + i + " Name = " + m_currentStation.StationName); string sendMsg = CPortDataMgr.Instance.SendAdjustClock(m_currentStation); AddLog(sendMsg); i++; }; timer.Start(); }
private CEntityStation GetStationInfoByDeviceNum(string deviceNum) { CEntityStation result = null; if (String.IsNullOrEmpty(deviceNum)) { return(result); } var soilStationLists = GetAllSoilStation(); CEntitySoilStation soilStation = null; //foreach (var item in soilStationLists) //{ // if (deviceNum == item.StrDeviceNumber) // { // soilStation = item; // break; // } //} if (null != soilStation && !String.IsNullOrEmpty(soilStation.StationID)) { result = CDBDataMgr.Instance.GetStationById(soilStation.StationID); } return(result); }
/// <summary> /// 添加站点,不用 /// </summary> //private void Add(CEntityStation entity) //{ // String sqlStr = GetInsertSQL(entity); // ExecuteNonQuery(sqlStr); //} //private String GetInsertSQL(CEntityStation entity) //{ // String strStationID = entity.StationID; // String strSubCenterID = entity.SubCenterID.HasValue ? entity.SubCenterID.Value.ToString() : "null"; // String strCName = String.Format("'{0}'", entity.StationName); // String strCType = CEnumHelper.StationTypeToDBStr(entity.StationType); // String strWaterBase = entity.DWaterBase.HasValue ? entity.DWaterBase.ToString() : "null"; // String strWaterMax = entity.DWaterMax.HasValue ? entity.DWaterMax.ToString() : "null"; // String strWaterMin = entity.DWaterMin.HasValue ? entity.DWaterMin.ToString() : "null"; // String strWaterChange = entity.DWaterChange.HasValue ? entity.DWaterChange.ToString() : "null"; // String strRainAccuracy = entity.DRainAccuracy.ToString(); // String strRainChange =entity.DRainChange.ToString(); // String strCommParam = entity.CommParam == null ? "null" : String.Format("'{0}'", entity.CommParam); // String strGSM = entity.GSM == null ? "null" : String.Format("'{0}'", entity.GSM); // String strGprs = entity.GPRS == null ? "null" : String.Format("'{0}'", entity.GPRS); // String strPstv = entity.PSTV == null ? "null" : String.Format("'{0}'", entity.PSTV); // String strBD = entity.BDSatellite == null ? "null" : String.Format("'{0}'", entity.BDSatellite); // String strSerialPort = entity.SerialPort == null ? "null" : String.Format("'{0}'", entity.SerialPort); // return String.Format( // "INSERT INTO {0} ([{1}],[{2}],[{3}],[{4}],[{5}],[{6}],[{7}],[{8}],[{9}],[{10}],[{11}],[{12}],[{13}],[{14}],[{15}],[{16}]) VALUES ({17},{18},{19},{20},{21},{22},{23},{24},{25},{26},{27},{28},{29},{30},{31},{32})", // CT_TableName, // CN_StationID, CN_SubCenterID, CN_StationName, CN_StationType, // CN_WaterBase, CN_WaterMax, CN_WaterMin, CN_WaterChange, // CN_RainAccuracy, CN_RainChange, CN_CommParam, CN_GSM, // CN_GPRS, CN_PSTV, CN_BDSatellite, CN_SerialPort, // strStationID, strSubCenterID, strCName, strCType, // strWaterBase, strWaterMax, strWaterMin, strWaterChange, // strRainAccuracy, strRainChange, strCommParam, strGSM, // strGprs, strPstv, strBD, strSerialPort // ); //} ///// <summary> ///// 删除分站点 ///// </summary> //public void Delete(CEntityStation entity) //{ // String sqlStr = GetDeleteSQL(entity); // ExecuteNonQuery(sqlStr); //} //private String GetDeleteSQL(CEntityStation entity) //{ // return String.Format("DELETE FROM {0} WHERE [{1}]={2}", // CT_TableName, // CN_StationID, entity.StationID // ); //} /// <summary> /// 修改站点信息 /// </summary> //public void Update(CEntityStation entity) //{ // String sqlStr = GetUpdateSQL(entity); // ExecuteNonQuery(sqlStr); //} private String GetUpdateSQL(CEntityStation entity) { String strStationID = entity.StationID; String strSubCenterID = entity.SubCenterID.HasValue ? entity.SubCenterID.Value.ToString() : "null"; String strCName = String.Format("'{0}'", entity.StationName); String strCType = CEnumHelper.StationTypeToDBStr(entity.StationType); String strWaterBase = entity.DWaterBase.HasValue ? entity.DWaterBase.ToString() : "null"; String strWaterMax = entity.DWaterMax.HasValue ? entity.DWaterMax.ToString() : "null"; String strWaterMin = entity.DWaterMin.HasValue ? entity.DWaterMin.ToString() : "null"; String strWaterChange = entity.DWaterChange.HasValue ? entity.DWaterChange.ToString() : "null"; String strVoltageMin = entity.DVoltageMin.HasValue ? entity.DVoltageMin.ToString() : "null"; String strRainAccuracy = entity.DRainAccuracy.ToString(); String strRainChange = entity.DRainChange.HasValue ? entity.DRainChange.ToString() : "null"; String strGSM = entity.GSM == null ? "null" : String.Format("'{0}'", entity.GSM); String strGprs = entity.GPRS == null ? "null" : String.Format("'{0}'", entity.GPRS); String strBD = entity.BDSatellite == null ? "null" : String.Format("'{0}'", entity.BDSatellite); String strBDMember = entity.BDMemberSatellite == null ? "null" : String.Format("'{0}'", entity.BDMemberSatellite); String strMaintran = entity.Maintran == null ? "null" : String.Format("'{0}'", entity.Maintran); String strSubtran = entity.Subtran == null ? "null" : String.Format("'{0}'", entity.Subtran); String strDataprotocol = entity.Datapotocol == null ? "null" : String.Format("'{0}'", entity.Datapotocol); String strWatersensor = entity.Watersensor == null ? "null" : String.Format("'{0}'", CEnumHelper.WaterSensorTypeToDBStr(entity.Watersensor)); String strRainsensor = entity.Rainsensor == null ? "null" : String.Format("'{0}'", CEnumHelper.RainSensorTypeToDBStr(entity.Rainsensor)); String strReportinterval = entity.Reportinterval == null ? "null" : String.Format("'{0}'", entity.Reportinterval); // String strSerialPort = entity.SerialPort == null ? "null" : String.Format("'{0}'", entity.SerialPort); // string strBatchType = CEnumHelper.StationBatchTypeToDBStr(entity.BatchTranType); return(String.Format( "UPDATE {0} SET [{1}]={2},[{3}]={4},[{5}]={6},[{7}]={8},[{9}]={10},[{11}]={12},[{13}]={14},[{15}]={16},[{17}]={18},[{19}]={20},[{21}]={22},[{23}]={24},[{25}]={26},[{27}]={28},[{29}]={30},[{31}]={32},[{33}]={34} ,[{35}]={36},[{37}]={38},[{39}]={40} WHERE [{41}]='{42}';", CT_TableName, CN_SubCenterID, strSubCenterID, CN_StationName, strCName, CN_StationType, strCType, CN_WaterBase, strWaterBase, CN_WaterMax, strWaterMax, CN_WaterMin, strWaterMin, CN_WaterChange, strWaterChange, CN_RainAccuracy, strRainAccuracy, CN_RainChange, strRainChange, CN_GSM, strGSM, CN_GPRS, strGprs, CN_BDSatellite, strBD, CN_BDMember, strBDMember, CN_VoltageMin, strVoltageMin, CN_Maintran, strMaintran, CN_Subtran, strSubtran, CN_Dataprotocol, strDataprotocol, CN_Watersensor, strWatersensor, CN_Rainsensor, strRainsensor, CN_Reportinterval, strReportinterval, CN_StationID, strStationID )); }
//1009gm public List <CEntityVoltage> QueryForRateTable(CEntityStation station, DateTime date) { List <CEntityVoltage> results = new List <CEntityVoltage>(); DateTime startTime = date; DateTime endTime = startTime.AddHours(23).AddMinutes(59).AddSeconds(59); string stationID = station.StationID; try { string sql = "select * from " + CT_TableName + " where stationid = " + stationID + " and convert(VARCHAR, " + CN_DataTime + ", 120) LIKE '%00:00%' and datatime between '" + startTime + "' and '" + endTime + "'and messageType = 8;"; SqlDataAdapter adapter = new SqlDataAdapter(sql, CDBManager.GetInstacne().GetConnection()); DataTable dataTableTmp = new DataTable(); adapter.Fill(dataTableTmp); for (int i = 0; i < dataTableTmp.Rows.Count; ++i) { CEntityVoltage res = new CEntityVoltage(); res.TimeCollect = DateTime.Parse(dataTableTmp.Rows[i][CN_DataTime].ToString()); res.type = dataTableTmp.Rows[i][CN_TransType].ToString(); results.Add(res); } } catch { } return(results); }
//private void btn_Save_Click_1(object sender, EventArgs e) //{ // //// 完成添加 // //if (AssertInputValid()) // //{ // // this.Close(); // // this.DialogResult = DialogResult.OK; // //} // // 完成添加 // CEntityStation station = GenerateStationFromUI(); // if (null == station) // { // return; // } // // m_listStationAdded.Add(station); // // m_listStationCombination.Add(station); // CDBDataMgr.GetInstance().m_mapStation.Add(station.StationID, station); // //触发事件,并将修改后的文本回传 // AddStationEvent(station); // this.Close(); // //InnerRefreshUI(); // //// 修改成功 // //btn_Save.Enabled = false; // //btn_Revert.Enabled = false; //} private void btn_Save_Click(object sender, EventArgs e) { try { //// 完成添加 //if (AssertInputValid()) //{ // this.Close(); // this.DialogResult = DialogResult.OK; //} // 完成添加 CEntityStation station = GenerateStationFromUI(); if (null == station) { return; } // m_listStationAdded.Add(station); // m_listStationCombination.Add(station); CDBDataMgr.GetInstance().m_mapStation.Add(station.StationID, station); //触发事件,并将修改后的文本回传 AddStationEvent(station); //this.Close(); this.Hide(); MessageBox.Show("测站添加完成! ", "提示 ", MessageBoxButtons.OK, MessageBoxIcon.Information); this.Close(); //InnerRefreshUI(); //// 修改成功 //btn_Save.Enabled = false; //btn_Revert.Enabled = false; } catch (Exception ex) { } }
/// <summary> /// 获取所有查询的测站 /// </summary> /// <returns></returns> public List <CEntityStation> GetAllSelectedStation() { List <CEntityStation> listResults = new List <CEntityStation>(); base.m_mutexDataTable.WaitOne(); for (int i = 0; i < m_dataTable.Rows.Count; ++i) { // 获取编辑过的每一行 string strChecked = m_dataTable.Rows[i][CS_Select].ToString(); if (strChecked == "True") { string stationId = m_dataTable.Rows[i][CS_StationID].ToString(); CEntityStation station = CDBDataMgr.Instance.GetStationById(stationId); if (null != station) { listResults.Add(station); } //应该都会存在的 } else { // 没有选中 } } base.m_mutexDataTable.ReleaseMutex(); return(listResults); }
private void btn_StartAdjust_Click(object sender, EventArgs e) { var listStation = this.m_dgvClock.GetAllSelectedStation(); List <string> result = new List <string>(); label4.Text = "开始对时,只对当前所选择的在线站点进行对时!"; this.btn_StartAdjust.Enabled = false; AddLog("系统正在对时,请耐心等待!"); m_dgvClock.Hide(); for (int i = 0; i < listStation.Count; i++) { m_currentStation = listStation[i]; string sendMsg = CPortDataMgr.Instance.SendTcpBatchAdjustClock(m_currentStation); } //System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer() //{ // Interval = 1000 //}; //int m = 0; //timer.Tick += (s1, e1) => //{ // if (m > 0) // { // timer.Stop(); // m_currentStation = null; // this.btn_StartAdjust.Enabled = true; // return; // } // for (int i = 0; i < listStation.Count; i++) // { // m_currentStation = listStation[i]; // string sendMsg = CPortDataMgr.Instance.SendAdjustClockFirst(m_currentStation); // // AddLog(sendMsg); // } // m = 1; //}; //timer.Start(); ////显示对时完成 //System.Windows.Forms.Timer timer_1 = new System.Windows.Forms.Timer() //{ // Interval = 1000 * 60 //}; //// this.label4.Text = ""; //timer_1.Tick += (s1, e1) => //{ // this.label4.Text = "对时完成!"; // AddLog("对时完成!"); // timer_1.Stop(); //}; //timer_1.Start(); m_dgvClock.Show(); }
// 设置显示的雨量记录 public void SetRain(List <FSFXData> listFsfx) { // 清空所有数据,是否一定要这样?好像可以考虑其它方式 base.m_dataTable.Rows.Clear(); // 判断状态值 List <string[]> newRows = new List <string[]>(); List <EDataState> states = new List <EDataState>(); if (!m_bIsEditable) { // 只读模式 for (int i = 0; i < listFsfx.Count; ++i) { EDataState state = EDataState.ENormal; //默认所有数据都是正常的 string strStationName = ""; string strStationId = ""; string state_1 = CS_DataState_Normal; CEntityStation station = CDBDataMgr.Instance.GetStationById(listFsfx[i].StationID); if (null != station) { strStationName = station.StationName; strStationId = station.StationID; } if (listFsfx[i].BState == 0) { // 不正常 state = CExDataGridView.EDataState.EError;//红色显示 state_1 = CS_DataState_AbNormal; } else if (listFsfx[i].BState == 2) { // 不正常 state = CExDataGridView.EDataState.EWarning;//黄色显示 state_1 = CS_DataState_Warning; } string[] newRow = new string[] { strStationId, strStationName, listFsfx[i].TimeCollect.ToString(CS_TimeFormat), /*采集时间*/ listFsfx[i].shfx.ToString(), /*瞬时风向*/ listFsfx[i].shfs.ToString(), /*瞬时风向*/ listFsfx[i].yxszdshfx.ToString(), /*瞬时风向*/ listFsfx[i].yxszdshfs.ToString(), /*瞬时风向*/ state_1, listFsfx[i].avg10fx.ToString(), /*瞬时风向*/ listFsfx[i].avg10fs.ToString() /*瞬时风向*/ //CEnumHelper.ChannelTypeToUIStr(listFsfx[i].ChannelType), /*通讯方式*/ //CEnumHelper.MessageTypeToUIStr(listFsfx[i].MessageType) /*报文类型*/ }; newRows.Add(newRow); states.Add(state); } } // 添加到集合的数据表中 base.AddRowRange(newRows, states); }
private void button1_Click(object sender, EventArgs e) { // CPortDataMgr.Instance.StartGprs(); CEntityStation entity = new CEntityStation(); entity.StationID = "6018"; entity.GPRS = "60006018"; CPortDataMgr.Instance.SendHex(entity); }
// 设置显示的雨量记录 public void SetWaters(List <CEntityWaterSpeed> listWaterSpeed) { // 清空所有数据,是否一定要这样?好像可以考虑其它方式 base.m_dataTable.Rows.Clear(); // 判断状态值 List <string[]> newRows = new List <string[]>(); List <EDataState> states = new List <EDataState>(); if (!m_bIsEditable) { string[] newRow; // 只读模式 for (int i = 0; i < listWaterSpeed.Count; ++i) { EDataState state = EDataState.ENormal; //默认所有数据都是正常的 string strStationName = ""; string strStationId = ""; string state_1 = CS_DataState_Normal; CEntityStation station = CDBDataMgr.Instance.GetStationById(listWaterSpeed[i].STCD); if (null != station) { strStationName = station.StationName; strStationId = station.StationID; } newRow = new string[] { strStationId, strStationName, /*站名*/ listWaterSpeed[i].DT.ToString(CS_TimeFormat), /*采集时间*/ listWaterSpeed[i].W1.ToString(), /*水位*/ listWaterSpeed[i].AvgV1.ToString(), /*水位*/ listWaterSpeed[i].AvgV2.ToString(), /*水位*/ listWaterSpeed[i].AvgV3.ToString(), /*水位*/ listWaterSpeed[i].AvgV4.ToString(), /*水位*/ listWaterSpeed[i].Q.ToString(), /*流量*/ listWaterSpeed[i].rawQ.ToString(), /*流量*/ state_1, listWaterSpeed[i].RevtDT.ToString(CS_TimeFormat), /*接收时间*/ CEnumHelper.ChannelTypeToUIStr(listWaterSpeed[i].ChannelType), /*通讯方式*/ CEnumHelper.MessageTypeToUIStr(listWaterSpeed[i].MessageType), /*报文类型*/ }; newRows.Add(newRow); states.Add(state); } // 添加到集合的数据表中 base.AddRowRange(newRows, states); } else { // 添加到集合的数据表中 base.AddRowRange(newRows, states); } }
public CStationDataAddForm() { InitializeComponent(); InitUI(); m_currentStation = null; m_entityRain = null; m_entityVoltage = null; m_entityWater = null; FormHelper.InitUserModeEvent(this); }
//处理 void form_MyEvent(CEntityStation station) { m_dgvStatioin.m_listAddedStation.Add(station); m_dgvStatioin.m_proxyStation.AddRange(m_dgvStatioin.m_listAddedStation); //m_dgvStatioin.Revert(); // 重新加载 CDBDataMgr.Instance.UpdateAllStation(); m_dgvStatioin.Revert(); m_dgvStatioin.UpdateDataToUI(); //this.listBox1.Items.RemoveAt(index); //this.listBox1.Items.Insert(index, text); }
/// <summary> /// 更新实时数据 /// </summary> /// <param name="entity"></param> /// <returns></returns> public bool UpdateRTD(CEntityRealTime entity) { // 根据ID进行分中心分发 bool result = (m_dgvAllPage.DataGrid as CDataGridViewRTD).UpdateRTD(entity); // 获取每个站点分中心的ID CEntityStation station = CDBDataMgr.Instance.GetStationById(entity.StrStationID); if (m_mapSubCenterPage.ContainsKey(station.SubCenterID.Value)) { result = result && (m_mapSubCenterPage[station.SubCenterID.Value].DataGrid as CDataGridViewRTD).UpdateRTD(entity); } return(result); }
private void tsButAddMap_Click(object sender, EventArgs e) { if (m_strCurrentStationId == null || m_strCurrentStationId.Equals("")) { MessageBox.Show("请先选中需要添加水位流量关系的测站"); return; } // 将当前的站点显示 CEntityStation station = CDBDataMgr.Instance.GetStationById(m_strCurrentStationId); listBox_StationName.TopIndex = listBox_StationName.FindString(GetDisplayStationName(station)); //listBox_StationName.SelectedIndex = -1; m_dgvMap.AddNewRecord(); }
/// <summary> /// 添加实时数据 /// </summary> /// <param name="entity"></param> public void AddRTD(CEntityRealTime entity) { // 根据ID进行分中心分发 (m_dgvAllPage.DataGrid as CDataGridViewRTD).AddRTD(entity); // 获取每个站点分中心的ID CEntityStation station = CDBDataMgr.Instance.GetStationById(entity.StrStationID); if (m_mapSubCenterPage.ContainsKey(station.SubCenterID.Value)) { (m_mapSubCenterPage[station.SubCenterID.Value].DataGrid as CDataGridViewRTD).AddRTD(entity); } //RefreshStationState(); //(m_dgvAllPage.DataGrid as CDataGridViewRTD).RecalculateHeaderSize(); //计算表头宽度 }
/// <summary> /// 站点和数据协议的对应 /// 1.如果是gprs信道,则关联gprs号和数据协议的对应 /// 2.如果是gsm信道,则关联gsm号码和数据协议的对应 /// 3.如果是beidou信道,则关联beidou号码和数据协议的对应 /// </summary> /// <param name="channnel"></param> private void initStations() { m_listStations = m_proxyStation.QueryAll(); m_listSoillStations = m_proxySoliStation.QueryAllSoilStation(); //水雨情、墒情中gprs号码 gsm号码 北斗号码都是不重复的 //1.初始化水情信息对应 for (int i = 0; i < m_listStations.Count; i++) { CEntityStation station = new CEntityStation(); station = m_listStations[i]; if (station.GPRS != null && station.GPRS.Trim().Length > 0) { stationGprsMap[station.GPRS.Trim()] = station.Datapotocol; hexGprsMap[station.GPRS.Trim()] = "Hex"; // 或者ASCII } if (station.GSM != null && station.GSM.Trim().Length > 0) { stationGsmMap[station.GSM.Trim()] = station.Datapotocol; hexGsmMap[station.GPRS.Trim()] = "Hex"; // 或者ASCII } if (station.BDSatellite != null && station.BDSatellite.Trim().Length > 0) { stationBeidouMap[station.BDSatellite.Trim()] = station.Datapotocol; hexBeidouMap[station.BDSatellite.Trim()] = "Hex"; // 或者ASCII } } //2.初始化墒情信息对应 for (int i = 0; i < m_listSoillStations.Count; i++) { CEntitySoilStation soilStation = new CEntitySoilStation(); soilStation = m_listSoillStations[i]; if (soilStation.GPRS != null && soilStation.GPRS.Trim().Length > 0) { stationGprsMap[soilStation.GPRS.Trim()] = soilStation.Datapotocol; hexGprsMap[soilStation.GPRS.Trim()] = "Hex"; // 或者ASCII } if (soilStation.GSM != null && soilStation.GSM.Trim().Length > 0) { stationGsmMap[soilStation.GSM.Trim()] = soilStation.Datapotocol; hexGsmMap[soilStation.GSM.Trim()] = "Hex"; // 或者ASCII } if (soilStation.BDSatellite != null && soilStation.BDSatellite.Trim().Length > 0) { stationBeidouMap[soilStation.GPRS.Trim()] = soilStation.Datapotocol; hexBeidouMap[soilStation.BDSatellite.Trim()] = "Hex"; // 或者ASCII } } }
//115 gm public List <CEntityStation> getAllGprs_1() { List <CEntityStation> results = new List <CEntityStation>(); string sql = "select distinct Gprs,stationid from " + CT_TableName + ";"; SqlDataAdapter adapter = new SqlDataAdapter(sql, CDBManager.GetInstacne().GetConnection()); DataTable dataTableTmp = new DataTable(); adapter.Fill(dataTableTmp); for (int rowid = 0; rowid < dataTableTmp.Rows.Count; ++rowid) { CEntityStation result = new CEntityStation(); result.GPRS = dataTableTmp.Rows[rowid][0].ToString(); result.StationID = dataTableTmp.Rows[rowid][1].ToString(); results.Add(result); } return(results); }
public TruList BatchTime(StationList list) { CProtocolEventManager.DownForTru += BatchForTru_EventHandler; truReturnList = new List <string>(); TruList truList = new TruList(); m_timer_1.Start(); foreach (var id in list.Ids) { CEntityStation station = CDBDataMgr.Instance.GetStationById(id); CPortDataMgr.Instance.SendAdjustClock(station); } while (true) { // 等待 if (timeDown_1) { foreach (var id in list.Ids) { if (this.truReturnList.Contains(id)) { truList.TruData.Add(new TruData() { StationId = id, Tru = true }); } else { truList.TruData.Add(new TruData() { StationId = id, Tru = false }); } } break; } } m_timer_1.Stop(); CProtocolEventManager.DownForTru -= DownForTru_EventHandler; return(truList); }
// public static void SendTru(){ //这个就是我们的函数,我们把要对控件进行的操作放在这里 public void SendTru(string str) { DelUserHandler handler = new DelUserHandler(SendTru); //this.Invoke(handler, new object[] { SendTru }); CEntityStation entity = new CEntityStation(); entity.StationID = "6018"; entity.GPRS = "60006018"; CPortDataMgr.Instance.SendHex(entity); //Button btn1 = new Button(); //btn1.PerformClick(); // button1_Click(this, null); // button1.InvokeMember("click"); //CEntityStation entity = new CEntityStation(); //entity.StationID = "6018"; //entity.GPRS = "60006018"; //CPortDataMgr.Instance.SendHex(entity); }
private CEntityStation FindStationByBeidouID(string bid) { if (this.StationLists == null) { throw new Exception("北斗卫星模块未初始化站点!"); } CEntityStation result = null; foreach (var station in this.StationLists) { if (station.BDSatellite.Equals(bid, StringComparison.OrdinalIgnoreCase)) { result = station; break; } } return(result); }
//1009 public CEntityStation QueryByGprs(string gprsID) { // List<CEntityStation> results = new List<CEntityStation>(); CEntityStation result = new CEntityStation(); string sql = "select * from " + CT_TableName + " where " + CN_GPRS + " = '" + gprsID + "';"; SqlDataAdapter adapter = new SqlDataAdapter(sql, CDBManager.GetInstacne().GetConnection()); DataTable dataTableTmp = new DataTable(); adapter.Fill(dataTableTmp); if (dataTableTmp.Rows.Count == 1) { result.StationID = dataTableTmp.Rows[0][CN_StationID].ToString(); result.GPRS = dataTableTmp.Rows[0][CN_GPRS].ToString(); result.StationName = dataTableTmp.Rows[0][CN_StationName].ToString(); result.SubCenterID = int.Parse(dataTableTmp.Rows[0][CN_SubCenterID].ToString()); // results.Add(result); } return(result); }
private CEntityStation FindStationBySID(string sid) { if (this.m_stationLists == null) { throw new Exception("GPRS模块未初始化站点!"); } CEntityStation result = null; foreach (var station in this.m_stationLists) { if (station.StationID.Equals(sid)) { result = station; break; } } return(result); }
// 添加新列 public void AddNewRow(CEntityStation entity) { // 记录超过1000条,或者时间超过1分钟,就将当前的数据写入数据库 m_mutexDataTable.WaitOne(); //等待互斥量 DataRow row = m_tableDataAdded.NewRow(); row[CN_StationID] = entity.StationID; row[CN_SubCenterID] = entity.SubCenterID; row[CN_StationName] = entity.StationName; row[CN_StationType] = (Int32)entity.StationType; row[CN_WaterBase] = entity.DWaterBase; row[CN_WaterMax] = entity.DWaterMax; row[CN_WaterMin] = entity.DWaterMin; row[CN_WaterChange] = entity.DWaterChange; row[CN_RainAccuracy] = entity.DRainAccuracy; row[CN_RainChange] = entity.DRainChange; row[CN_GSM] = entity.GSM; row[CN_GPRS] = entity.GPRS; row[CN_BDSatellite] = entity.BDSatellite; row[CN_BDMember] = entity.BDMemberSatellite; row[CN_VoltageMin] = entity.DVoltageMin; row[CN_Maintran] = entity.Maintran; row[CN_Subtran] = entity.Subtran; row[CN_Dataprotocol] = entity.Datapotocol; row[CN_Watersensor] = entity.Watersensor; row[CN_Rainsensor] = entity.Rainsensor; row[CN_Reportinterval] = entity.Reportinterval; m_tableDataAdded.Rows.Add(row); if (m_tableDataAdded.Rows.Count >= CDBParams.GetInstance().AddBufferMax) { // 如果超过最大值,写入数据库 Task task = new Task(() => { AddDataToDB(); }); task.Start(); } else { // 没有超过缓存最大值,开启定时器进行检测,多次调用Start()会导致重新计数 m_addTimer.Start(); } m_mutexDataTable.ReleaseMutex(); }
public void SetCurrentStation(CEntityStation station, bool bNotify = true) { // 设置当前的站点 if (station == null) { return; } m_currentStation = station; this.TextChanged -= cmbStation_TextChanged; this.Text = GetDisplayStationName(station); this.TextChanged += cmbStation_TextChanged; if (bNotify) { // 发消息 if (StationSelected != null) { StationSelected.Invoke(this, new CEventSingleArgs <CEntityStation>(m_currentStation)); } } }