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); }
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; } } }