C 控制新大陸雲平台(二)

2021-09-24 23:17:13 字數 4115 閱讀 2112

使用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...