private void buttonSetV_Click(object sender, EventArgs e) { if (serialDevice < 0) { MessageBox.Show("请先打开串口"); return; } Byte[] buffer = new Byte[255]; ushort[] addrArray = new ushort[2]; HFREADER_VERSION pVersion = new HFREADER_VERSION(); pVersion.type = new byte[hfReaderDll.HFREADER_VERSION_SIZE]; pVersion.sv = new byte[hfReaderDll.HFREADER_VERSION_SIZE]; pVersion.hv = new byte[hfReaderDll.HFREADER_VERSION_SIZE]; Byte[] sendBuffer = new Byte[1024]; Byte[] rcvBuffer = new Byte[1024]; Byte[] str = new byte[hfReaderDll.HFREADER_VERSION_SIZE]; if (!GetDeviceAddr(addrArray)) { return; } str = System.Text.Encoding.Default.GetBytes(this.textBoxSDeviceType.Text); Array.Copy(str, 0, pVersion.type, 0, str.Length); str = System.Text.Encoding.Default.GetBytes(this.textBoxSDeviceSv.Text); Array.Copy(str, 0, pVersion.sv, 0, str.Length); str = System.Text.Encoding.Default.GetBytes(this.textBoxSDeviceHv.Text); Array.Copy(str, 0, pVersion.hv, 0, str.Length); LockUart(); int rlt = hfReaderDll.hfReaderSetVersion(serialDevice, addrArray[0], addrArray[1], ref pVersion, sendBuffer, rcvBuffer); UnlockUart(); if (rlt > 0) { if (pVersion.result.flag == 0) { this.radioButtonGetVOk.Checked = true; } else { this.radioButtonGetVFail.Checked = true; } this.textBoxGetVSrcAddr.Text = pVersion.result.srcAddr.ToString("X").PadLeft(4, '0'); this.textBoxGetVDestAddr.Text = pVersion.result.targetAddr.ToString("X").PadLeft(4, '0'); } DisplayRcvInf(rcvBuffer, "设置版本信息返回:"); DisplaySendInf(sendBuffer, "设置版本信息:"); }
public static extern int hfReaderSetVersion(int h, ushort srcAddr, ushort targetAddr, ref HFREADER_VERSION pVersion, Byte[] pTxFrame, Byte[] pRxFrame);