建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
请选择 进入手机版 | 继续访问电脑版
设置昵称

在此一键设置昵称,即可参与社区互动!

确定
我再想想
选择版块

大海无量

发帖: 16粉丝: 5

级别 : 版主

Rank: 7Rank: 7Rank: 7

发消息 + 关注

发表于2018-10-8 11:09:41 6193 1 楼主 显示全部楼层
[干货分享] IoT OceanConnect对接入门指南第三篇--Agent接入方案简介

1、Agent系列接入方案特征


Agent
AgentLite
AgentIPC
特点
网络接入方式不敏感,WIFI、有线网络、无线网络均可
提供SDK,集成SDK,调用API即可完成设备对接
支持频繁大数据量通讯,使用Json格式数据
使用MQTTS安全接入
网络需求WIFI、有线网络、2G/3G/4G无线网络
通信协议
HTTPS:使用HTTPS单向认证,从平台绑定并获取设备登录信息
MQTTS:使用登录信息完成登录、数据上报等动作
运行环境
Java实现,需要JDK1.7以上
当前Agent支持的平台如下:
ARM Linux (Embedded Linux)
MIPS Linux (Embedded Linux)
x86 Linux
x86_64 Linux
x86 Windows
x86_64 Windows
若要移植Z-Wave、ZigBee等近
场通信协议,还需要支持响应的
交叉编译工具链
Java/C语言实现
RAM > 4M
FLASH > 600KB
目前支持的平台:
ARM Linux (Embedded Linux)
MIPS Linux (Embedded Linux)
x86 Linux
x86_64 Linux
x86 Windows
x86_64 Windows
Android(Java)
需要支持如下工具链之一:
gcc-linaro-arm-linux-gnueabihf-raspbian、
arm-none-linux-gnueabi、
arm-linux-uclibceabi
C语言实现
当前只支持**化集成
需遵循ONVIF、SRTP、RTSP协议
能力区别
网关绑定、登录、网关状态、配置修改;
发现Z-Wave,ZigBee、非标准协议等子设备,
子设备的在线状态,删除,数据上报,命令下发等,
网关自身没有数据上报的概念(子设备=非直连设备)
网关绑定、登录、网关状态上报,
网关自身可以上报数据,可作为一个直连设备
同时支持普通传感器子设备添加、删除、状态上报、
数据上报等
为IPC摄像头特别开发的系列,与IPC摄像
头集成,与华为IoT平台对接,实现视频能
力和视频存储
应用场景
家庭网关集成
需要集成Z-Wave,ZigBee等近场通信设备时
作为工业网关,收集串口等子设备数据上报
作为直连设备,上报自身数据,也可以添加子设备
网络IPC摄像头



2、Agent方案简图

     

3、Agent对接流程
     

  流程分为设备对接和应用对接

  l设备对接,根据设备自身条件选择适合的Agent系列组件进行集成。
  主要是在原有程序里集成Agent系列SDK,调用相关API即可
  如果是Agent,还需要开发非直连设备的Bundle插件,上传到集成Agent的网关
  如果是C实现的组件,还需要完成编译或者交叉编译的过程,然后是移植到目标设备上进行调测
    l应用对接
  主要是在IoT平台开发设备profile描述文件,并上传,有非直连设备的情况,非直连设备也需要开发对应的profile文件。
  开发第三方应用服务与NB-IoT的基本一致,可能有个别API是不一样的。

举报
分享

分享文章到朋友圈

分享文章到微博

神龙居市

发帖: 38粉丝: 7

级别 : 中级会员

Rank: 3Rank: 3

发消息 + 关注

发表于2019-9-22 18:21:34 沙发 显示全部楼层

IoT设备端开发sdk windows c语言版,调试通过(Agentlite_WinC_Demo).


我想做的是高级语言调用sdk类库。就是.net framework下C#语言

我使用[DllImport]特性,重定义了C函数的使用入口,关键函数都已经通过,能够bind设备,login和report data也是成功的。


我的问题是,有某些方法的参数是指针,我没有找到用C#获取到真正值的办法


比如:

bind后回调


HW_BroadCastReg(IOTA_TOPIC_BIND_RSP, Device_RegResultHandler);//这是绑定回调方法
//这是回调执行方法
public static int Device_RegResultHandler(int uiCookie, ref HW_MSG pstMsg)
{
    这一部分是C#方法,C函数的回调能执行这个方法,但是
    pstMsg 这个对象是struct 指针,我应该用什么参数接收?怎么得到真实的内容?

    下面这个方法得到的是空
    var pcDeviceId = HW_MsgGetStr(pstMsg, (int)EN_IOTA_BIND_IE_TYPE.EN_IOTA_BIND_IE_DEVICEID);

}


下面是模仿c的定义,c定义为指针了
[StructLayout(LayoutKind.Sequential)]
public struct HW_MSG
{
    public int unused;

}


请指教

点赞 引用 举报

游客

富文本
Markdown
您需要登录后才可以回帖 登录 | 立即注册