jiazx0107@163.com
2023-08-23 9c49930966edbe0f24e62e38f58c2d3e453976b3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package com.ld.igds.protocol.modbus.command;
 
import com.ld.igds.common.CoreDeviceService;
import com.ld.igds.io.constant.OrderRespEnum;
import com.ld.igds.io.notify.NotifyWebInvoker;
import com.ld.igds.io.request.DeviceControlRequest;
import com.ld.igds.protocol.modbus.ServerUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
 
import javax.annotation.Resource;
 
/**
 * 解析
 */
@Slf4j
@Component
public class AnalysisService {
 
    @Resource
    private CoreDeviceService coreDeviceService;
    @Resource
    private NotifyWebInvoker notifyInvoker;
 
 
    /**
     * 异步更新设备状态,
     *
     * @param request
     * @param sleepTime 延迟执行时间=毫秒值,如果==0 ,表示不延迟
     */
    @Async
    public void analysisDevice(DeviceControlRequest request, long sleepTime) {
 
        try {
            if (sleepTime > 0) {
                Thread.sleep(sleepTime);
            }
 
            coreDeviceService.updateStatus(request.getCompanyId(), request.getSerId(), ServerUtil.getStatusMap());
 
            notifyInvoker.notifyAnalysisStatusSuccess(request.getCompanyId(), request.getSerId(), OrderRespEnum.MSG_SUCCESS, "设备状态查询成功并完成解析!");
 
        } catch (Exception e) {
            log.error("---MODBUS-TCP-状态解析异常{}", e);
        }
    }
}