更多有关Edge X Foundry的内容,请点击这里
准备:JDK,Maven,MongoDB,Eclipse这些东西就不说啦,详细准备情况可以参考我的另一篇文章哈~
1.设备SDK
2.设备SDK开发工具
我们把这两个项目从GitHub上拉取下来后导入到eclipse中,使用General-Existing Project into Workspace导入即可
-device-sdk-tools是生成虚拟设备的工具,我们要通过运行它来创建一个虚拟设备,而具体的设备属性,端口,名称,协议等等都由被指文件生成,后面会具体的讲解
那么我们通过一个实例来熟悉怎么进行设备SDK的开发吧
这个时候我们右击device-sdk-tools项目,选择Run As-RunConfigurations,在Java Application下可以看到后面有一个默认的New_configuration,在右边我们配好
Name:Generate Device Service;
Project:device-sdk-tools;
选择好我们要要运行的主函数,也就是org.edgexfoundry.Application
接下来我们转到Arguments标签页里,这里是干嘛的呢?不知道大家在device-sdk-tools的GitHub说明中有没有看到“运行配置需要两个参数”其中第一个是生成文件的目录名称,也就是路径。第二个就是设备服务描述文件,也就是模板。
大家可以看到在device-sdk-tools的项目下有一个Demo的文件,这个文件里面配置了好多属性,而这就是设备服务描述的文件,我们可以仿照Demo这个文件去修改成自己的设备服务描述文件从而生成自己的设备。
例如我们可以这么写
然后Run!
如果一切顺利,我们可以在看到会有成功的提示
这样我们就生成了一个新的服务,新服务当然是要跑起来的呀,我们怎么去运行新服务呢?
首先,我们用Maven去将新项目导入,Improt->Maven-Existing Maven Project,然后选择好刚刚生成新设备文件的路径,OK~
导入进来后,我们通过
将此服务设备安装到Maven环境当中去,只要出现
就说明我们的新设备成功部署到Maven中去了
这个构架在设计的时候有一个Bug,需要配置一个日志记录在application.properties中加入:logging.remote.url=http://localhost:48061/api/v1/logs
并且将schedule.properties替换为以下内容
# Add comma separated schedule and scheduleEvent initializations, may be partially specified, used by SimpleSchedule and SimpleScheduleEvent for initialization
# TODO 9: [Required] Set up default schedules. Each property set must be equal width. Run the schedule in the service by leaving the scheduleEvent.scheduler property blank,
# or run on the scheduler service by defining the scheduleEvent.scheduler=scheduler,...
#default.schedule.name=Interval-15s
#default.schedule.frequency=PT15S
#default.scheduleEvent.name=device-sdk-generated-Discovery
#default.scheduleEvent.path=/api/v1/discovery
#default.scheduleEvent.service=device-sdk-generated
#default.scheduleEvent.schedule=Interval-15s
然后嘞,我们就可以用Application类去运行这个设备服务,启动服务啦