private void buttonGetIo_Click(object sender, EventArgs e) { if (serialDevice < 0) { MessageBox.Show("请先打开串口"); return; } Byte[] buffer = new Byte[255]; ushort[] addrArray = new ushort[2]; HFREADER_IO pIo = new HFREADER_IO(); Byte[] sendBuffer = new Byte[1024]; Byte[] rcvBuffer = new Byte[1024]; if (!GetDeviceAddr(addrArray)) { return; } LockUart(); int rlt = hfReaderDll.hfReaderGetIo(serialDevice, addrArray[0], addrArray[1], ref pIo, sendBuffer, rcvBuffer); UnlockUart(); if (rlt > 0) { this.textBoxGetIoSrcAddr.Text = pIo.result.srcAddr.ToString("X").PadLeft(4, '0'); this.textBoxGetIoTargetAddr.Text = pIo.result.targetAddr.ToString("X").PadLeft(4, '0'); this.textBoxIn1.Text = pIo.in1.ToString("X").PadLeft(8, '0'); this.textBoxIn2.Text = pIo.in2.ToString("X").PadLeft(8, '0'); this.textBoxIn3.Text = pIo.in3.ToString("X").PadLeft(8, '0'); this.textBoxIn4.Text = pIo.in4.ToString("X").PadLeft(8, '0'); } DisplayRcvInf(rcvBuffer, "获取输入事件返回:"); DisplaySendInf(sendBuffer, "获取输入事件:"); }
public static extern int hfReaderCfgIo(int h, ushort srcAddr, ushort targetAddr, ref HFREADER_IO pIo, Byte[] pTxFrame, Byte[] pRxFrame);
private void button3_Click(object sender, EventArgs e) { if (serialDevice < 0) { MessageBox.Show("请先打开串口"); return; } Byte[] buffer = new Byte[255]; ushort[] addrArray = new ushort[2]; HFREADER_IO pIo = new HFREADER_IO(); Byte[] sendBuffer = new Byte[1024]; Byte[] rcvBuffer = new Byte[1024]; if (!GetDeviceAddr(addrArray)) { return; } if (this.radioButtonRelayOff.Checked) { pIo.relayState = 0; } else if (this.radioButtonRelayOn.Checked) { pIo.relayState = 1; } else { pIo.relayState = 2; } if (this.radioButtonOut2Off.Checked) { pIo.out2State = 0; } else if (this.radioButtonOut2On.Checked) { pIo.out2State = 1; } else { pIo.out2State = 2; } if (this.radioButtonOut1Off.Checked) { pIo.out1State = 0; } else if (this.radioButtonOut1On.Checked) { pIo.out1State = 1; } else { pIo.out1State = 2; } LockUart(); int rlt = hfReaderDll.hfReaderSetIo(serialDevice, addrArray[0], addrArray[1], ref pIo, sendBuffer, rcvBuffer); UnlockUart(); if (rlt > 0) { if (pIo.result.flag == 0) { this.radioButtonSetIoOk.Checked = true; this.radioButtonSetIoFail.Checked = false; } else { this.radioButtonSetIoOk.Checked = false; this.radioButtonSetIoFail.Checked = true; } this.textBoxSetIoSrcAddr.Text = pIo.result.srcAddr.ToString("X").PadLeft(4, '0'); this.textBoxSetIoTargetAddr.Text = pIo.result.targetAddr.ToString("X").PadLeft(4, '0'); } DisplayRcvInf(rcvBuffer, "设置输出事件返回:"); DisplaySendInf(sendBuffer, "设置输出事件:"); }
private void buttonCfgIo_Click(object sender, EventArgs e) { if (serialDevice < 0) { MessageBox.Show("请先打开串口"); return; } Byte[] buffer = new Byte[255]; ushort[] addrArray = new ushort[2]; HFREADER_IO pIo = new HFREADER_IO(); Byte[] sendBuffer = new Byte[1024]; Byte[] rcvBuffer = new Byte[1024]; if (!GetDeviceAddr(addrArray)) { return; } pIo.relayFrequent = (uint)(this.comboBoxRelayFreq.SelectedIndex + 1); pIo.out2Frequent = (uint)(this.comboBoxOut2Freq.SelectedIndex + 1); pIo.out1Frequent = (uint)(this.comboBoxOut1Freq.SelectedIndex + 1); if (GetHexInput(this.textBoxRelayCycle.Text, buffer, 1) <= 0) { return; } pIo.relayCycle = buffer[0]; if (GetHexInput(this.textBoxOut2Cycle.Text, buffer, 1) <= 0) { return; } pIo.out2Cycle = buffer[0]; if (GetHexInput(this.textBoxOut1Cycle.Text, buffer, 1) <= 0) { return; } pIo.out1Cycle = buffer[0]; LockUart(); int rlt = hfReaderDll.hfReaderCfgIo(serialDevice, addrArray[0], addrArray[1], ref pIo, sendBuffer, rcvBuffer); UnlockUart(); if (rlt > 0) { if (pIo.result.flag == 0) { this.radioButtonCfgIoOpOk.Checked = true; this.radioButtonCfgIoOpFail.Checked = false; } else { this.radioButtonCfgIoOpOk.Checked = false; this.radioButtonCfgIoOpFail.Checked = true; } this.textBoxCfgIoSrcAddr.Text = pIo.result.srcAddr.ToString("X").PadLeft(4, '0'); this.textBoxCfgIoTargetAddr.Text = pIo.result.targetAddr.ToString("X").PadLeft(4, '0'); } DisplayRcvInf(rcvBuffer, "配置IO输出事件返回:"); DisplaySendInf(sendBuffer, "配置IO输出事件:"); }