public void WriteBytes(byte[] Bytes, int Start, int Count) { if (RS232Obj != null && RS232Obj.IsOpen == true) { RS232Obj.WriteBytes(Bytes, Start, Count); } }
/// <summary> /// 发送数据,执行完WriteFrame及AddPackage后执行此函数才发送数据 /// </summary> public void Send() { SendFrame.PackageNum = (byte)SendBlock.Amount; SendBuffer[0] = SendFrame.S1; SendBuffer[1] = SendFrame.S2; SendBuffer[2] = SendFrame.Source; SendBuffer[3] = SendFrame.Target; SendBuffer[4] = SendFrame.Reserve; SendBuffer[5] = SendFrame.PackageNum; int j = FrameLength; ZBlock p; for (int i = 0; i < SendFrame.PackageNum; i++) { byte sum = 0; p = SendBlock.FetchObject(); SendBuffer[j] = p.Word; sum += SendBuffer[j]; j++; SendBuffer[j] = p.Reserve; sum += SendBuffer[j]; j++; for (int k = 0; k < BlockLength - 3; k++) { SendBuffer[j] = p.Data[k]; sum += SendBuffer[j]; j++; } SendBuffer[j] = sum; j++; } SerialObject.WriteBytes(SendBuffer, 0, j); _SendFrameNum++; _SendBlockNum += SendFrame.PackageNum; }