Пример #1
0
 //修改库位信息
 private void EditStoragesInfoCommandExecute(object obj)
 {
     if (operationMode == "offline")
     {
         Button                button                = obj as Button;
         StorageInfoModel      storageInfo           = (StorageInfoModel)button.DataContext;
         WndModifyStoragesInfo wndModifyStoragesInfo = new WndModifyStoragesInfo();
         DeliveryMesseagesEvent += wndModifyStoragesInfo.DeliveryMesseagesEventFunc;
         DeliveryMesseagesEvent(storageInfo.Location, storageInfo.Category, storageInfo.Amount);
         wndModifyStoragesInfo.ShowDialog();
     }
     if (operationMode == "online")
     {
         MessageBox.Show("联机模式下不允许修改库位信息");
     }
 }
Пример #2
0
        private async void OnClientDataReceived(object sender, ClientDataReceivedEventArgs e)
        {
            byte[] bytes      = e._dataBytes;
            string receiveStr = DataHelper.ByteArrayToHexString(bytes);

            //用于确认连接成功的
            if (receiveStr == "10010000")
            {
                await _client.SendAsync(DataHelper.HexStringToByteArray("11010010"));
            }
            else
            {
                Object obj  = (Object)DataHelper.DeserializeWithBinary(bytes);
                Type   type = obj.GetType();
                //操作模式的反馈
                if (type == typeof(OperationModeResponse))
                {
                    OperationModeResponse operationModeResponse = obj as OperationModeResponse;
                    if (operationModeResponse.Response == "OfflineIsOk")
                    {
                        operationMode = "offline";
                    }
                    if (operationModeResponse.Response == "OnlineIsOk")
                    {
                        operationMode = "online";
                    }
                    //operationMode = operationModeResponse.Response;
                    MessageBox.Show(operationModeResponse.Response);
                }
                //初始化的反馈
                if (type == typeof(InitializeResponse))
                {
                    InitializeResponse initializeResponse = obj as InitializeResponse;

                    MessageBox.Show(initializeResponse.Response);
                }

                #region 来自PLC相关的数据
                //入库上料反馈
                if (type == typeof(WarehousePLCInputLoadTrayResponse))
                {
                    WarehousePLCInputLoadTrayResponse classPLCInputLoadTrayResponse = obj as WarehousePLCInputLoadTrayResponse;

                    MessageBox.Show(classPLCInputLoadTrayResponse.InputLoadTrayResponse);
                }
                //读取RFID的反馈
                if (type == typeof(WarehousePLCReadRFIDResponse))
                {
                    WarehousePLCReadRFIDResponse classPLCReadRFIDResponse = obj as WarehousePLCReadRFIDResponse;
                    InputOldRFIDNumber = classPLCReadRFIDResponse.ReadRFIDResponse;
                }
                //写入RFID的反馈
                if (type == typeof(WarehousePLCWriteRFIDResponse))
                {
                    WarehousePLCWriteRFIDResponse WarehousePLCWriteRFIDResponse = obj as WarehousePLCWriteRFIDResponse;
                    MessageBox.Show(WarehousePLCWriteRFIDResponse.WriteRFIDResponse);
                }
                //入库执行的反馈
                if (type == typeof(WarehousePLCInputExecuteResponse))
                {
                    WarehousePLCInputExecuteResponse classPLCInputExecuteResponse = obj as WarehousePLCInputExecuteResponse;

                    MessageBox.Show(classPLCInputExecuteResponse.InputExecuteResponseStorageLocation.ToString());
                    MessageBox.Show(classPLCInputExecuteResponse.InputExecuteResponseResult);
                }
                //出库执行的反馈
                if (type == typeof(WarehousePLCOutputExecuteResponse))
                {
                    WarehousePLCOutputExecuteResponse WarehousePLCOutputExecuteResponse = obj as WarehousePLCOutputExecuteResponse;
                    MessageBox.Show(WarehousePLCOutputExecuteResponse.OutputExecuteResponseStorageLocation.ToString());
                    MessageBox.Show("出库状态" + WarehousePLCOutputExecuteResponse.OutputExecuteResponseResult);
                }
                #endregion

                #region 来自AGV相关的数据
                if (type == typeof(AGVQueryCurrentPositionResponse))
                {
                    AGVQueryCurrentPositionResponse classAGVQueryCurrentPositionResponse = obj as AGVQueryCurrentPositionResponse;
                    switch (classAGVQueryCurrentPositionResponse.QueryCurrentPositionResponse)
                    {
                    case 1: AGVCurrentPosition = "入库点"; break;

                    case 2: AGVCurrentPosition = "出库点"; break;

                    case 3: AGVCurrentPosition = "对接平台点"; break;

                    case 10: AGVCurrentPosition = "原点"; break;

                    default: break;
                    }
                }
                if (type == typeof(AGVTaskResponse))
                {
                    AGVTaskResponse classAGVTaskResponse = obj as AGVTaskResponse;
                    switch (classAGVTaskResponse.TaskResponse)
                    {
                    case 1: MessageBox.Show("到达入库点!"); break;

                    case 2: MessageBox.Show("到达出库点!"); break;

                    case 3: MessageBox.Show("到达对接平台点!"); break;

                    case 10: MessageBox.Show("回原点完成!"); break;

                    case 6: MessageBox.Show("放料盘完成!"); break;

                    case 7: MessageBox.Show("进料盘完成!"); break;

                    default: break;
                    }
                }
                #endregion

                #region 来自CloudPlatform相关的数据
                //获取所有的库位信息,用于显示
                if (type == typeof(List <CloudPlatformStorageQueryResponse>))
                {
                    List <CloudPlatformStorageQueryResponse> classStorageQueryShowResponses = obj as List <CloudPlatformStorageQueryResponse>;
                    App.Current.Dispatcher.Invoke(() => { _storagesList.Clear(); });//更新新的数据之前先清空列表
                    //List<StorageInfoModel> test = new List<StorageInfoModel>();
                    foreach (var item in classStorageQueryShowResponses)
                    {
                        var list = new StorageInfoModel
                        {
                            Location         = item.StorageQueryLocation,
                            Category         = item.StorageQueryCategory,
                            Amount           = item.StorageQueryAmount,
                            RFIDNumber       = item.StorageQueryRFID,
                            EditStoragesInfo = item.StorageQueryCategory != "null",
                            EditOutput       = item.StorageQueryCategory != "null"
                        };
                        App.Current.Dispatcher.Invoke(() => { _storagesList.Add(list); });
                    }
                }
                //获取所有的入库记录,用于显示
                if (type == typeof(List <CloudPlatformQueryInputRecordResponse>))
                {
                    List <CloudPlatformQueryInputRecordResponse> classQueryInputRecordResponses = obj as List <CloudPlatformQueryInputRecordResponse>;
                    App.Current.Dispatcher.Invoke(() => { _inputRecordList.Clear(); });//更新新的数据之前先清空列表

                    foreach (var item in classQueryInputRecordResponses)
                    {
                        var list = new InputRecordModel
                        {
                            RFIDNumber    = item.QueryInputRecordResponseRFIDNumber,
                            Location      = item.QueryInputRecordResponseLocation,
                            Amount        = item.QueryInputRecordResponseAmount,
                            OperationTime = item.QueryInputRecordResponseOperationTime,
                            Category      = item.QueryInputRecordResponseCategory
                        };
                        App.Current.Dispatcher.Invoke(() => { _inputRecordList.Add(list); });
                    }
                }
                //获取所有的出库记录用于显示
                if (type == typeof(List <CloudPlatformQueryOutputRecordResponse>))
                {
                    List <CloudPlatformQueryOutputRecordResponse> classQueryOutputRecordResponses = obj as List <CloudPlatformQueryOutputRecordResponse>;
                    App.Current.Dispatcher.Invoke(() => { _outputRecordList.Clear(); });//更新新的数据之前先清空列表

                    foreach (var item in classQueryOutputRecordResponses)
                    {
                        var list = new OutputRecordModel
                        {
                            Location      = item.QueryOutputRecordResponseLocation,
                            RFIDNumber    = item.QueryOutputRecordResponseRFIDNumber,
                            Amount        = item.QueryOutputRecordResponseAmount,
                            OperationTime = item.QueryOutputRecordResponseOperationTime,
                            Category      = item.QueryOutputRecordResponseCategory
                        };
                        App.Current.Dispatcher.Invoke(() => { _outputRecordList.Add(list); });
                    }
                }
                //获取所有的库位修改记录用于显示
                if (type == typeof(List <CloudPlatformQueryModifyStorageRecordResponse>))
                {
                    List <CloudPlatformQueryModifyStorageRecordResponse> cloudPlatformQueryModifyStorageRecordResponses = obj as List <CloudPlatformQueryModifyStorageRecordResponse>;
                    App.Current.Dispatcher.Invoke(() => { _modifyStorageRecordList.Clear(); });

                    foreach (var item in cloudPlatformQueryModifyStorageRecordResponses)
                    {
                        var list = new ModifyStorageRecordModel
                        {
                            Location   = item.Location,
                            ModifyType = item.Type,
                            RFIDNumber = item.RFIDNumber,
                            Category   = item.CategoryNew,
                            Amount     = item.AmountNew,
                            ModifyTime = item.ModifyTime
                        };

                        App.Current.Dispatcher.Invoke(() => { _modifyStorageRecordList.Add(list); });
                    }
                }
                //手动维护库位信息的反馈
                if (type == typeof(CloudPlatformModifyStorageInfoResponse))
                {
                    CloudPlatformModifyStorageInfoResponse cloudPlatformModifyStorageInfoResponse = obj as CloudPlatformModifyStorageInfoResponse;
                    MessageBox.Show(cloudPlatformModifyStorageInfoResponse.Type.ToString());
                    MessageBox.Show(cloudPlatformModifyStorageInfoResponse.Location.ToString());
                    MessageBox.Show(cloudPlatformModifyStorageInfoResponse.RFIDNumber);
                    MessageBox.Show(cloudPlatformModifyStorageInfoResponse.CategoryNew);
                    MessageBox.Show(cloudPlatformModifyStorageInfoResponse.AmountNew.ToString());
                    MessageBox.Show(cloudPlatformModifyStorageInfoResponse.Result);
                }
                #endregion
            }
        }