Exemple #1
0
        void OnProgress()
        {
            if (OnDataChanged != null)
            {
                //通知进度改变,进度值( Value = 0 ~ 100 )
                int progressValue = 100 * curReadbytes / curDataLen;
                if (progressValue < preProgressValue) return;
                preProgressValue = progressValue;

                ImageHandlerEventArgs eventArgs = new ImageHandlerEventArgs(RunMode.Image);
                eventArgs.OperState = OperationState.Progress;
                eventArgs.Value = progressValue;

                OnDataChanged(this, eventArgs);
            }
        }
Exemple #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);
                }

            }
        }