private void OnGetData(P2P_Config config) { if (InvokeRequired) { BeginInvoke(new GetP2PDataCallback(OnGetData), new object[] { config }); return; } txtRecvNum.Text = adamP2P.P2P_PackageNum.ToString(); RefreshListView(config); }
private void RefreshListView(P2P_Config p2p_Config) { int i; bool bIsValid; int iCnt = 0; int idxData; int idxDataPos; bool bData; //For Coils bool bDataChanged; //For Coils int iData; //For Registers string strTemp; // listViewInfo.BeginUpdate(); listViewInfo.Items.Clear(); for (i = 0; i < p2p_Config.NoChannels; i++) { bIsValid = (((p2p_Config.ChannelMask >> i) & 0x01) > 0); if (bIsValid) { txtFuncCode.Text = p2p_Config.FunCode.ToString(); if (p2p_Config.FunCode == (byte)P2P_FunctionCode.DIO_BASIC_MODE) { //DIO listViewInfo.Items.Add(i.ToString()); idxData = i / 8; idxDataPos = i % 8; bData = (((p2p_Config.Data[idxData] >> idxDataPos) & 0x01) > 0); bDataChanged = (((p2p_Config.COS_Flag[idxData] >> idxDataPos) & 0x01) > 0); listViewInfo.Items[iCnt].SubItems.Add(bData.ToString()); listViewInfo.Items[iCnt].SubItems.Add(bDataChanged.ToString()); iCnt++; } else if (p2p_Config.FunCode == (byte)P2P_FunctionCode.DIO_ADV_MODE) { //DIO listViewInfo.Items.Add("Advanced DO"); bData = (p2p_Config.Data[0] == 0xFF); listViewInfo.Items[iCnt].SubItems.Add(bData.ToString()); listViewInfo.Items[iCnt].SubItems.Add("*****"); iCnt++; } else if (p2p_Config.FunCode == (byte)P2P_FunctionCode.AIO_MODE) { //AIO if (p2p_Config.P2PMode == (byte)P2P_Mode.Advanced) { listViewInfo.Items.Add("Advanced AI"); } else { listViewInfo.Items.Add(i.ToString()); } iData = (p2p_Config.Data[i * 2] << 8); iData |= (p2p_Config.Data[i * 2 + 1]); listViewInfo.Items[iCnt].SubItems.Add(iData.ToString()); listViewInfo.Items[iCnt].SubItems.Add("*****"); iCnt++; } } } listViewInfo.EndUpdate(); //////////////////////////////////////////////////////////////////////////////////// string strNowTime = DateTime.Now.ToString("hh:mm:ss:fff"); this.listBoxHistory.BeginUpdate(); this.listBoxHistory.Items.Add(strNowTime); this.listBoxHistory.Items.Add("PackageNum: " + p2p_Config.PackageNum.ToString()); this.listBoxHistory.Items.Add("FuncCode: 0x" + p2p_Config.FunCode.ToString("X02")); this.listBoxHistory.Items.Add("ChannelMask: 0x" + p2p_Config.ChannelMask.ToString("X08")); if (p2p_Config.FunCode == (byte)P2P_FunctionCode.DIO_BASIC_MODE) { bDataChanged = false; for (i = 0; i < p2p_Config.COS_Flag.Length - 2; i++) { if (p2p_Config.COS_Flag[i] > 0) { bDataChanged = true; break; } } if (bDataChanged) { this.listBoxHistory.Items.Add("Packet Type: C.O.S."); } else { this.listBoxHistory.Items.Add("Packet Type: Period"); } } strTemp = ""; this.listBoxHistory.Items.Add("Data: "); for (i = 0; i < p2p_Config.Data.Length; i++) { strTemp += "0x" + p2p_Config.Data[i].ToString("X02"); if (i != p2p_Config.Data.Length - 1) { strTemp += ", "; } if (i == 7) { this.listBoxHistory.Items.Add(strTemp); strTemp = ""; } } this.listBoxHistory.Items.Add(strTemp); this.listBoxHistory.Items.Add(""); listBoxHistory.SelectedIndex = listBoxHistory.Items.Count - 1; this.listBoxHistory.EndUpdate(); //////// }