package com.ld.igds.protocol.iot.n2.fzzy; import com.alibaba.fastjson.JSON; import com.ld.igds.io.RemoteN2MacService; import com.ld.igds.io.constant.OrderRespEnum; import com.ld.igds.io.constant.ProtocolEnum; import com.ld.igds.io.request.N2MacRequest; import com.ld.igds.io.response.BaseResponse; import com.ld.igds.protocol.iot.n2.fzzy.analysis.builder.ReMessageBuilder; import com.ld.igds.protocol.iot.n2.fzzy.analysis.message.IoMessage; import com.ld.igds.protocol.iot.n2.fzzy.server.N2FzzyServerEngine; import com.ld.io.api.InvokeResult; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; @Slf4j @Repository public class N2FzzyRemoteN2MacServiceImpl implements RemoteN2MacService { @Autowired private N2FzzyServerEngine serverEngine; @Override public String getProtocol() { return ProtocolEnum.TCP_FZZY_N2_V3.getCode(); } @Override public BaseResponse remoteStop(N2MacRequest param) { try { IoMessage message = new IoMessage(); message.setDeviceId(param.getSn()); message.setOrderId("1"); message.setFunctionId("3"); message.setContent("stop"); byte[] msg = (ReMessageBuilder.PREFIX + JSON.toJSONString(message) + ReMessageBuilder.SUFFIX).getBytes("UTF-8"); log.info("关闭制氮机:发送命令={}", message); InvokeResult result = serverEngine.push(param.getIp(), param.getPort(), msg); log.info("关闭制氮机:命令发送状态={}", result); if (!InvokeResult.SUCCESS.getCode().equals(result.getCode())) { return new BaseResponse(OrderRespEnum.ORDER_ERROR.getCode(), result.getMessage()); } } catch (Exception e) { log.error("异常:" + e); return new BaseResponse(OrderRespEnum.ORDER_ERROR.getCode(), "执行异常:" + e.getMessage()); } return new BaseResponse(OrderRespEnum.ORDER_SUCCESS); } @Override public BaseResponse remoteRun(N2MacRequest param) { try { IoMessage message = new IoMessage(); message.setDeviceId(param.getSn()); message.setOrderId("1"); message.setFunctionId("2"); message.setContent("open"); byte[] msg = (ReMessageBuilder.PREFIX + JSON.toJSONString(message) + ReMessageBuilder.SUFFIX).getBytes("UTF-8"); log.info("开启制氮机:发送命令={}", message); InvokeResult result = serverEngine.push(param.getIp(), param.getPort(), msg); log.info("开启制氮机:命令发送状态={}", result); if (!InvokeResult.SUCCESS.getCode().equals(result.getCode())) { return new BaseResponse(OrderRespEnum.ORDER_ERROR.getCode(), result.getMessage()); } } catch (Exception e) { log.error("异常:" + e); return new BaseResponse(OrderRespEnum.ORDER_ERROR.getCode(), "执行异常:" + e.getMessage()); } return new BaseResponse(OrderRespEnum.ORDER_SUCCESS); } @Override public BaseResponse remoteStatus(N2MacRequest param) { try { IoMessage message = new IoMessage(); message.setDeviceId(param.getSn()); message.setOrderId("1"); message.setFunctionId("1"); message.setContent("checkState"); byte[] msg = (ReMessageBuilder.PREFIX + JSON.toJSONString(message) + ReMessageBuilder.SUFFIX).getBytes("UTF-8"); log.info("查询制氮机状态:发送命令={}", message); InvokeResult result = serverEngine.push(param.getIp(), param.getPort(), msg); log.info("查询制氮机状态:命令发送状态={}", result); if (!InvokeResult.SUCCESS.getCode().equals(result.getCode())) { return new BaseResponse(OrderRespEnum.ORDER_ERROR.getCode(), result.getMessage()); } } catch (Exception e) { log.error("异常:" + e); return new BaseResponse(OrderRespEnum.ORDER_ERROR.getCode(), "执行异常:" + e.getMessage()); } return new BaseResponse(OrderRespEnum.ORDER_SUCCESS); } }