//修改库位信息 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("联机模式下不允许修改库位信息"); } }
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 } }