佰马BM-A6系列AI智能网关Ubuntu系统二次开发指南

  • 时间 :2024-02-29
  • 作者 :佰马科技
  • 浏览数 :2854

佰马科技BM-A6系列AI智能网关,是一款工业级5G千兆网关,CPU采用四核64位Cortex-A55处理器,主频高达2Ghz,支持丰富AI算法,赋能各行业智能分析联动控制应用。为客户提供便捷的设备接入、算力支撑、算法配置、应用升级等功能,具有轻量化、高性能、低功耗、接入便捷、易于扩展等特点。


AI边缘计算网关


佰马BM-A6系列AI智能网关具备3路千兆LAN口、1路千兆WAN口、1路USB 3.0、1路RS232(复用其中1路RS485)、6路RS485,2路继电器,3路开关量输入,2路受控电源输出,标配支持TF卡、WiFi 6 、HDMI输出,可选配单模双卡、AI加速芯片、安全加密芯片、外接硬盘(M2.0标准接口,最大支持2T固态硬盘)、超级电容等.


AI工业网关


该系列产品可帮助用户快速接入高速互联网,实现安全可靠的数据传输。该系列网关具有设备具有多功能性、稳定性和可扩展性,超强边缘计算、易于二次开发等优点。广泛应用于智慧城市、智能交通、工业物联网等场景。



BM-A6系列AI智能网关Ubuntu系统二次开发指南


1、佰马BM-A6系列AI智能网关硬件资源如下:

1.jpg

2.jpg


2、佰马BM-A6系列AI智能网关接口设备文件说明

佰马BM-A6系列AI智能网关支持对串口,DO, DI开次开发。串口,DO, DI在Linux系统中均以设备文件的形式出现。支持标准的Linux文件操作。用户可以使用open, read, write, close等标准Linux API对设备文件进行操作。下面介绍各种接口对应的设备文件。


(1)RS485/RS232

佰马BM-A6系列AI智能网关包含6个RS485串口,其中一个RS485串口与RS232复用。各个串口对应的设备文件如下:

3.jpg


(2)DI/DO(继电器)

佰马BM-A6系列AI智能网关支持2路DO,3路DI。DI/DO对应的设备文件如下:

4.jpg


目前两路继电器默认是常开的,如果要闭合,只要对设备文件下的value操作即可。如要闭合继电器1,可以下命令:

echo 1 >/sys/class/gpio/relay1/value

反正要断开,只要写入0即可。


如果想要读取DI的状态,读取value的值。如要读取DI1的值,可以下命令:

cat /sys/clase/gpio/di1/value

如果输出的值为1,说明DI接地,否则是悬空。


3、Ubuntu系统二次开发指南


(1)登陆设备

佰马BM-A6系列AI智能网关支持telnet, ssh,debug串口三种登陆设备方式。如果有串口线,可以接debug口。如果有网线,可以用telnet或者ssh。


假如你的电脑接设备的LAN口,接下来就可以在你的PC命令行中下telnet 192.168.1.1或者ssh admin@192.168.1.1 以登陆设备,默认用户名/密码是admin/admin.


5.jpg

6.png


使用sudo –s进入超级用户模式。超级用户的密码也是admin


(2)设备联网

佰马BM-A6系列AI智能网关支持以太网(WAN)口,与4G/5G两种联网方式。WAN口接入一台可以上网的设备,或者设备接SIM卡,接天线,设备即可上网。用ping 8.8.8.8验证一下设备是否可以上网。


7.jpg


(3)安装gcc

默认系统是不带gcc,用户可以通过apt install安装.命令如下:

sudo apt update

sudo apt install gcc

sudo apt install make

安装完gcc,即可设备的C语言二次开发。 用户也可以使用python开发,默认自带python



一个例子

比如写一个读取DI的程序,如下:

#include <stdio.h>

#include <fcntl.h>

#include <stdlib.h>

#include <unistd.h>

#include <string.h>


void main(int argc, char *argv[])

{

    int fd;

    int ret;

    char path[128];

    char buff[32] = {'\0'};


    if (argc < 2) {

        printf("not enough parameter, should great 2 \n");

        return;

    }


    snprintf(path, sizeof(path), "/sys/class/gpio/sd_/value", argv[1]);

    fd = open(path, O_RDONLY);

    if (fd < 0) {

        printf("Fails to open sd_\n", path);

        return;

    }


    ret = read(fd, buff, sizeof(buff));

    if (ret <= 0) {

        printf("Fails to read\n");

        close(fd);

        return;

    }


    ret = atoi(buff);

    printf("DI value is %d\n", ret);


    close(fd);

}


把代码保存成main.c, 接下来,就可以用gcc –o test main.c编译生成一个可执行程序test.

可用./test di1来测试di的值 

8.jpg

联系我们
联系我们

佰马Baimatech,集M2M产品研发、IoT平台服务、国际化运营于一体,让我们联接,共创未来