青青草原亚洲_六十路の高齢熟女AV在线看_国产精品麻豆成人AV网_国产精品久久二区二区_高清无码麻豆视频

BMG700系列邊緣計算網關二次開發說明

  • 時間 :2021-02-24
  • 作者 :佰馬科技
  • 瀏覽數 :3644

佰馬BMG700系列邊緣計算網關盒子,支持二次開發,它采用高性能的工業級ARM高端處理器,Linux 操作系統,集成Python開發環境和C語言開發環境,提供標準API接口及開發指導,為用戶的應用開發提供穩定快捷的平臺。用戶可輕松調用系統各種接口及資源,打造差異化核心競爭力。


下文以佰馬BMG700系列邊緣計算網關為例,全面介紹網關是否可以二次開發,二次開發要求,編程語言要求,軟件接口說明,如何編程及編譯,二次開發示例等。


BMG700邊緣計算網關.jpg


二次開發要求 

此二次開發指導文檔只適用于佰馬BMG700系列邊緣計算網關,開始二次開發之前,請務必確認手上的設備是 BMG700系列網關。 


操作系統要求

64 位 CPU,2G 內存,10G 硬盤

二次開發只能在 centos,redhat,ubuntu 等 linux 系統,無法在 windows 系統上開發 


編程語言要求

二次開發只能使用 C、C++開發;需要開發者熟練掌握 socket,linux 設備文件操作。 


設備資源 

BMG700 邊緣計算網關關鍵參數:

CPU: ARM 架構,主頻 528MHZ, 32K Icache, 32K Dcache 

內存: 256MB

Flash: 256MB(1G 可選),其中 128M 用戶可用

網口: 4 路,其中 1 路 WAN/LAN 復用

串口: 2路232, 3路485

開關量: 2路DI, 2路繼電器

模擬量: 2 路 ADC 


軟件接口說明 

1. 串口對應設備文件 

    a)  RS232_1 對應的設備接口是/dev/ttymxc0, 

    b)  RS232_2 對應的設備接口是/dev/ttymxc1 

    c)  RS485_1 對應的設備接口是/dev/ttymxc4 

    d)  RS485_2 對應的設備接口是/dev/ttymxc6 

    e)  RS485_3 對應的設備接口是/dev/ttymxc3 


2. 讀取 adc 

    int read_adc_raw(int adc_num)

    參數說明:

    adc_num: 取值 1,2,用來指示讀取哪一路 adc

    返回值:返回一個 0~4096 的原始值

    假設返回值是 X,需要使用公式 Y =(X/4096)*6.72 轉化成實際電壓值 


3. 設置 GPIO 輸入,輸出方向 

    int gpio_set_dir(unsigned int gpio_num, unsigned int dir)

    參數說明:

    gpio_num: 取值 GPIO_DI1,GPIO_DI2 或者 GPIO_RELAY1, GPIO_RELAY2,指示要操作哪一 路 gpio

    dir: 取值DIR_IN,DIR_OUT,控制要配置成輸入,還是輸出

    返回值: 配置成功返回 1,配置失敗返回 0 


4. 獲取 GPIO 的值

    int gpio_get_val(unsigned int gpio_num, unsigned int *val)

    gpio_num: 取值 GPIO_DI1,GPIO_DI2 或者 GPIO_RELAY1, GPIO_RELAY2,指示要操作哪一 路 gpio

    val: 對應 gpio 的值,有 0,1 兩個取值

    返回值: 獲取成功返回 1,獲取失敗返回 0 


5. 配置 GPIO 的值 

    int gpio_set_val(unsigned int gpio_num, unsigned int val)

    gpio_num: 取值 GPIO_DI1,GPIO_DI2 或者 GPIO_RELAY1, GPIO_RELAY2,指示要操作哪一 路 gpio

    val:只能 0 或者 1,其它值無法配置

    返回值: 配置成功返回 1,配置失敗返回 0 


編碼編譯 

準備交叉編譯環境 

如要您已經拿到我司的交叉編譯工具,那么可以先把交叉編譯工具拷貝到 linux 系統。 現假設您已經把交叉編譯工具拷貝到 linux 系統,比如拷到/opt/,接下來是解壓縮交叉編譯 工具:

tar xzvf staging_dir.tgz –C /opt/ 

配置交叉編譯環境:

export PATH=$PATH:"/opt/staging_dir/toolchain-arm_cortex-a7+neon_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/bin/" 在命令行輸入命令: 

arm-openwrt-linux-gcc, 說明編譯環境已經正常 


一個簡單的例子: 

下面以一個簡單例子來說明如何在佰馬BMG700系列邊緣計算網關的基礎上進行二次開發:

比如現在要讀取 adc1 的電壓值,DI1 的開關量,控制繼電器閉合,代碼如下: 

#include <stdio.h> 

#include <string.h> 

#include <gpio.h> /* 必須 include , GPIO_DIx, GPIO_RELAYx 定義在這個頭文件 */ 

    int main(void)

         { 

            int ret;

            int raw_adc;

            float voltage; 

            unsigned int val; 

            printf("start to test \n"); 

            raw_adc = read_adc_raw(1); /* 讀 ADC 通道 1 */ 

            printf("raw adc 1 value is %d\n", raw_adc); 

            voltage = (float)raw_adc / 4096;

            voltage *= 6.72;

            printf("adc1 voltage is %.3f\n", voltage); 

            ret = gpio_set_dir(GPIO_DI1, DIR_IN); /* 配置 DI1 為輸入 */ 

            if (ret == 1) { 

                ret = gpio_get_val(GPIO_DI1, &val); 

                printf("GPIO_DI1 value is %d\n", val); 

                } else { 

                    printf("Fails to set di dir %d\n", GPIO_DI1); 

                } 

            ret = gpio_set_dir(GPIO_RELAY1, DIR_OUT);/* 配置 RELAY1 為輸出 */ 

             if (ret == 1) { 

                val = 1; 

                ret = gpio_set_val(GPIO_RELAY1, val);

                 } else { 

                    printf("Fails to set relay dir %d\n", GPIO_RELAY1); 

                    } 

        return 0; 

        } 


Makefile 的內容如下: 

LIB_DIR=/opt/staging_dir/target-arm_cortex-a7+neon_uClibc-0.9.33.2_eabi/usr/lib/ INCLUDE_DIR=/opt/staging_dir/target-arm_cortex-a7+neon_uClibc-0.9.33.2_eabi/usr/include CC=arm-openwrt-linux-gcc 

CFLAGS=-I $(INCLUDE_DIR) LDFLAGS=-L $(LIB_DIR) 

all: test 

%.o:%.c

    $(CC) $(CFLAGS) -c -o $@ $^ 

test: test.o

    $(CC) $(LDFLAGS) -o $@ $^ -lgpio 

我司會提供該程序代碼;您可以在該示例代碼上直接修改。 如果上面的交叉編譯環境配置好了,那么直接 make,會生成 test 的可執行程序,如下圖: 


代碼示例1.jpg


編譯好的可執行文件 test 現在可以 tftp 到設備主板上運行,比如你的電腦 IP 是 192.168.1.10; (注:路由器通過網線與電腦相連,接 LAN 口中的任何一個) 


a.那么先在你的電腦上運行 tftpd32 程序,把當前目錄改成 test 文件所在的目錄 


IP設置.jpg


b. telnet 192.168.1.1 到設備,默認用戶名跟密碼都是 admin 



c. 運行命令 tftp –r test –g 192.168.1.10 //下載 test 到設備 


運行示例1.jpg


d. chmod a+x test //修改程序為可運行 


運行示例2.jpg


e: ./test //運行程序 


運行示例3.jpg


如果程序調試 OK,可以把該程序放到/usr/bin/目錄下

f. 如果要把該程序配置成開機運行,那么只要在/etc/rc.local 加上該程序,如下圖: 


運行示例4.jpg


后面的&是必須的


聯系我們
聯系我們

佰馬Baimatech,集M2M產品研發、IoT平臺服務、國際化運營于一體,讓我們聯接,共創未來

欧美性爱国产精品91| 亚洲无码嗯啊| 北岛玲人妻斩无码一区| 人人人操人人一区| a√8天堂中文资源在线| 成人性爱一级片| 中国产| 黄色视频任你操| 97无码视频| 九色视频少妇| 影音先锋官网免费观看视频| 京香julia无码中文在线| 未满十八禁止在线| 国产99久久在线直播| 久久CC| 97国产成人| 亚洲天堂色图综合| 日韩无码爆操下面有根棒棒糖| 成人乱码一卡二卡3卡| 国产极品一区| 更好操com| 青青草视频在线国产在线观看| 国产亚洲AV无码成人片| 亚洲无码高清成人免费| 殴美性爱网址| 中文字幕熟女在线观看| 4四虎影库永久在线| 极色综合影院| 久久69精品久久久久久HB| 少妇少妻白浆中文字幕| 91最热人妻| 国产草视频| 亚洲无码日韩av| 国产又粗又猛又爽又黄老大爷| av天堂制服丝袜| 久久一级黄色电影| 99国产在线国语精品| 久久久久久久9999| 欧美黄色人人爱| 青青草在线视频国产| 久操电影网|