示例#1
0
        private BaseMessage makeMessage(MessageType _key, byte[] payload)
        {
            BaseMessage message = null;

            switch (_key)
            {
            case MessageType.DETECTOR_STATUS_MESSAGE:
            {
                message = new DetectorStatus();
                message.deserialize(payload);
                break;
            }

            case MessageType.DETECTOR_GET_IMAGE_DONE:
            {
                message = new DetectorGetImageDone();
                message.deserialize(payload);
                break;
            }

            case MessageType.DETECTOR_ERROR_MESSAGE:
            {
                message = new DetectorError();
                message.deserialize(payload);
                break;
            }

            default:
            {
                //Logger.Info("DetectorCodec key = {0} does NOT match any key", BitConverter.ToString(BitConverter.GetBytes((ushort)_key)));
                break;
            }
            }

            return(message);
        }
示例#2
0
        private void handleResponseMessage(BaseMessage msg)
        {
            switch (msg.getMessageType())
            {
            case MessageType.DETECTOR_STATUS_MESSAGE:
            {
                DetectorStatus detectorStatus = msg as DetectorStatus;
                this.mState         = detectorStatus.getState();
                this.mOperationMode = detectorStatus.getOperationMode();
                this.mFPS           = detectorStatus.getFPS();
                this.mNOF           = detectorStatus.getNOF();
                this.mBMPRate       = detectorStatus.getBMPRate();

                this.Dispatcher.Invoke((MethodInvoker) delegate
                    {
                        switch (this.mState)
                        {
                        case DetectorState.DISCONNECTED:
                            {
                                lbDetectorState.Content      = "Chưa kết nối";
                                lbDetectorBMPRate.Content    = "";
                                lbDetectorFPS.Content        = "";
                                lbDetectorNumOfFrame.Content = "";
                                break;
                            }

                        case DetectorState.CONNECTED:
                            {
                                lbDetectorState.Content  = "Đã kết nối";
                                circleDetectorState.Fill = Brushes.Green;
                                //lbDetectorBMPRate.Content = "BMPRate ( " + this.mBMPRate.ToString() + " % )";
                                lbDetectorFPS.Content        = "FPS (" + this.mFPS.ToString() + ")";
                                lbDetectorNumOfFrame.Content = "Số ảnh chụp(" + this.mNOF.ToString() + ")";
                                break;
                            }

                        case DetectorState.CALIBARATING:
                            {
                                lbDetectorState.Content  = "Đang hiệu chỉnh";
                                circleDetectorState.Fill = Brushes.Green;
                                //lbDetectorBMPRate.Content = "BMPRate ( " + this.mBMPRate.ToString() + " % )";
                                lbDetectorFPS.Content        = "FPS (" + this.mFPS.ToString() + ")";
                                lbDetectorNumOfFrame.Content = "Số ảnh chụp(" + this.mNOF.ToString() + ")";
                                break;
                            }

                        case DetectorState.CALIBRATE_DARK_DONE:
                            {
                                lbDetectorState.Content  = "Hiệu chỉnh tối xong";
                                circleDetectorState.Fill = Brushes.Green;
                                //lbDetectorBMPRate.Content = "BMPRate ( " + this.mBMPRate.ToString() + " % )";
                                lbDetectorFPS.Content        = "FPS ( " + this.mFPS.ToString() + " )";
                                lbDetectorNumOfFrame.Content = "Số ảnh chụp(" + this.mNOF.ToString() + ")";
                                break;
                            }

                        case DetectorState.CALIBRATE_BRIGHT_DONE:
                            {
                                lbDetectorState.Content      = "Hiệu chỉnh sáng xong";
                                circleDetectorState.Fill     = Brushes.Green;
                                lbDetectorBMPRate.Content    = "BMPRate ( " + this.mBMPRate.ToString() + " % )";
                                lbDetectorFPS.Content        = "FPS ( " + this.mFPS.ToString() + " )";
                                lbDetectorNumOfFrame.Content = "Số ảnh chụp(" + this.mNOF.ToString() + ")";
                                break;
                            }

                        case DetectorState.READY_GET_IMAGE:
                            {
                                lbDetectorState.Content      = "Sẵn sàng chụp ảnh";
                                circleDetectorState.Fill     = Brushes.Green;
                                lbDetectorBMPRate.Content    = "BMPRate (" + this.mBMPRate.ToString() + " %)";
                                lbDetectorFPS.Content        = "FPS ( " + this.mFPS.ToString() + " )";
                                lbDetectorNumOfFrame.Content = "Số ảnh chụp(" + this.mNOF.ToString() + ")";
                                break;
                            }
                        }
                    });

                //Logger.Info("DETECTOR_STATUS_MESSAGE: state = {0}, mode = {1}, FPS = {2}, NOF = {3}, BMP = {4}",
                //    detectorStatus.getState(), detectorStatus.getOperationMode(), detectorStatus.getFPS(), detectorStatus.getNOF(), detectorStatus.getBMPRate());
                break;
            }

            case MessageType.DETECTOR_GET_IMAGE_DONE:
            {
                DetectorGetImageDone res = msg as DetectorGetImageDone;
                this.mCurResImage = res.getIndex();
                Logger.Info("DETECTOR_GET_IMAGE_DONE: index = {0}", res.getIndex());
                break;
            }

            case MessageType.DETECTOR_ERROR_MESSAGE:
            {
                DetectorError res = msg as DetectorError;
                Logger.Info("DETECTOR_ERROR_MESSAGE: error code = {0}", res.getErrorCode());
                break;
            }

            default:
            {
                //Logger.Info("DetectorCodec key = {0} does NOT match any key", BitConverter.ToString(BitConverter.GetBytes((ushort)_key)));
                break;
            }
            }
        }