FHMasterSim.java 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package at.acdp.urweb.fhpp;
  2. import at.acdp.urweb.Params;
  3. import com.digitalpetri.modbus.codec.Modbus;
  4. import com.digitalpetri.modbus.master.ModbusTcpMaster;
  5. import com.digitalpetri.modbus.master.ModbusTcpMasterConfig;
  6. import com.digitalpetri.modbus.requests.ModbusRequest;
  7. import com.digitalpetri.modbus.requests.ReadHoldingRegistersRequest;
  8. import com.digitalpetri.modbus.requests.WriteMultipleRegistersRequest;
  9. import com.digitalpetri.modbus.responses.ReadHoldingRegistersResponse;
  10. import io.netty.util.ReferenceCountUtil;
  11. import io.netty.util.concurrent.CompleteFuture;
  12. import org.slf4j.Logger;
  13. import org.slf4j.LoggerFactory;
  14. import java.util.ArrayList;
  15. import java.util.List;
  16. import java.util.concurrent.CompletableFuture;
  17. import java.util.concurrent.Executors;
  18. import java.util.concurrent.ScheduledExecutorService;
  19. public class FHMasterSim implements IFHMaster {
  20. private final static Logger logger = LoggerFactory.getLogger(FHMasterSim.class);
  21. private final ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor();
  22. private volatile boolean started = false;
  23. private int curPos=-1;
  24. public FHMasterSim() {
  25. }
  26. @Override
  27. public void start(Params app) throws InterruptedException {
  28. started = true;
  29. while(true) {
  30. Thread.sleep(1000);
  31. readStatus();
  32. }
  33. }
  34. @Override
  35. public void direktAuftrag(int pos, int speed, int start, boolean relative) {
  36. logger.info("direktAuftrag {},{},{},{}", pos, speed, start, relative);
  37. curPos=pos;
  38. }
  39. @Override
  40. public CompletableFuture<Status> readStatus() {
  41. Status s=new Status();
  42. s.istPosition = curPos;
  43. s.enabled = true;
  44. return CompletableFuture.completedFuture(s);
  45. }
  46. @Override
  47. public void bereitschaft() {
  48. logger.info("bereitschaft");
  49. }
  50. @Override
  51. public void stop() {
  52. started = false;
  53. }
  54. }