ThreadPoolDebugParameter.java 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. package com.sunzee.thread.debugparameter;
  2. import java.util.ArrayList;
  3. import java.util.Arrays;
  4. import java.util.concurrent.ScheduledFuture;
  5. import java.util.concurrent.ScheduledThreadPoolExecutor;
  6. import java.util.concurrent.ThreadPoolExecutor;
  7. import java.util.concurrent.TimeUnit;
  8. /**
  9. * 调试页参数线程池
  10. */
  11. public class ThreadPoolDebugParameter {
  12. private ScheduledThreadPoolExecutor scheduled;
  13. private ScheduledFuture<?>
  14. mScheduledFutureM1411, mScheduledFutureM311, mScheduledFutureRst, mScheduledFutureSet,
  15. mScheduledFutureX, mScheduledFutureY,mScheduledFutureM10;
  16. private DebugParameterTask
  17. mTaskRunM1411, mTaskRunM311, mTaskRunMRst, mTaskRunMSet,
  18. mTaskRunX, mTaskRunY,mTaskRunM10;
  19. private DebugParameterTask mTaskRunM320;
  20. private ScheduledFuture<?> mScheduledFutureM320;
  21. public ArrayList<String> getValues() {
  22. return values;
  23. }
  24. private ArrayList<String> values = new ArrayList<>(Arrays.asList(
  25. "0", "0", "0", "0", "0", "0", "0",
  26. "0", "0", "0", "0", "0", "0", "0",
  27. "0", "0", "0", "0", "0", "0", "0",
  28. "0", "0", "0", "0", "0", "0", "0"));
  29. public ThreadPoolDebugParameter() {
  30. scheduled = new ScheduledThreadPoolExecutor(7);
  31. //设置线程池的策略 抛弃旧的任务
  32. scheduled.setRejectedExecutionHandler(new ThreadPoolExecutor.DiscardOldestPolicy());
  33. }
  34. private static final String TAG = "ThreadPoolGeneralParame";
  35. /**
  36. * 读取全部参数
  37. */
  38. public void startALLRead() {
  39. //读取 A轴正转 A轴反转
  40. mTaskRunM1411 = new DebugParameterTask(DebugParameterThreadType.runM1411);
  41. mScheduledFutureM1411 = scheduled.scheduleAtFixedRate(mTaskRunM1411, 0, 1000, TimeUnit.MILLISECONDS);
  42. //读取喷水泵启动、气泵启动、清洁消毒喷水泵、清洗洁厕灵+水、消毒消毒液+水
  43. mTaskRunM311 = new DebugParameterTask(DebugParameterThreadType.runM311);
  44. mScheduledFutureM311 = scheduled.scheduleAtFixedRate(mTaskRunM311, 10, 1000, TimeUnit.MILLISECONDS);
  45. //X的信号
  46. mTaskRunX = new DebugParameterTask(DebugParameterThreadType.runX);
  47. mScheduledFutureX = scheduled.scheduleAtFixedRate(mTaskRunX, 30, 1000, TimeUnit.MILLISECONDS);
  48. mTaskRunY = new DebugParameterTask(DebugParameterThreadType.runY);
  49. mScheduledFutureY = scheduled.scheduleAtFixedRate(mTaskRunY, 40, 1000, TimeUnit.MILLISECONDS);
  50. //读取喷水泵启动、气泵启动、清洁消毒喷水泵、清洗洁厕灵+水、消毒消毒液+水
  51. mTaskRunM320 = new DebugParameterTask(DebugParameterThreadType.runM320);
  52. mScheduledFutureM320 = scheduled.scheduleAtFixedRate(mTaskRunM320, 50, 1000, TimeUnit.MILLISECONDS);
  53. //读取喷水泵启动、气泵启动、清洁消毒喷水泵、清洗洁厕灵+水、消毒消毒液+水
  54. mTaskRunM10 = new DebugParameterTask(DebugParameterThreadType.runM10);
  55. mScheduledFutureM10 = scheduled.scheduleAtFixedRate(mTaskRunM10, 60, 1000, TimeUnit.MILLISECONDS);
  56. }
  57. public void stopAll() {
  58. stopReadM1411();
  59. stopReadM311();
  60. stopReadM320();
  61. stopRst();
  62. stopSet();
  63. stopReadX();
  64. stopReadY();
  65. stopReadM10();
  66. }
  67. private boolean isReceive1 = false;
  68. private boolean isReceive2 = false;
  69. private boolean isReceive3 = false;
  70. public boolean isReceive2() {
  71. return isReceive2;
  72. }
  73. public void setReceive2(boolean receive2) {
  74. isReceive2 = receive2;
  75. }
  76. public boolean isReceive1() {
  77. return isReceive1;
  78. }
  79. public void setReceive1(boolean receive1) {
  80. isReceive1 = receive1;
  81. }
  82. public boolean isReceive3() {
  83. return isReceive3;
  84. }
  85. public void setReceive3(boolean receive3) {
  86. isReceive3 = receive3;
  87. }
  88. public void stopReadM320() {
  89. stopRead(mTaskRunM320, mScheduledFutureM320);
  90. }
  91. public void stopReadM311() {
  92. stopRead(mTaskRunM311, mScheduledFutureM311);
  93. }
  94. public void stopReadM10() {
  95. stopRead(mTaskRunM10, mScheduledFutureM10);
  96. }
  97. public void stopReadM1411() {
  98. stopRead(mTaskRunM1411, mScheduledFutureM1411);
  99. }
  100. public void stopReadX() {
  101. stopRead(mTaskRunX, mScheduledFutureX);
  102. }
  103. public void stopReadY() {
  104. stopRead(mTaskRunY, mScheduledFutureY);
  105. }
  106. //-------------------------------------------stop read-----------------------------------------------------
  107. public static void stopRead(DebugParameterTask threadTask, ScheduledFuture<?> scheduledFuture1) {
  108. if (threadTask != null) {
  109. threadTask.setIsRun(false);
  110. }
  111. if (scheduledFuture1 != null) {
  112. scheduledFuture1.cancel(true);
  113. }
  114. }
  115. public void startRst(String address) {
  116. mTaskRunMRst = new DebugParameterTask(DebugParameterThreadType.runRst, address);
  117. mScheduledFutureRst = scheduled.scheduleAtFixedRate(mTaskRunMRst, 10, 1000, TimeUnit.MILLISECONDS);
  118. }
  119. public void startSet(String address) {
  120. mTaskRunMSet = new DebugParameterTask(DebugParameterThreadType.runSet, address);
  121. mScheduledFutureSet = scheduled.scheduleAtFixedRate(mTaskRunMSet, 10, 1000, TimeUnit.MILLISECONDS);
  122. }
  123. public void stopRst() {
  124. stopRead(mTaskRunMRst, mScheduledFutureRst);
  125. }
  126. public void stopSet() {
  127. stopRead(mTaskRunMSet, mScheduledFutureSet);
  128. }
  129. }