4G模块文档

一、简介

模块主要职责是拨号上网,记录仪需要完成拨号,设置本机apn,断联判断功能’

二、模块功能

1.直播

说明:

  1. 视频数据格式目前暂支持H264和MJPEG
  2. 摄像头需要保证每帧数据不大于300KB,分辨率控制在480p是最合理

2. 文件被动与主动上传

说明:

  1. 上传短视频,15秒以内,大小控制在20MB以内最好
  2. 上传日志
  3. 上传图片

3.GPS上传

说明:

  1. 上传GPS实时位置
  2. 上传GPS历史轨迹数据

4.APP互传控制与设置命令

说明:

  1. APP与服务器只透传,设备端需要定义好控制指令;
  2. 设备端的各种信息,电池,sd等信息均可以定义好后上传;
  3. App可以将设备端的设置指令发给设备端;
  4. APP可以将控制指令发给设备端,比如重启,等;

    5.固件升级

    说明:
  5. 设备端需要定义好版本号与信息方便升级判断;
  6. 升级包下载到sd卡,设备端从sd卡自动升级;
  7. 升级包大小控制在10mb以内最佳;

三、设备端接口

1. void INIT()

功能:初始化基本库

参数说明:

返回值:

调用方式: 开机后调用一次

注意事项:

2. void Release(void);

功能: 初始化基本库; 参数说明: 返回值: 调用方式: 关机时候调用一次; 注意事项:

3. int SetCallBack(HBXCMDCB cb);

功能: 设置回调;

参数说明:HBXCMDCB cb:回调执行函数

返回值:

调用方式: 开机后调用一次;

注意事项:

说明:这个回调函数是收到来自app或者服务器的请求后回调给上层去处理,消息列表见附录;

4. int SendVideo(unsigned char *data,int length,int type,int key,int framerate,int width,int high);

功能: 发送直播预览视频数据;

参数说明:int type,编码类型 1 h264;int framerate 帧率数;int key,是否是关键帧֡;int width,int high 分辨率;

返回值:

调用方式:

注意事项:

5. int SendAudio(unsigned char *data,int length,int type,int rate,int audiotype);

功能: 发送直播预览音频数据;

参数说明:int type:编码类型 1 pcm , 2 aac ;int rate:帧率;int audiotype : 0 mono , 1 立体声;

返回值:

调用方式:

注意事项:

6. int Stop(int videoOraudio);

功能: 设备端停止直播;

参数说明:videoOraudio :0 video and auido ,1 video, 2 audio;

返回值:

调用方式:

注意事项:

7. int SendGps(float lat,float lon, char tLat,char tLon,float speed,float angle,int hour,int min,int sec,int year,int mon,int day,int battery);

功能: 上报GPS数据;

参数说明:

  1. lat,lon尽量使用double,从GPS的rmc里面解码出来;
  2. tLat,tLon,经纬度对应的南半球,北半球,东半球与西半球的标识符号, 南半球用‘S‘,北半球’N‘,东半球’E‘,西半球’W‘,使用大写;
  3. battery 电池电量 范围0-100; 返回值:

调用方式:

注意事项:

8. int SnapShot(unsigned char *filepath,int length);

功能: 上报截取得图片或者视频;

参数说明:filepath---上传文件完整路径,length--filepath字符串长度;

返回值:

调用方式:

注意事项:

9.int Knock(unsigned char *filepath,int length);

功能: 主动碰撞提醒上报视频或者图片;

参数说明:filepath---上传文件完整路径,length--filepath字符串长度;

返回值:

调用方式:

注意事项:

10. int WifiInfo(char wifiname,char passwd);

功能: 上报设备的wifi名字与密码;

参数说明:wifiname:上传的WIFE名;passwd:WIFE密码;

返回值:

调用方式:

注意事项:

11. int Transmission(unsigned char *data,int length);

功能: 上传设置项或者回复命令传输结果;

参数说明:DATA:设置项或命令的内容;length:data的字节长度;

返回值:

调用方式:

注意事项:

12. int SendLOG(unsigned char *filepath,int length);

功能: 上传日志文件;

参数说明:filepath:传输的日志文件完整路径;length:filepath的长度;

返回值:

调用方式:

注意事项:

13. int Carstatus(int status);

功能: 上报开车与停车状态;

参数说明:status :0 汽车启动 ,1 汽车停车

返回值:

调用方式:

注意事项:开机和关机调用,设备需要联网

14. int sossnap(unsigned char *data,int length);

功能: 上报紧急sos图片;

参数说明:data:传输的sos文件完整路径;length:data的字节长度;

返回值:

调用方式:

注意事项:

15. int suspend(void);

功能: 模块休眠指令;

参数说明:

返回值:

调用方式:

注意事项:关机前调用;

16. int TransFileform(unsigned char* data, int length);

功能:上传视频文件列表;

参数说明:data:视频回放文件名以及时长;length:data字符串长度;

返回值:

调用方式: 当接收到HBX_CMD_GET_FILELIST(1013)枚举值消息后调用

注意事项:字符串格式filename1:Times#filename2:Times#filename3:Times#filename4:Times;

17. int PLACBACKprocess(unsigned char* data, int length);

功能:回传在线回放进度;

参数说明:data:回放进度;length:data字符串长度;

返回值:

调用方式:

注意事项:字符串格式(Process)

附录-

函数回调

typedef int (*HBXCMDCB)(int cmdType,unsigned char  *data,int size);
enum  HBX_CMD_ID{ 
    HBX_CMD_LIVE_START=1000,
    HBX_CMD_LIVE_STOP,
    HBX_CMD_SNOP_PHOTO,
    HBX_CMD_SNOP_VIDEO,
    HBX_CMD_WIFI_INFO,
    HBX_CMD_SENDFILE_RESULT,
    HBX_CMD_SLEEP_RESULT,
    HBX_CMD_CONTENT_INFO,
    HBX_CMD_ICON_RESULT,
    HBX_CMD_ICON_SINGLE
};

pfunCB --- 就是设置的回调函数; 用例:

static void ReciveData(unsigned char * data,int length)
{
    struct HBX_HEADER       *header = (struct HBX_HEADER   *)data;
    unsigned char           *pData = (unsigned char  *)(data + sizeof(struct HBX_HEADER ));
    if(header->length == 0) pData = NULL;
    printf("hbxclient recive header->type  %d ..\r\n",header->type);
    switch(header->type)
    {
        case HBX_CMD_LIVE_START:  //start live
            s_bLiveStatus = 1;
            nSetSpsPPS = 0;
            if(pfunCB) pfunCB(header->type,(unsigned char  *)&header->nFrameid,4);

            break;
        case HBX_CMD_LIVE_STOP:  //stop live
            s_bLiveStatus = 0;
            nSetSpsPPS = 0;
            if(pfunCB) pfunCB(header->type,NULL,0);
            break ; 

        case HBX_CMD_SNOP_PHOTO:    //stop live
            if(pfunCB) pfunCB(header->type,(unsigned char  *)&header->nFrameid,4);
            break ; 

        case HBX_CMD_SNOP_VIDEO:  //stop live
            if(pfunCB) pfunCB(header->type,(unsigned char  *)&header->nFrameid,4);
            break ; 

        case HBX_CMD_WIFI_INFO:  //stop live
            if(pfunCB) pfunCB(header->type,NULL,0);
            break ; 

        case HBX_CMD_CONTENT_INFO:  //data translate 透传数据
            if(pfunCB) pfunCB(header->type,pData,header->length);
            break ;     

        case HBX_CMD_ICON_RESULT:    // 4 +  128个字节的 文件目录 全名 不带 '/'  前面四个字节,第一个字节为0 表示停止 传输icon,为1 表示继续
        case HBX_CMD_ICON_SINGLE:    // 4 +    128个字节的 文件目录 全名 不带 '/'    前面四个字节,第一个字节为0 表示停止 传输icon,为1 表示继续
            printf("hbxclient recive header->type  %d pData %s \r\n",header->type,pData);
            if(pfunCB) pfunCB(HBX_CMD_ICON_RESULT,pData,header->length);
            break ;     
    }
}
Copyright © 智阳软件 2023修订时间: 2023-12-23 10:26:50

results matching ""

    No results matching ""