今天我們繼續分析基於DragonBoard410c的智能照明系統該系統分爲兩大塊:(1)定時開關(2)變換顏色的亮度。接下來我就帶大家瞭解下整個APP.因爲該程序太簡單,所以代碼不會太多的講解。有問題請在文章後面回覆。
(1)定時開關的實現:
case "reserve_open":
Calendar calendar = Calendar.getInstance();
long sys= System.currentTimeMillis();
calendar.setTimeInMillis(sys);
calendar.set(Calendar.HOUR_OF_DAY,Integer.parseInt(StringUtil.get(3,code,"@")));
Log.i("close",StringUtil.get(3,code,"@"));
calendar.set(Calendar.MINUTE,Integer.parseInt(StringUtil.get(4,code,"@")));
Log.i("close",StringUtil.get(4,code,"@"));
Timer opentime =new Timer();
Log.i("close",(calendar.getTimeInMillis()-sys)+"");
opentime.schedule(new TimerTask() {
@Override
public void run() { Log.i("result",StringUtil.get(1,code,"@")+"********"+StringUtil.get(2,code,"@")+"@@@@@@"+code); Config.WriteData(Config.color,StringUtil.get(1,code,"@")); Config.WriteData(Config.brightness,StringUtil.get(2,code,"@"));
}
},calendar.getTimeInMillis()-sys,(1000 * 60 * 60 * 24));
break;
case "reserve_close":
Calendar ca = Calendar.getInstance();
long system= System.currentTimeMillis();
ca.setTimeInMillis(system);
ca.set(Calendar.HOUR_OF_DAY,Integer.parseInt(StringUtil.get(1,code,"@")));
ca.set(Calendar.MINUTE,Integer.parseInt(StringUtil.get(2,code,"@")));
Timer close =new Timer();
close.schedule(new TimerTask() {
@Override
public void run() {
Config.WriteData(Config.color, "0");
}
},ca.getTimeInMillis()-system, (1000 * 60 * 60 * 24));
break;
(2)變換顏色的亮度:
case "close":
Config.WriteData(Config.color, "0");
break;
case "open":
Config.WriteData(Config.color, "10");
break;
case "red":
Config.WriteData(Config.color, "1");
break;
case "red_light":
Config.WriteData(Config.color, "4");
break;
case "green":
Config.WriteData(Config.color, "3");
break;
case "green_light":
Config.WriteData(Config.color, "6");
break;
case "blue":
Config.WriteData(Config.color, "2");
break;
case "blue_light":
Config.WriteData(Config.color, "5");
break;
case "white":
Config.WriteData(Config.color, "10");
break;
Config.writeData();方法是自己封裝的一個File的操作類:
public static void WriteData(String path, String content) {
FileOutputStream fos = null;
File file = new File(path);
if (file.exists()) {
try {
fos = new FileOutputStream(file);
Log.e("File", "FileWriter"+content);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
byte[] array = content.getBytes();
try {
fos.write(array);
} catch (IOException e) {
e.printStackTrace();
}
try {
fos.flush();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
本次介紹到此結束,如有疑惑請在文章底部留言!謝謝大家。