人妻少妇偷人精品久久人妻,亚洲AV激情影院,哦哦操逼好爽啊视频,骚逼久久r

<rp id="tgzi8"></rp>
<small id="tgzi8"><input id="tgzi8"><delect id="tgzi8"></delect></input></small>

<p id="tgzi8"><pre id="tgzi8"><del id="tgzi8"></del></pre></p>
  • BMG8200系列智慧桿智能網(wǎng)關 二次開發(fā)教程

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

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


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


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


    二次開發(fā)要求

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


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

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

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


    編程語言要求:

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


    軟件接口說明

    1.串口對應設備文件 

        a)  RS485對應的設備接口是/dev/ttyS1


    2.讀取adc

        int read_adc_raw(int adc_num)

        參數(shù)說明:

        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)

        參數(shù)說明:

        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


    編碼編譯

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

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

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

    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,如果命令可以運行, 說明編譯環(huán)境已經(jīng)正常


    一個簡單的例子:

    下面以一個簡單例子來說明如果進行網(wǎng)關二次開發(fā):

    比如現(xiàn)在要讀取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的內(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án)境配置好了,那么直接make,會生成test的可執(zhí)行程序,如下圖:


    圖例1.png


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

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


    圖例2.png


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


    圖例3.png

    圖例4.png


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


    圖例5.png


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


    圖例6.png


    e: ./test //運行程序


    圖例7.png


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


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


    圖例8.png

    后面的&是必須的


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

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