package com.zy.core.network.fake;
|
|
import com.alibaba.fastjson.JSON;
|
import com.zy.asrs.entity.DeviceConfig;
|
import com.zy.core.model.CommandResponse;
|
import com.zy.core.model.command.RgvCommand;
|
import com.zy.core.network.api.ZyRgvConnectApi;
|
import com.zy.core.network.entity.ZyRgvStatusEntity;
|
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.Executors;
|
|
public class ZyRgvFakeConnect implements ZyRgvConnectApi {
|
private ZyRgvStatusEntity status;
|
private final DeviceConfig deviceConfig;
|
private final ExecutorService executor = Executors.newSingleThreadExecutor();
|
|
public ZyRgvFakeConnect(DeviceConfig deviceConfig) {
|
this.deviceConfig = deviceConfig;
|
ZyRgvStatusEntity init = JSON.parseObject(deviceConfig.getFakeInitStatus(), ZyRgvStatusEntity.class);
|
this.status = init == null ? new ZyRgvStatusEntity() : init;
|
}
|
|
@Override
|
public boolean connect() {
|
return true;
|
}
|
|
@Override
|
public boolean disconnect() {
|
return true;
|
}
|
|
@Override
|
public ZyRgvStatusEntity getStatus() {
|
return status;
|
}
|
|
@Override
|
public CommandResponse sendCommand(RgvCommand command) {
|
CommandResponse response = new CommandResponse(true);
|
executor.submit(() -> {
|
if (command.getTaskMode() != null && command.getTaskMode() == 1) {
|
status.setTaskNo((int) command.getTaskNo());
|
status.setStatus(1);
|
try { Thread.sleep(300); } catch (InterruptedException ignored) {}
|
status.setRgvPos((int) command.getTargetPos());
|
status.setStatus(0);
|
} else if (command.getTaskMode() != null && command.getTaskMode() == 0) {
|
status.setTaskNo(0);
|
status.setStatus(0);
|
}
|
});
|
return response;
|
}
|
}
|