使用c#封裝了部分api 部分api介面
基本元件:
label,textbox,button等,由於c#進行客戶端開發,我們能夠比較容易的做出對應的介面(拖控制項),這裡我就不講解了.
先檢視官方給的demo,在bll下的mainbusiess.cs類中,找到對應的防禦類(如果沒有,也沒關係,這個類只是對底層**做了乙個封裝而已)找到ondefense()方法
public
static
void
ondefense()
//防禦
我們能夠發現呼叫了sdk類中的cmds方法,其中sdk使我們自己宣告的乙個nlecloudapi類例項,如下
static
nlecloudapi sdk =
newnlecloudapi
(tempinfo.api_host)
;//獲取位址資訊(雲介面主機位址)
那麼我們檢視nlecloudapi中的cmds方法
///
/// 傳送命令
///
/// 裝置id
/// 感測標識名
///
/// 開關類:開=1,關=0,暫停=2
/// 家居類:調光燈亮度=0~254,rgb燈色度=2~239,窗簾、捲閘門、幕布開啟百分比=3%~100%,紅外指令=1(on)2(off)
/// 其它:integer/float/json/string型別值
///
///
///
public
result
cmds
(int32 deviceid,
string apitag,
object data,
string token =
null
)//1、先定義該api介面路徑,可以從頁面的得知
string apipath = string.
format
("/"
, mapihost, nlecloudapiurl.cmdurl)
; apipath +
=string
.format
("?&"
,"deviceid="
+ deviceid,
"apitag="
+ apitag)
;//2、根據該api介面的請求引數中 得知需要建立個uri parameters string型別引數,所以該引數直接跟在apipath中
//apipath = apipath.replace("", deviceid.tostring());//將api位址中的替換成真實專案id
//3、由於呼叫該api需要token,所以我們定義了乙個通用的物件httpreqentity,在accesstoken當成頭部請求資訊提交過去
;//4、定義該api介面返回的物件
}
發現,控制風扇非常簡單,只要給出相應的裝置id,識別符號,值和token;控制燈泡的原理也一樣,這裡不做贅述。
其實實際上就是獲取相應的感測器資料,在sdk中找到相應的方法,如下
///
/// 批量查詢裝置最新資料
///
/// 裝置id用逗號隔開, 限制100個裝置
///
///
public resultmsg
>
getdevicesdatas
(string devids,
string token =
null
)//1、先定義該api介面路徑,可以從頁面的得知
string apipath = string.
format
("/"
, mapihost, nlecloudapiurl.devicesdatasurl)
;//2、根據該api介面的請求引數中 得知需要建立個uri parameters string型別引數,所以該引數直接跟在apipath中
//apipath = apipath.replace("", projectid.tostring());//將api位址中的替換成真實專案id
apipath +
=string
.format
("?"
,"devids="
+ devids)
;//3、由於呼叫該api需要token,所以我們定義了乙個通用的物件httpreqentity,在accesstoken當成頭部請求資訊提交過去
;//4、定義該api介面返回的物件
result = requestapihelper.requestserver
>
(apipath, req);if
(result.
issuccess()
&& result.resultobj !=
null)}
}}return result;
}
我們可以看出,入口引數只有裝置id跟token,那麼肯定獲取的是所以感測器的資料,那麼如何從這麼多資料中獲取到相應的資料呢?使用api模擬測試一下,是乙個jsoin資料,我們只要解析到想要的資料即可.
;//獲取溫度
tem =
int.
parse
(qry1.resultobj[0]
.datas[11]
.value.
tostring()
);//6 ctrl燈...11是風扇
將該操作與上述對應,那麼我們就能夠明白了。
由於舵機是要給乙個角度,這裡我們用拖動條(slider)實現,當前也能通過文字輸入的方式,布局如下:
操作的方法如下,發現其實也是跟控制風扇一樣,傳入相應的引數即可
//舵機控制用函式
public
static
void
ctrldir1
(int a)
public
static
void
ctrldir0
(int b)
1月英語總結 發現新大陸
一月份是忙碌的乙個月,對的,那就是考試無疑了。已經習慣了文科那些背的東西的考試了,這次突然增加乙個教育統計學,老師還是那種耿直的woman。所以真的是全身心投入了考試的我 還是沒有放棄英語小可愛,而且發現了新大陸那!新大陸就是配音秀!一考試就焦慮,一焦慮就什麼都不想幹,不想幹就形成習慣,所以考試期間...
我發現了新大陸 python的嵌入式開發
接上篇的文章,韌體什麼的都除錯的很舒服,我突然發現了乙個很好的 他是賣python開發板的,但是我從中竊取了很多寶貝,太舒服了!不得不說,這個 做的已經相當漂亮了,而且資料都是開放的,大愛!包括編譯器,燒寫工具,歷程,文件,一應俱全,舒服的很。這是我燒寫了這個 上的esp8266韌體之後,的測試 直...
海康裝置雲平台簡單控制
void mainwindow inithaikang net dvr deviceinfo v40 strudeviceinfo strcpy char strulogininfo.sdeviceaddress,192.168.1.1 裝置 ip 位址 strcpy char strulogini...