123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- package com.sunzee.thread.advanceparameter;
- import android.util.Log;
- import com.hboxs.serialport.SerialPortManager;
- import com.hboxs.serialport.frame.WriteCommandFrame;
- import com.hboxs.serialport.util.HexUtils;
- import java.util.concurrent.ScheduledFuture;
- import java.util.concurrent.ScheduledThreadPoolExecutor;
- import java.util.concurrent.ThreadPoolExecutor;
- import java.util.concurrent.TimeUnit;
- /**
- * 进阶参数线程池
- */
- public class ThreadPoolAdvanceParameter {
- private ScheduledThreadPoolExecutor scheduled;
- public String[] getValues() {
- return values;
- }
- private String[] values = new String[6];
- private ScheduledFuture<?>
- mScheduledFutureD426, mScheduledFutureD427, mScheduledFutureD428,
- mScheduledFutureD429, mScheduledFutureD430, mScheduledFutureD431,
- mScheduledFutureWrite;
- private AdvanceParameterTask
- mTaskRunD426, mTaskRunD427, mTaskRunD428, mTaskRunD429,
- mTaskRunD430, mTaskRunD431, mTaskRunWrite;
- public ThreadPoolAdvanceParameter() {
- scheduled = new ScheduledThreadPoolExecutor(6);
- //设置线程池的策略 抛弃旧的任务
- scheduled.setRejectedExecutionHandler(new ThreadPoolExecutor.DiscardOldestPolicy());
- }
- public boolean isReceive1() {
- return isReceive1;
- }
- public void setReceive1(boolean receive1) {
- isReceive1 = receive1;
- }
- public boolean isReceive2() {
- return isReceive2;
- }
- public void setReceive2(boolean receive2) {
- isReceive2 = receive2;
- }
- public boolean isReceive3() {
- return isReceive3;
- }
- public void setReceive3(boolean receive3) {
- isReceive3 = receive3;
- }
- public boolean isReceive4() {
- return isReceive4;
- }
- public void setReceive4(boolean receive4) {
- isReceive4 = receive4;
- }
- public boolean isReceive5() {
- return isReceive5;
- }
- public void setReceive5(boolean receive5) {
- isReceive5 = receive5;
- }
- public boolean isReceive6() {
- return isReceive6;
- }
- public void setReceive6(boolean receive6) {
- isReceive6 = receive6;
- }
- private boolean isReceive1 = false;
- private boolean isReceive2 = false;
- private boolean isReceive3 = false;
- private boolean isReceive4 = false;
- private boolean isReceive5 = false;
- private boolean isReceive6 = false;
- public void startALLRead() {
- mTaskRunD426 = new AdvanceParameterTask(AdvanceParameterThreadType.runD426);
- mScheduledFutureD426 = scheduled.scheduleAtFixedRate(mTaskRunD426, 10, 1000, TimeUnit.MILLISECONDS);
- mTaskRunD427 = new AdvanceParameterTask(AdvanceParameterThreadType.runD427);
- mScheduledFutureD427 = scheduled.scheduleAtFixedRate(mTaskRunD427, 10, 1000, TimeUnit.MILLISECONDS);
- mTaskRunD428 = new AdvanceParameterTask(AdvanceParameterThreadType.runD428);
- mScheduledFutureD428 = scheduled.scheduleAtFixedRate(mTaskRunD428, 10, 1000, TimeUnit.MILLISECONDS);
- mTaskRunD429 = new AdvanceParameterTask(AdvanceParameterThreadType.runD429);
- mScheduledFutureD429 = scheduled.scheduleAtFixedRate(mTaskRunD429, 10, 1000, TimeUnit.MILLISECONDS);
- mTaskRunD430 = new AdvanceParameterTask(AdvanceParameterThreadType.runD430);
- mScheduledFutureD430 = scheduled.scheduleAtFixedRate(mTaskRunD430, 10, 1000, TimeUnit.MILLISECONDS);
- mTaskRunD431 = new AdvanceParameterTask(AdvanceParameterThreadType.runD431);
- mScheduledFutureD431 = scheduled.scheduleAtFixedRate(mTaskRunD431, 10, 1000, TimeUnit.MILLISECONDS);
- }
- public void stopAll() {
- stopRead(mTaskRunD426, mScheduledFutureD426);
- stopRead(mTaskRunD427, mScheduledFutureD427);
- stopRead(mTaskRunD428, mScheduledFutureD428);
- stopRead(mTaskRunD429, mScheduledFutureD429);
- stopRead(mTaskRunD430, mScheduledFutureD430);
- stopRead(mTaskRunD431, mScheduledFutureD431);
- stopRead(mTaskRunWrite, mScheduledFutureWrite);
- }
- public void stopReadD426() {
- stopRead(mTaskRunD426, mScheduledFutureD426);
- }
- public void stopReadD427() {
- stopRead(mTaskRunD427, mScheduledFutureD427);
- }
- public void stopReadD428() {
- stopRead(mTaskRunD428, mScheduledFutureD428);
- }
- public void stopReadD429() {
- stopRead(mTaskRunD429, mScheduledFutureD429);
- }
- public void stopReadD430() {
- stopRead(mTaskRunD430, mScheduledFutureD430);
- }
- public void stopReadD431() {
- stopRead(mTaskRunD431, mScheduledFutureD431);
- }
- public static void stopRead(AdvanceParameterTask threadTask, ScheduledFuture<?> scheduledFuture1) {
- if (threadTask != null) {
- threadTask.setIsRun(false);
- }
- if (scheduledFuture1 != null) {
- scheduledFuture1.cancel(true);
- }
- }
- public void startWrite(String paraAddress, String data) {
- mTaskRunWrite = new AdvanceParameterTask(AdvanceParameterThreadType.runWrite, paraAddress, data);
- mScheduledFutureWrite = scheduled.scheduleAtFixedRate(mTaskRunWrite, 0, 1000, TimeUnit.MILLISECONDS);
- }
- public void stopWrite() {
- stopRead(mTaskRunWrite, mScheduledFutureWrite);
- }
- }
|