public bool SendModbusData(ref byte[] values)
{
string result = string.Join(",", values);
if (serialPort1.IsOpen)
{
//Clear in/out buffers:
serialPort1.DiscardOutBuffer();//清空发送、接收缓冲区字节
serialPort1.DiscardInBuffer();
textBox1.Text = result;
//Function 3 response buffer:
byte[] response = new byte[values.Length + 2];
//把value数组复制到response数组
Array.Copy(values, response, values.Length);
byte[] CRC = new byte[2];
GetCRC(response, ref CRC);
response[0] = Convert.ToByte(response[0]);//地址
response[1] = Convert.ToByte(response[1]);//功能
//values[2] = (byte)(Convert.ToByte(values[2])>>8);//寄存器地址
response[2] = Convert.ToByte(response[2]);
response[3] = Convert.ToByte(response[3]);
//values[2] = (byte)(Convert.ToByte(values[]) >> 8);//寄存器个数
response[4] = Convert.ToByte(response[4]);
response[5] = Convert.ToByte(response[5]);
response[response.Length - 2] = CRC[0];
response[response.Length - 1] = CRC[1];
values = response; //返回带有 CRC 验证的modbus 数据包
//Console.WriteLine(values.Length);
//for (int i = 0; i < values.Length; i++)
//{
// Console.WriteLine(values[i]);//控制台输出打包后的Modbus数据
//}
//Send modbus message to Serial Port:
try
{
serialPort1.Write(values, 0, values.Length);
return true;
}
catch (Exception)
{
return false;
}
}
}
这是程序的代码,请大神帮我看看
漏了一个return,有一种情况没有返回值