基於DragonBoard410c的智能照明系統

今天我們繼續分析基於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();
            }

        }

    }

本次介紹到此結束,如有疑惑請在文章底部留言!謝謝大家。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章