一個Linux平臺主機,記憶體中保存了這樣一段資訊
//頭檔案定義列舉
enum data_type
{
type_uint8 = 0x20,
type_uint16 = 0x21,
type_uint32 = 0x22,
type_string = 0x42,
}
//頭檔案定義結構體
strcut attr
{
UINT16 ID;
enum data_type type;
union
{
UINT8 data8;
UINT16 data16;
UINT32 data32;
UINT8 dataStr[32];
}
}attr_st;
//網關資料庫中保存的資訊
struct attr_st attrArray[6] =
{
{0x0000, type_uint8, .data8 = 0x12},
{0x0001, type_uint16, .data16 = 0x1234},
{0x0002, type_uint32, .data32 = 0x12345678},
{0x0003, type_string, .dataStr = "I'm a Light"},
{0x0004, type_uint16, .data16 = 0x00000011},
{0x0005, type_string, .dataStr = "A li ba ba"},
};
手機APP采用json和主機通信
手機APP上,安裝一個插件,插件包含了這些重要資訊
variable1 { NAME="開關狀態", ID=0x0000, type=type_uint8 }
variable2 { NAME="亮度", ID=0x0001, type=type_uint16 }
variable3 { NAME="生產日期", ID=0x0002, type=type_uint32 }
variable4 { NAME="產品型號", ID=0x0003, type=type_string }
variable5 { NAME="韌體版本", ID=0x0004, type_uint16 }
variable6 { NAME="生產廠商", ID=0x0005, type=type_string }
variable7 { NAME="廠商主頁", ID=0x0006, type=type_string }
手機APP的互動界面上,有這幾個功能
1,獲取開關狀態
2,獲取亮度
3,獲取產品型號
4,獲取生產廠商
5,獲取廠商主頁
問題:
1, 用Python能否實作APP上插件的功能?
2,手機APP運行Python插件后,操作界面自動加載插件中描述的界面。
3,APP按照插件描述,打包與Linux主機之間的json,從Linux主機獲取所需引數。
4,注意的是,Linux主機中沒有“ID=0x0006”的資料,那么APP界面生成時,“獲取廠商主頁”一項就應該顯示為灰色。如果手機連接了另一臺Linux主機,主機的資料中有 {0x0006, type_string, .dataStr = "www.csdn.net"}這一項,手機界面就有“獲取廠商主頁”這個按鈕。
uj5u.com熱心網友回復:
apple 或 Google 都不支持app中增加插件,因為這樣會躲開平臺的審查/測驗換一個思路,服務器生成html甚至圖片,發送到app上
uj5u.com熱心網友回復:
指包含原始碼的插件么?APP控制各種智能設備,比如控制燈就有燈的通斷界面和亮度界面,傳感器就有溫度顯示,濕度顯示的界面。智能設備有各種各樣的通信方式,但是設備端到各個中繼設備再到APP,資料都是透傳。APP在插件的幫助下,決議資料流中什么代表溫度,什么代表濕度,什么代表亮度。中間的各個轉發設備不需要做任何轉義和決議操作。
uj5u.com熱心網友回復:
插件是可執行的腳本,需要app包含一個執行器你的這個需求中,實作的方式有:
1 設備發出的資料格式已知,直接在app中寫就是了 大不了一天一個版本。
2 服務器的提供一個介面翻譯資料
3 增加元資料描述處理,增加新設備則增加一個元資料描述記錄,app根據元資料描述,決議并顯示資料
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/14936.html
