邊緣計算閘道器(BMG800系列)二次開發指導手冊

2021-10-25 07:10:15 字數 4112 閱讀 8609

邊緣計算閘道器二次開發指導手冊

庫函式介面介紹

(適用於:bmg800系列)

1. 獲取溫濕度(硬體裝置為sht10) 

2. 獲取大氣壓(硬體裝置為bmp180) 

3. 讀取adc值(硬體裝置為ms1112) 

4. 狀態燈控制(硬體裝置為pcal6416) 

5. gpio控制繼電器

5.1設定繼電器狀態

5.2 查詢繼電器狀態

6. di控制操作

7. com口

bmg800邊緣計算閘道器,是一款功能強大的智慧型網關。該系列閘道器盒子,採用工業級arm處理器, ddr3 記憶體最大1gb(可選),和大容量 flash,為邊緣節點業務提供強大計算資源, 有效分擔雲端負荷。bmg800系列邊緣計算閘道器採用linux 作業系統,整合python開發環境和c語言開發環境,提供標準api介面及開發指導,為使用者的二次開發提供穩定快捷的平台。

邊緣計算閘道器二次開發,首先定義的庫函式、巨集定義包含在了libgeneral.so動態庫中,其次使用時需要包含標頭檔案:

#include

#include

1. 獲取溫濕度(硬體裝置為sht10)

原型:int get_humidity_tempareture(sht10_st *value)

引數:sht10_st結構體指標,讀取的結果填充該結構體。結構體定義見後面

返回值:0-成功,-1 - 引數錯誤,-2 - 裝置節點不存在,-3 - 讀取失敗

typedef structsht10_st;

2.獲取大氣壓(硬體裝置為bmp180)

原型:int get_pressure_temparature(atmos_st *value)

引數:atmos_st結構體指標,讀取的結果填充該結構體。結構體定義見後面

返回值:0-成功,-1 - 引數錯誤,-2 - 裝置節點不存在,-3 - 讀取失敗

typedef structatmos_st;

3.讀取adc值(硬體裝置為ms1112)

原型:int adc_channel_get(int channel_no,int *value)

引數:channel_no - 通道 (取值範圍1-8),int型指標-adc取樣結果。

返回值:0-成功,-1 - 引數錯誤,-2 - 裝置節點不存在,-3 - 讀取失敗

該函式原始的adc,還需要原始值轉為取樣電壓。

取樣電壓 = ( (*value) * 2.048)/32768/0.4,單位= v

若輸入的為電流模式,需進一步換算,輸入電流 = 取樣電壓/250,電流單位為a

4.狀態燈控制(硬體裝置為pcal6416)

原型:int led_control_set(led_num_e led_no,led_state_e enable)

引數: led_no - led編號,enable - led設定狀態

返回值:0-成功,-1 - 引數錯誤,-2 - 裝置節點不存在,-3 - 設定失敗

typedef enum led_num_e; 

typedef enumled_state_e;

5.gpio控制繼電器

5.1設定繼電器狀態

原型:int gpio_direction_output(int gpio_no,int state)

引數:gpio_no: gpio編號,state: 0 斷開(低電平),1 閉合(高電平)

返回值:0-成功,負數-失敗

5.2 查詢繼電器狀態

原型:int  gpio_get_value(int gpio_no,int *gpio_state)

引數:gpio_no: gpio編號,int型指標: 存放讀取結果,*gpio_state=0 當前繼電器斷開(低電平), *gpio_state =1 當前繼電器閉合(高電平)

返回值:0-成功,負數-失敗

繼電器對應的gpio編號:(核心中已經註冊了繼電器管腳,可直接用提供的gpio函式控制):

#define relay_1_by_gpio  get_cpu_relay_gpio(3) 

#define relay_2_by_gpio  get_cpu_relay_gpio(2) 

#define relay_3_by_gpio  get_cpu_relay_gpio(4) 

#define relay_4_by_gpio  get_cpu_relay_gpio(1) 

relay_1_by_gpio - relay_4_by_gpio分別對應繼電器1到繼電器4

6. di控制操作

di對應的gpio編號:

#define gpio(n,x)       ((n-1)*32 + x)

#define gpio_di1_in_en          gpio(4,28)

#define gpio_di2_in_en          gpio(4,27)

#define gpio_di3_in_en          gpio(4,26)

#define gpio_di4_in_en          gpio(4,25)

gpio_di1_in_en - gpio_di4_in_en分別對應di1到di4

linux應用控制gpio的方法如下:

以下為控制di1的操作過程參考:

6.1 進入 /sys/class/gpio/ 目錄

6.2 其次如下

echo 124 > export  

//124=(4-1)*32 + 28

//gpio(n,x)->((n-1)*32 + x)

//gpio_di1_in_en->gpio(4, 28)

6.3 此時會產生乙個gpio124 的目錄.

6.4  cd gpio124

6.5 關注以下幾個檔案:

direction     這個檔案是控制你是輸出還是輸入模式

如果想設定為輸入:echo in >direction

如果想設定為輸出:echo out >direction

value        這個檔案記錄當前狀態

為輸出時:

輸出高電平:echo 1 >value

輸出低電平:echo 0 >value

為輸入時:

當前的輸入狀態

edge         這個控制中斷觸發模式

無: echo none >edge

上公升沿觸發:echo rising >edge

下降沿觸發:echo falling >edge

輪詢:echo both >edge

6.6 關閉這個gpio控制。

cd /sys/class/gpio/

echo 124 >unexport

以上為控制di1的操作過程參考

7.com口

各com口對應的裝置節點如下:

com2-"/dev/ttymxc1"

com3-"/dev/ttymxc2"

com4-"/dev/ttymxc3"

com5-"/dev/ttymxc6"

com6-"/dev/ttymxc4"

com7-"/dev/ttymxc5"

com口可以直接用檔案操作函式處理(open/read/write/close等)進行初始化和讀寫。

Hypermesh二次開發系列002

在hypermesh裡有三類tcl命令 a tcl gui command 介面命令 b tcl modify command 修改命令 c tcl query command 查詢命令 其中a類和c類以 hm 開頭,但是a類一般不帶引數和返回值,而c類通常會帶有引數和返回值。比如 hm callh...

BIMFACE二次開發系列教程

不用懷疑 它是目前中國最全面 最好用的bimfce二次開發全系列教程 涵蓋bimface伺服器端所有api詳解 整合應用開發 demo,開箱即用 bimface應用場景包含但不限於以下內容 以上眾多應用場景,都需要結合bimface提供的豐富介面進行二次開發才能實現強大的功能。本系列全面 細緻地介紹...

ecshop二次開發指南 購物車篇

第乙個問題 儲存使用者購物車資料 ecshop的購物車資料,是以session 方式儲存在資料庫裡,並在session結束後 distroy 掉,解決方法是 1.購物車內容讀取方式.更改登陸後購物車獲取條件 session 單獨方式 為 session 使用者名稱 該修改位於lib order 下 ...