Exemplo n.º 1
0
        public async Task <ActionResult> UpdateInspection(int id, [FromBody] InspectionRequest inspectionRequest)
        {
            if (id < 1 || inspectionRequest == null)
            {
                return(BadRequest());
            }

            var validate = validator.Validate(inspectionRequest);

            if (!validate.IsValid)
            {
                return(BadRequest(validate));
            }

            var inspectionToUpdate = await this.inspectionServices.FindAsync(id);

            if (inspectionToUpdate == null)
            {
                return(NotFound());
            }

            var inspection = this.mapper.Map(inspectionRequest, inspectionToUpdate);

            await this.inspectionServices.UpdateAsync(inspection);

            logger.LogInformation($"UpdateInspection {inspection.Id}");

            return(Ok());
        }
Exemplo n.º 2
0
        public async Task <IActionResult> SaveInspection([FromBody] InspectionRequest inspectionRequest)
        {
            _logger.LogInformation("Calling SaveInspection from InspectionController with request : {@0}", inspectionRequest);
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            var inspection = _xmlHelper.ConvertToXml(inspectionRequest);

            if (!await _inspectionAppService.SaveInspectionAsync(inspection))
            {
                return(NotFound());
            }
            return(Ok());
        }
Exemplo n.º 3
0
        public async Task <ActionResult> CreateInspection([FromBody] InspectionRequest inspectionRequest)
        {
            if (inspectionRequest == null)
            {
                return(BadRequest());
            }

            var validate = validator.Validate(inspectionRequest);

            if (!validate.IsValid)
            {
                return(BadRequest(validate));
            }

            var inspection = this.mapper.Map <InspectionRequest, Inspection>(inspectionRequest);

            await this.inspectionServices.AddAsync(inspection);

            logger.LogInformation($"CreateInspection {inspection.Id}");

            return(CreatedAtAction(nameof(CreateInspection), new { id = inspection.Id, version = this.HttpContext.GetRequestedApiVersion().ToString() }, inspection.Id));
        }
        /// <summary>
        /// 巡检单台分站的文件接收情况
        /// </summary>
        /// <param name="masProtocol"></param>
        /// <param name="InspectionRequest"></param>
        /// <param name="deviceCode"></param>
        /// <returns></returns>
        public byte[] HandInspection(MasProtocol masProtocol, InspectionRequest inspectionRequest, ref string deviceCode)
        {
            DeviceInfo               deviceinfoobject = null;
            DeviceTypeInfo           devicetypeobject = null;
            NetworkDeviceInfo        netmacobject     = null;
            InspectionRequestCommand commandobject    = new InspectionRequestCommand();

            byte[] sendbuff = null;
            if (masProtocol == null || inspectionRequest == null)
            {
                return(sendbuff);
            }
            if (!GetDeviceObject(ref deviceinfoobject, ref devicetypeobject, ref netmacobject, ProtocolType.DeviceControlRequest, inspectionRequest.DeviceCode))
            {
                return(sendbuff);
            }
            if (netmacobject.NetID > 0)
            {
                deviceCode    = netmacobject.MAC;                                                                                             //向下的发送的MAC地址
                commandobject = Basic.Framework.Common.ObjectConverter.Copy <InspectionRequest, InspectionRequestCommand>(inspectionRequest); //得到基础数据

                commandobject.DeviceId    = inspectionRequest.DeviceId;
                commandobject.HardVersion = inspectionRequest.HardVersion;
                commandobject.FileVersion = inspectionRequest.FileVersion;
                commandobject.LostFileNum = inspectionRequest.LostFileNum;
                commandobject.FileBuffer  = inspectionRequest.FileBuffer;

                commandobject.def = deviceinfoobject;        // Framework.Common.ObjectConverter.DeepCopy<DeviceInfo>(deviceinfoobject);//得到分站的对象必须是深度拷贝;
                sendbuff          = commandobject.ToBytes(); //得到通讯命令的返回Buffer数组
                //if (sendbuff != null)
                //{
                //    sendbuff = Cache.GetPackages(sendbuff, netmacobject, deviceinfoobject, 2, CommandCodes.ExtendCommand, (byte)devicetypeobject.LC2);//通过当前网络模块进行打包
                //}
            }
            return(sendbuff);
        }
Exemplo n.º 5
0
        public static StationUpdateItem GetStationItem(int fzh)
        {
            StationUpdateItem item = null;

            if (fzh >= 0 && fzh < stationItems.Length - 1)
            {
                if (stationItems[fzh - 1] == null)
                {
                    return(item);
                }
                item = DeepCopy(stationItems[fzh - 1]);
                item.isSendBuffer = false;
                switch (item.updateState)
                {
                case StationUpdateState.requesting:    //下发请求升级    下发请求升级
                    StationUpdateRequest stationUpdateRequest = new StationUpdateRequest();
                    stationUpdateRequest.DeviceCode  = fzh.ToString().PadLeft(3, '0') + "0000";
                    stationUpdateRequest.DeviceId    = (byte)updatetTypeid;
                    stationUpdateRequest.HardVersion = (byte)updateHardVersion;
                    stationUpdateRequest.FileVersion = (byte)updateFileVersion;
                    stationUpdateRequest.maxVersion  = (byte)updateMaxVersion;
                    stationUpdateRequest.minVersion  = (byte)updateMinVersion;
                    stationUpdateRequest.FileCount   = updateCount;
                    stationUpdateRequest.Crc         = crcValue;
                    item.isSendBuffer = true;
                    item.protocol     = stationUpdateRequest;
                    item.protocolType = ProtocolType.StationUpdateRequest;
                    break;

                case StationUpdateState.recivingFile:    //文件接收中    下发文件
                    if (item.nowNeedSendBuffIndex >= updateCount)
                    {
                        item.updateState = StationUpdateState.reiciveCheck;
                        return(null);
                    }
                    SendUpdateBufferRequest sendUpdateBufferRequest = new SendUpdateBufferRequest();
                    sendUpdateBufferRequest.DeviceCode     = fzh.ToString().PadLeft(3, '0') + "0000";
                    sendUpdateBufferRequest.DeviceId       = (byte)updatetTypeid;
                    sendUpdateBufferRequest.HardVersion    = (byte)updateHardVersion;
                    sendUpdateBufferRequest.FileVersion    = (byte)updateFileVersion;
                    sendUpdateBufferRequest.NowBufferIndex = item.nowNeedSendBuffIndex;
                    sendUpdateBufferRequest.Buffer         = new byte[256];
                    for (int i = 0; i < sendUpdateBufferRequest.Buffer.Length; i++)
                    {
                        sendUpdateBufferRequest.Buffer[i] = updateBuffer[(item.nowNeedSendBuffIndex - 1) * 256 + i];
                    }
                    item.isSendBuffer = true;
                    item.protocol     = sendUpdateBufferRequest;
                    item.protocolType = ProtocolType.SendUpdateBufferRequest;
                    stationItems[fzh - 1].nowNeedSendBuffIndex += 1;
                    if (stationItems[fzh - 1].nowNeedSendBuffIndex >= updateCount)
                    {
                        stationItems[fzh - 1].updateState = StationUpdateState.reiciveCheck;    //下发完成后自动切换到巡检
                    }
                    break;

                case StationUpdateState.reiciveCheck:    //巡检文件接收情况     下发巡检
                    InspectionRequest inspectionRequest = new InspectionRequest();
                    inspectionRequest.DeviceCode  = fzh.ToString().PadLeft(3, '0') + "0000";
                    inspectionRequest.DeviceId    = (byte)updatetTypeid;
                    inspectionRequest.HardVersion = (byte)updateHardVersion;
                    inspectionRequest.FileVersion = (byte)updateFileVersion;
                    inspectionRequest.LostFileNum = 0;
                    item.isSendBuffer             = true;
                    item.protocol     = inspectionRequest;
                    item.protocolType = ProtocolType.InspectionRequest;
                    break;

                case StationUpdateState.replacement:    //补发文件中       补发文件
                    InspectionRequest replacement = new InspectionRequest();
                    replacement.DeviceCode  = fzh.ToString().PadLeft(3, '0') + "0000";
                    replacement.DeviceId    = (byte)updatetTypeid;
                    replacement.HardVersion = (byte)updateHardVersion;
                    replacement.FileVersion = (byte)updateFileVersion;
                    replacement.LostFileNum = item.nowNeedSendBuffIndex;
                    if (replacement.LostFileNum > 0)
                    {
                        replacement.FileBuffer = new byte[256];
                        for (int i = 0; i < replacement.FileBuffer.Length; i++)
                        {
                            replacement.FileBuffer[i] = updateBuffer[(item.nowNeedSendBuffIndex - 1) * 256 + i];
                        }
                    }
                    item.isSendBuffer = true;
                    item.protocol     = replacement;
                    item.protocolType = ProtocolType.InspectionRequest;
                    break;

                case StationUpdateState.restart:    //重启升级      下发重启命令
                    RestartRequest restartRequest = new RestartRequest();
                    restartRequest.DeviceCode  = fzh.ToString().PadLeft(3, '0') + "0000";
                    restartRequest.DeviceId    = (byte)updatetTypeid;
                    restartRequest.HardVersion = (byte)updateHardVersion;
                    restartRequest.FileVersion = (byte)updateFileVersion;
                    item.isSendBuffer          = true;
                    item.protocol     = restartRequest;
                    item.protocolType = ProtocolType.RestartRequest;
                    break;

                case StationUpdateState.restore:    //恢复备份      下发恢复备份命令
                    ReductionRequest reductionRequest = new ReductionRequest();
                    reductionRequest.DeviceCode  = fzh.ToString().PadLeft(3, '0') + "0000";
                    reductionRequest.DeviceId    = (byte)updatetTypeid;
                    reductionRequest.HardVersion = (byte)updateHardVersion;
                    reductionRequest.SoftVersion = (byte)updateFileVersion;
                    item.isSendBuffer            = true;
                    item.protocol     = reductionRequest;
                    item.protocolType = ProtocolType.ReductionRequest;
                    break;

                case StationUpdateState.updateCancle:     //取消升级    //下取消升级命令
                    UpdateCancleRequest updateCancleRequest = new UpdateCancleRequest();
                    updateCancleRequest.DeviceCode  = fzh.ToString().PadLeft(3, '0') + "0000";
                    updateCancleRequest.DeviceId    = (byte)updatetTypeid;
                    updateCancleRequest.HardVersion = (byte)updateHardVersion;
                    updateCancleRequest.FileVersion = (byte)updateFileVersion;
                    item.isSendBuffer = true;
                    item.protocol     = updateCancleRequest;
                    item.protocolType = ProtocolType.UpdateCancleRequest;
                    break;

                case StationUpdateState.getVersion:    //获取分站信息
                    GetStationUpdateStateRequest getStationUpdateStateRequest = new GetStationUpdateStateRequest();
                    getStationUpdateStateRequest.DeviceCode     = fzh.ToString().PadLeft(3, '0') + "0000";
                    getStationUpdateStateRequest.GetSoftVersion = 1;
                    getStationUpdateStateRequest.GetUpdateState = 1;
                    getStationUpdateStateRequest.GetDevType     = 1;
                    getStationUpdateStateRequest.GetHardVersion = 1;
                    item.isSendBuffer = true;
                    item.protocol     = getStationUpdateStateRequest;
                    item.protocolType = ProtocolType.GetStationUpdateStateRequest;
                    break;
                }
            }
            return(item);
        }
 private void ChangeToSend(InspectionRequest m) => m.Customer = "Customer 2";