Ejemplo n.º 1
0
        //---------------------------------------------------------------------
        //确认数据
        public void SendDataACK(byte recNo)
        {
            //发送确认数据【主机→采集器】
            DataPackage pkgData = new DataPackage();

            pkgData.CtrlHead.CMD_ID = HCCommand.DATA_ACK;
            pkgData.CtrlHead.CE_ID = ceInfo.CE_ID;

            Struct_OKWord okWord = new Struct_OKWord();
            okWord.TriggerType = RecordTriggerType.Manual;
            okWord.FileType = AckFileType.Image;

            using (MemoryStream ms = new MemoryStream())
            {
                using (BinaryWriter bw = new BinaryWriter(ms))
                {
                    bw.Write((byte)0);
                    bw.Write(okWord.OkWord);
                    bw.Write(recNo);
                }

                pkgData.PureData = ms.ToArray();
            }

            pkgData.Pack();
            SendData(pkgData);
        }
Ejemplo n.º 2
0
        public void ReceiveDataACK(DataPackage pkgData)
        {
            //收到确认数据【采集器→主机】
            Struct_OKWord okWord = new Struct_OKWord();
            byte status_ctl;
            byte recNo;

            byte[] dataBuffer = pkgData.PureData;
            using (MemoryStream ms = new MemoryStream(dataBuffer))
            {
                using (BinaryReader br = new BinaryReader(ms))
                {
                    status_ctl = br.ReadByte();          //输出开关量状态

                    okWord.OkWord = br.ReadByte();

                    recNo = br.ReadByte();               //要确认的文件记录号,默认为 0。

                }
            }

            if ((recNo == curRecNo) && (okWord.FileType == AckFileType.Image))
            {
                //文件读取结束,通知主程序

                if (curStream != null) curStream.Close();
                if (curBinaryWriter != null) curBinaryWriter.Close();

                if (OnDataChanged != null)
                {
                    //通知文件读取结束
                    ImageHandlerEventArgs eventArgs = new ImageHandlerEventArgs(RunMode.Image);
                    eventArgs.OperState = OperationState.ReadComplete;
                    eventArgs.RecNo = curRecNo;
                    eventArgs.fileName = curFileName;
                    OnDataChanged(this, eventArgs);
                }

            }
        }