1. k8凯发

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

      • 时间 :2024-02-29
      • 作者 :k8凯发科技
      • 浏览数 :4403

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


      AI边缘计算网关


      k8凯发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、k8凯发BM-A6系列AI智能网关硬件资源如下:

      1.jpg

      2.jpg


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

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


      (1)RS485/RS232

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

      3.jpg


      (2)DI/DO(继电器)

      k8凯发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)登陆设备

      k8凯发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)设备联网

      k8凯发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

      联系我们
      联系我们

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