private void SyncSerialPort() { if (serialPort1.IsOpen) { testEnv.connected = false; serialPort1.Close(); } Rs232Utils.SetPortDescString(serialPort1, testEnv.descPort); try { if (TesterEnviorment.DEBUG_MODE != 1) { serialPort1.Open(); } DisplayStatusbarMessage(testEnv.descPort); testEnv.connected = true; sendCnt = 0; AdjustBtnText(); } catch (Exception ex) { testEnv.connected = false; MessageBox.Show(ex.Message); } }
private void recvData(object sender, EventArgs e) { try { string str = ""; str = Convert.ToString(serialPort1.ReadByte(), 16).ToUpper(); if (str.Equals(Rs232Utils.ByteToHex(Rs232Utils.STX))) { // Local ID MSB str = Convert.ToString(serialPort1.ReadByte(), 16).ToUpper(); // Local ID LSB str = Convert.ToString(serialPort1.ReadByte(), 16).ToUpper(); // Pay Load Length MSB + LSB str = Convert.ToString(serialPort1.ReadByte(), 16); str += Convert.ToString(serialPort1.ReadByte(), 16); str += Convert.ToString(serialPort1.ReadByte(), 16); str = Rs232Utils.ConvertHexToString(str); int payloadLength = Int32.Parse(str); for (int i = 0; i < payloadLength; i++) { str = Convert.ToString(serialPort1.ReadByte(), 16).ToUpper(); recieveSB += Rs232Utils.ConvertHexToString(str); } str = Convert.ToString(serialPort1.ReadByte(), 16).ToUpper(); if (str.Equals(Rs232Utils.ByteToHex(Rs232Utils.ETX))) { this.Invoke(new EventHandler(HandleReadData)); } } } catch (Exception ex) { // 누적 데이터를 없애고 recieveSB = ""; sendCnt = 0; } }
private void SendPacket() { sendCnt++; if (TesterEnviorment.DEBUG_MODE == 1) { //수조온도 pH농도 염도 용존산소량 음극전위 양극전류 string[] row = { DateTime.Now.ToString(dateTimeEnd.CustomFormat), "-0023", " 0076" , "-2000", "-1234"," 0040", " 0201" }; SetCurrentData(row); sendCnt--; if (dataGridView1.Rows.Count == 1) { TesterEnviorment.ConvertDateTime(row, testEnv.startTime); SetDataToUI(row); SaveTofile(dataGridView1, testEnv.fileName, true); } } // 시리얼데이터 버퍼 STX 1 / LocalID 2 / ETX 1 byte[] buffer = new byte[4]; // Start Byte buffer[0] = Rs232Utils.STX; // Local ID buffer[1] = System.Text.Encoding.ASCII.GetBytes(testEnv.localId.ToCharArray())[0]; buffer[2] = System.Text.Encoding.ASCII.GetBytes(testEnv.localValue.ToCharArray())[0]; // End Byte buffer[3] = Rs232Utils.ETX; try { if (TesterEnviorment.DEBUG_MODE != 1) { if (serialPort1.IsOpen) { serialPort1.Write(buffer, 0, buffer.Length); } } } catch (Exception e) { } DisplayStatusbarMessage(string.Format("Serial Status: {0} Send Data: {1}", sendCnt, Rs232Utils.ByteArrayToHexString(buffer))); }
public Form1() { InitializeComponent(); testEnv.descPort = Rs232Utils.PortDescString(serialPort1); testEnv.InitFromFile(); if (Rs232Utils.IsValidPortDescString(testEnv.descPort)) { SyncSerialPort(); } DisplayStatusbarMessage(testEnv.descPort); dateTimeEnd.Format = DateTimePickerFormat.Custom; dateTimeEnd.CustomFormat = TesterEnviorment.DATETIME_FORMAT; if (testEnv.EnableRunTest() == 0) { textBoxDelay.Text = testEnv.delay.ToString(); textBoxTarget.Text = testEnv.target; dateTimeEnd.Value = testEnv.endTime; textBoxStartTime.Text = testEnv.startTime.ToString(TesterEnviorment.DATETIME_FORMAT); } else { textBoxDelay.Text = "1"; textBoxTarget.Text = ""; } this.Text = String.Format("{0} [Build : {1}]", testEnv.appname, getBuildDateTime2().ToString()); AdjustBtnText(); timerSendPacket.Interval = 1000; timerSendPacket.Tick += new EventHandler(OnTimeSendPacket); timerSaveToFile.Tick += new EventHandler(OnTimeSaveToFile); radioButtonTemperature.Checked = true; //serialPort1.ReceivedBytesThreshold = 1; object[] AllGraph = { chartTemperature, chartSalt, chartOxgen, chartAmp, chartVolt, chartPH }; foreach (System.Windows.Forms.DataVisualization.Charting.Chart chart in AllGraph) { chart.ChartAreas[0].CursorX.IsUserSelectionEnabled = true; chart.ChartAreas[0].CursorY.IsUserSelectionEnabled = true; chart.ChartAreas[0].CursorY.IsUserEnabled = true; chart.ChartAreas[0].CursorY.IsUserEnabled = true; chart.ChartAreas[0].AxisX.ScaleView.Zoomable = true; chart.ChartAreas[0].AxisY.ScaleView.Zoomable = true; chart.ChartAreas[0].CursorX.AutoScroll = true; chart.ChartAreas[0].CursorY.AutoScroll = true; chart.Series[0].IsValueShownAsLabel = false; chart.Legends[0].Enabled = true; } for (int i = 0; i < 7; i++) { dataGridView1.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable; dataGridView1.Columns[i].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter; } }