123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- package com.sunzee.thread.debugparameter;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.concurrent.ScheduledFuture;
- import java.util.concurrent.ScheduledThreadPoolExecutor;
- import java.util.concurrent.ThreadPoolExecutor;
- import java.util.concurrent.TimeUnit;
- /**
- * 调试页参数线程池
- */
- public class ThreadPoolDebugParameter {
- private ScheduledThreadPoolExecutor scheduled;
- private ScheduledFuture<?>
- mScheduledFutureM1411, mScheduledFutureM311, mScheduledFutureRst, mScheduledFutureSet,
- mScheduledFutureX, mScheduledFutureY,mScheduledFutureM10;
- private DebugParameterTask
- mTaskRunM1411, mTaskRunM311, mTaskRunMRst, mTaskRunMSet,
- mTaskRunX, mTaskRunY,mTaskRunM10;
- private DebugParameterTask mTaskRunM320;
- private ScheduledFuture<?> mScheduledFutureM320;
- public ArrayList<String> getValues() {
- return values;
- }
- private ArrayList<String> values = new ArrayList<>(Arrays.asList(
- "0", "0", "0", "0", "0", "0", "0",
- "0", "0", "0", "0", "0", "0", "0",
- "0", "0", "0", "0", "0", "0", "0",
- "0", "0", "0", "0", "0", "0", "0"));
- public ThreadPoolDebugParameter() {
- scheduled = new ScheduledThreadPoolExecutor(7);
- //设置线程池的策略 抛弃旧的任务
- scheduled.setRejectedExecutionHandler(new ThreadPoolExecutor.DiscardOldestPolicy());
- }
- private static final String TAG = "ThreadPoolGeneralParame";
- /**
- * 读取全部参数
- */
- public void startALLRead() {
- //读取 A轴正转 A轴反转
- mTaskRunM1411 = new DebugParameterTask(DebugParameterThreadType.runM1411);
- mScheduledFutureM1411 = scheduled.scheduleAtFixedRate(mTaskRunM1411, 0, 1000, TimeUnit.MILLISECONDS);
- //读取喷水泵启动、气泵启动、清洁消毒喷水泵、清洗洁厕灵+水、消毒消毒液+水
- mTaskRunM311 = new DebugParameterTask(DebugParameterThreadType.runM311);
- mScheduledFutureM311 = scheduled.scheduleAtFixedRate(mTaskRunM311, 10, 1000, TimeUnit.MILLISECONDS);
- //X的信号
- mTaskRunX = new DebugParameterTask(DebugParameterThreadType.runX);
- mScheduledFutureX = scheduled.scheduleAtFixedRate(mTaskRunX, 30, 1000, TimeUnit.MILLISECONDS);
- mTaskRunY = new DebugParameterTask(DebugParameterThreadType.runY);
- mScheduledFutureY = scheduled.scheduleAtFixedRate(mTaskRunY, 40, 1000, TimeUnit.MILLISECONDS);
- //读取喷水泵启动、气泵启动、清洁消毒喷水泵、清洗洁厕灵+水、消毒消毒液+水
- mTaskRunM320 = new DebugParameterTask(DebugParameterThreadType.runM320);
- mScheduledFutureM320 = scheduled.scheduleAtFixedRate(mTaskRunM320, 50, 1000, TimeUnit.MILLISECONDS);
- //读取喷水泵启动、气泵启动、清洁消毒喷水泵、清洗洁厕灵+水、消毒消毒液+水
- mTaskRunM10 = new DebugParameterTask(DebugParameterThreadType.runM10);
- mScheduledFutureM10 = scheduled.scheduleAtFixedRate(mTaskRunM10, 60, 1000, TimeUnit.MILLISECONDS);
- }
- public void stopAll() {
- stopReadM1411();
- stopReadM311();
- stopReadM320();
- stopRst();
- stopSet();
- stopReadX();
- stopReadY();
- stopReadM10();
- }
- private boolean isReceive1 = false;
- private boolean isReceive2 = false;
- private boolean isReceive3 = false;
- public boolean isReceive2() {
- return isReceive2;
- }
- public void setReceive2(boolean receive2) {
- isReceive2 = receive2;
- }
- public boolean isReceive1() {
- return isReceive1;
- }
- public void setReceive1(boolean receive1) {
- isReceive1 = receive1;
- }
- public boolean isReceive3() {
- return isReceive3;
- }
- public void setReceive3(boolean receive3) {
- isReceive3 = receive3;
- }
- public void stopReadM320() {
- stopRead(mTaskRunM320, mScheduledFutureM320);
- }
- public void stopReadM311() {
- stopRead(mTaskRunM311, mScheduledFutureM311);
- }
- public void stopReadM10() {
- stopRead(mTaskRunM10, mScheduledFutureM10);
- }
- public void stopReadM1411() {
- stopRead(mTaskRunM1411, mScheduledFutureM1411);
- }
- public void stopReadX() {
- stopRead(mTaskRunX, mScheduledFutureX);
- }
- public void stopReadY() {
- stopRead(mTaskRunY, mScheduledFutureY);
- }
- //-------------------------------------------stop read-----------------------------------------------------
- public static void stopRead(DebugParameterTask threadTask, ScheduledFuture<?> scheduledFuture1) {
- if (threadTask != null) {
- threadTask.setIsRun(false);
- }
- if (scheduledFuture1 != null) {
- scheduledFuture1.cancel(true);
- }
- }
- public void startRst(String address) {
- mTaskRunMRst = new DebugParameterTask(DebugParameterThreadType.runRst, address);
- mScheduledFutureRst = scheduled.scheduleAtFixedRate(mTaskRunMRst, 10, 1000, TimeUnit.MILLISECONDS);
- }
- public void startSet(String address) {
- mTaskRunMSet = new DebugParameterTask(DebugParameterThreadType.runSet, address);
- mScheduledFutureSet = scheduled.scheduleAtFixedRate(mTaskRunMSet, 10, 1000, TimeUnit.MILLISECONDS);
- }
- public void stopRst() {
- stopRead(mTaskRunMRst, mScheduledFutureRst);
- }
- public void stopSet() {
- stopRead(mTaskRunMSet, mScheduledFutureSet);
- }
- }
|