Ejemplo n.º 1
0
 public void WriteBytes(byte[] Bytes, int Start, int Count)
 {
     if (RS232Obj != null && RS232Obj.IsOpen == true)
     {
         RS232Obj.WriteBytes(Bytes, Start, Count);
     }
 }
Ejemplo n.º 2
0
        /// <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;
        }