久久久久久一级片,游客逛长隆发现满地动物饼干,熟女视频一区二区三区老色批,黑人狂躁女人10次高潮视频

BMG8200系列智慧桿智能網(wǎng)關(guān) 二次開(kāi)發(fā)教程

  • 時(shí)間 :2020-11-16
  • 作者 :佰馬科技
  • 瀏覽數(shù) :2894

BMG8200智慧桿網(wǎng)關(guān).png


佰馬BMG8200網(wǎng)關(guān),是佰馬科技專為智慧路燈桿、智能燈桿、5G路燈桿、多功能桿等場(chǎng)景應(yīng)用而研發(fā)的智能網(wǎng)關(guān),配置7路LAN口、1路WAN口、4路POE供電、2路千兆光口等,具有強(qiáng)大的交流與直接電源供給能力、設(shè)備接入能力、通信協(xié)議轉(zhuǎn)換、運(yùn)算處理能力、聯(lián)動(dòng)控制能力。智慧燈桿上眾多設(shè)備包括:智能照明、視頻監(jiān)控、環(huán)保監(jiān)測(cè)、氣象監(jiān)測(cè)、LED 顯示屏、無(wú)線 WIFI 覆蓋、 公共廣播、一鍵報(bào)警,充電樁,微基站等,可以通過(guò)BMG8200 網(wǎng)關(guān)一站式接入。


智慧路燈網(wǎng)關(guān)融入智能網(wǎng)關(guān)、邊緣計(jì)算等功能模塊,高性能的工業(yè)級(jí)ARM高端處理器,Linux 操作系統(tǒng),集成Python開(kāi)發(fā)環(huán)境和C語(yǔ)言開(kāi)發(fā)環(huán)境,提供標(biāo)準(zhǔn)API接口及開(kāi)發(fā)指導(dǎo),為用戶的二次應(yīng)用開(kāi)發(fā)提供穩(wěn)定快捷的平臺(tái)。


二次開(kāi)發(fā)要求

此文檔只適用于佰馬科技智慧桿網(wǎng)關(guān)BMG8200,開(kāi)始二次開(kāi)發(fā)之前,請(qǐng)務(wù)必確認(rèn)手上的設(shè)備是BMG8200系統(tǒng)智能網(wǎng)關(guān)。


操作系統(tǒng)要求:

64位CPU,2G內(nèi)存,10G硬盤

二次開(kāi)發(fā)只能在centos,redhat,ubuntu等linux系統(tǒng),無(wú)法在windows系統(tǒng)上開(kāi)發(fā)。


編程語(yǔ)言要求:

二次開(kāi)發(fā)只能使用C、C++開(kāi)發(fā);需要開(kāi)發(fā)者熟練掌握socket,linux設(shè)備文件操作。


軟件接口說(shuō)明

1.串口對(duì)應(yīng)設(shè)備文件 

    a)  RS485對(duì)應(yīng)的設(shè)備接口是/dev/ttyS1


2.讀取adc

    int read_adc_raw(int adc_num)

    參數(shù)說(shuō)明:

    adc_num: 取值1,2,用來(lái)指示讀取哪一路adc

    返回值:返回一個(gè)0~4096的原始值

    假設(shè)返回值是X,需要使用公式Y(jié) =(X/4096)*6.72 轉(zhuǎn)化成實(shí)際電壓值


3.設(shè)置GPIO輸入,輸出方向

    int gpio_set_dir(unsigned int gpio_num, unsigned int dir)

    參數(shù)說(shuō)明:

    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: 對(duì)應(yīng)gpio的值,有0,1兩個(gè)取值

    返回值:

    獲取成功返回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,其它值無(wú)法配置

    返回值:

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


編碼編譯

準(zhǔn)備交叉編譯環(huán)境

如要您已經(jīng)拿到我司的交叉編譯工具,那么可以先把交叉編譯工具拷貝到linux系統(tǒng)。

現(xiàn)假設(shè)您已經(jīng)把交叉編譯工具拷貝到linux系統(tǒng),比如拷到/opt/,接下來(lái)是解壓縮交叉編譯工具:

tar xzvf BMG8200_toolchain.tgz –C /opt/


配置交叉編譯環(huán)境:

export PATH=$PATH:"/opt/staging_dir/toolchain-mipsel_24kc_gcc-7.3.0_musl/bin/"

在命令行輸入命令:

mipsel-openwrt-linux-gcc,如果命令可以運(yùn)行, 說(shuō)明編譯環(huán)境已經(jīng)正常


一個(gè)簡(jiǎn)單的例子:

下面以一個(gè)簡(jiǎn)單例子來(lái)說(shuō)明如果進(jìn)行網(wǎng)關(guān)二次開(kāi)發(fā):

比如現(xiàn)在要讀取adc1的電壓值,DI1的開(kāi)關(guān)量,控制繼電器閉合,代碼如下:


#include <stdio.h>

#include <string.h>

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


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的內(nèi)容如下:

LIB_DIR=/opt/staging_dir/target-mipsel_24kc_musl /usr/lib/

INCLUDE_DIR=/opt/staging_dir/target-mipsel_24kc_musl/usr/include

CC= mipsel-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


我司會(huì)提供該程序代碼;您可以在該示例代碼上直接修改。

如果上面的交叉編譯環(huán)境配置好了,那么直接make,會(huì)生成test的可執(zhí)行程序,如下圖:


圖例1.png


編譯好的可執(zhí)行文件test現(xiàn)在可以tftp到設(shè)備主板上運(yùn)行,比如你的電腦IP是192.168.1.10;(注:路由器通過(guò)網(wǎng)線與電腦相連,接LAN口中的任何一個(gè))

a. 那么先在你的電腦上運(yùn)行tftpd32程序,把當(dāng)前目錄改成test文件所在的目錄


圖例2.png


b. telnet 192.168.1.1到設(shè)備,默認(rèn)用戶名跟密碼都是admin


圖例3.png

圖例4.png


c. 運(yùn)行命令tftp –r test –g 192.168.1.10   //下載test到設(shè)備


圖例5.png


d. chmod a+x test  //修改程序?yàn)榭蛇\(yùn)行


圖例6.png


e: ./test //運(yùn)行程序


圖例7.png


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


f. 如果要把該程序配置成開(kāi)機(jī)運(yùn)行,那么只要在/etc/rc.local加上該程序,如下圖:


圖例8.png

后面的&是必須的


聯(lián)系我們
聯(lián)系我們

佰馬Baimatech,集M2M產(chǎn)品研發(fā)、IoT平臺(tái)服務(wù)、國(guó)際化運(yùn)營(yíng)于一體,讓我們聯(lián)接,共創(chuàng)未來(lái)