基於DragonBoard410C的智能管家

前段時間公司有一個基於高通410c開發板的智能管家項目,該項目的功能點如下:遠程控制,煙霧檢測, 開關控制。下面我將爲大家一一講解這些功能的實現。

遠程控制主要是集成第三方的服務-Wilddog.WildDog採用用RXjava的訂閱者/分發者的思想邏輯。

這裏寫圖片描述

主要實現邏輯如下:
`
public static SyncReference getSyncref(String child){
SyncReference ref = WilddogSync.getInstance().getReference().child(child);
return ref;
}

public static void setvalue(SyncReference ref, String key, String value) {
    if (ref!=null){
        Command command = new Command(key, value);
        ref.setValue(command);
    }
}
public static String datalisterner( SyncReference ref,String key, String value) {
    final String[] result = {null};
     if (ref!=null){
         ref.addValueEventListener(new ValueEventListener() {
             @Override
             public void onDataChange(DataSnapshot dataSnapshot) {
                 result[0] =dataSnapshot.toString();
             }

             @Override
             public void onCancelled(SyncError syncError) {

             }
         });
     }
    return result[0];
}`

煙霧檢測邏輯:主要是接受板子端回傳的數據。

   private void initListerner() {
        reference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                String key = dataSnapshot.child("finction").getValue().toString();
                if (key.equals("value")) {
                    String code = dataSnapshot.child("code").getValue().toString();
                    Log.i("index-of",code+"");
                    String tem[] = code.split("XX");
                    Message message = new Message();
                    Bundle bundle = new Bundle();
                    Log.i("danpness",tem[0]);
                    bundle.putString("tem", tem[0]);
                    bundle.putString("bool", tem[1]);
                    message.setData(bundle);
                    handler.sendMessage(message);
                }
            }
            @Override
            public void onCancelled(SyncError syncError) {

            }
        });
    }

開關控制主要邏輯:

  private void initview() {
        seekBar = view.findViewById(R.id.progress);
        button = view.findViewById(R.id.open_bull);
        status_text = view.findViewById(R.id.value_status);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (status) {
                    WildDogUtil.setvalue(reference, "open", "10");        button.setBackground(getResources().getDrawable(R.drawable.shape_button_not));
                    seekBar.setVisibility(View.VISIBLE);
                    status = false;
                    closeProgress();
                } else {
                    WildDogUtil.setvalue(reference, "close", "10");
                    seekBar.setVisibility(View.VISIBLE);                   button.setBackground(getResources().getDrawable(R.drawable.shape_button_open));
                    status = true;
                    closeProgress();
                }
            }
        });
    }
    private void closeProgress() {
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                seekBar.setVisibility(View.INVISIBLE);
            }
        }, 3000);
    }

這樣我們就可以實時地瞭解家裏的情況了!!!!

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