⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zvoiceengineupdatethread.java

📁 ZDrive Driving Warning System
💻 JAVA
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package zdrive.engines;import zdrive.protocols.*;import javax.swing.JLabel;import java.util.Date;/** * * @author Mohamed Aly */public class ZVoiceEngineUpdateThread extends Thread implements ZUpdaterThreadsInterface{    private int event;    private ZAbstractEvent abs_event;    private JLabel repeat;    public ZVoiceEngineUpdateThread(int event, ZAbstractEvent abs_event, JLabel repeat) {        this.event = event;        this.abs_event = abs_event;        this.repeat = repeat;    }    @Override    public void run() {        SpeedTimeMonitor temp_mon = new SpeedTimeMonitor(abs_event, this);        temp_mon.start();                ZVoiceEngine ve = new ZVoiceEngine();        while (!abs_event.isCompleted()) {            repeat.setEnabled(false);            ve.talkEvent(abs_event.getRemainingDistance(), abs_event.getVelocity(), event);            while(!ve.isDone()){                try{                sleep(200);                }catch(Exception e)                {                    e.printStackTrace();                }            }            temp_mon.resetSleepingTime();            repeat.setEnabled(true);            synchronized(this){            try {                if(!abs_event.isCompleted()){                    wait();                }            } catch (Exception e) {                e.printStackTrace();            }            }        }        repeat.setEnabled(false);        System.out.println("DONE WITH VOICE ENGINE THREAD");    }    public synchronized void wakeMeUp(){        notify();    }    }class SpeedTimeMonitor extends Thread {    private ZAbstractEvent abs_event;    private ZVoiceEngineUpdateThread zve;    private int sleepingtime;    public SpeedTimeMonitor(ZAbstractEvent abs_event, ZVoiceEngineUpdateThread zve) {        this.abs_event=abs_event;        this.zve = zve;        this.sleepingtime = 0;    }    @Override    public void run(){        double velocity;        double remaining_distance;        double target;        boolean finalwarning;                while(!abs_event.isCompleted()){            velocity = abs_event.getVelocity();            remaining_distance = abs_event.getRemainingDistance();            target = velocity * 2.222 + 37.144;            finalwarning = remaining_distance <= target;            if(remaining_distance <= target+50 || finalwarning ||abs_event.isCompleted()){                zve.wakeMeUp();            }            else if(sleepingtime==60000){                sleepingtime=0;                zve.wakeMeUp();            }            if(finalwarning)break;            try{            sleep(500);            sleepingtime+=500;            }catch(Exception e)            {                e.printStackTrace();            }        }    }    public synchronized void resetSleepingTime(){      this.sleepingtime=0;    }        }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -