|
Sun SPOT 快速入门教程
基站实战最后,本文将介绍 Sun SPOT 基站与移动(free-range)Sun SPOT 之间的通信。基站可用于部署和调试移动 SPOT 的相关代码。 要完成各个 Sun SPOT 之间的无线下载(over-the-air,OTA),您必须知道 SPOT 的 IEEE 扩展的 MAC 地址。IEEE 扩展的 MAC 地址是一个 64 位地址,用 4 位数的十六进制的数字表示:nnnn.nnnn.nnnn.nnnn。前 8 位数始终为 0014.4F01。后 8 位数被打印在透过无线电天线辐射叶上透明塑料可视的标签上。典型的标签类似于 0000.01AE 和暗示为 0014.4F01.0000.01AE 的 SPOT 提供的 IEEE 地址。您还可以使用本文后边所说明的 ant 命令获取 IEEEE 地址。我们建议为每个 Sun SPOT 制作带有 IEEE 地址的列表。 我们首先对移动 SPOT 做应用程序的无线下载部署。当我们完成 Air Text 演示程序的时候,基站不与任何设备相连。请在您的主机工作站上将基站 SPOT 连接到 USB 接线上。 我们必须确保基站发挥基站的作用,也就是说,它运行从主机工作站到移动 SPOT 之间传递通信的程序,而不是运行应用程序。 您至少有两种方式可以实现这一目的。一种方式是观察基站上的活动 LED。如果 LED 每 12 秒发出绿色闪烁,LED 正处于基站模式。 如果 SPOT 被配置为基站,您还可以使用 ant 命令查看。为了进行这个操作,
系统将如下所示: [java] Local Monitor (purple-071010) [java] Application slot contents: [java] Startup: [java] Library suite: [java] Security: [java] Configuration properties: [java] Exiting -run-spotclient-multiple-times-locally: -run-spotclient: BUILD SUCCESSFUL 在标题为 “Library Suite ” 章节之前有一行称作 “Configured as a basestation.”,表明基站 SPOT 正以基站模式运行。如果基站 SPOT 不处于基站模式,输出部分将包含所述 “Configured to run the current application” 内容。 还要注意的是,上面的 “Configured as a basestation” 一行给出了 “OTA Command server disabled.”内 容。这一点同等重要。OTA 命令服务器只在移动 SPOT 上运行。如果它在基站上运行,无线下载部署将不运行。要禁用基站上的 OTA 命令服务器,使用 “ant disableota” 命令。 最后,请注意在以“SPOT 序列号”开始的行中,输出列举出 Sun SPOT 的 IEEE 地址。具有讽刺性的是,运行 ant info 会停止基站程序的运行。请按控制按钮以便重置基站并重新启动基站程序。 当基站 SPOT 被插入到 USB 端口时,它被转换到自动进入基站模式这一状态。但是,如果您的 Sun SPOT 基站不是在基站的模式下运行,您可以执行这个命令: 您还可以用设置为
您现在已经将 Bounce 演示程序重新加载到目标的移动 SPOT 之上。 故障排除: 如果出现超时错误和/ 或 “BUILD FAILED” 消息的部署失败,请重新尝试设置移动 SPOT。如果类似的尝试失败,最大可能是移动 SPOT 没有启用无线下载(OTA)部署。要启用 OTA 部署,请从 USB 接线上拔下基站 SPOT,将移动 SPOT 连接到 USB 接线,执行 “ant enableota” 命令。然后键入 “ant info” 命令。除其他内容以外,输出还包括 “OTA Command Server is enabled” 内容。这表示您在 Sun SPOT 上已经启用了无线下载部署。从 USB 接线上断开移动 SPOT 并重新连接基站。再一次尝试 “ant -DremoteId=nnnn.nnnn.nnnn.nnnn deploy”命令。该命令现在会正常执行。 Bounce 演示程序现在再一次被加载到 SPOT 上。您可以用两种方式中的一种启动应用程序。如果您不需要查看从应用程序发出的控制台输出结果,您可以通过按控制按钮并重置 SPOT 来启动应用程序。如果您想查看从应用程序发出的控制台输出结果,您可以使用命令窗口并执行命令:
应用程序将启动,输出将被定向到命令窗口。如果您以这种方式启动应用程序而且并不在意输出内容,您可以使用 Control-C 来终止 ant 命令。应用程序将继续在 SPOT 上运行。 请在 SPOT 上以这些方式中的一种启动 Bounce 演示程序。现在您会有两个带有 Bounce 演示程序并在其上运行的移动 Sun SPOT。 现在我们可以再次启动 Ectoplasmic Bouncing Ball 演示程序,但是这次我们将添加一个在主机工作站上运行并通过基站无线电广播与移动 Sun SPOT 通信的模拟 Sun SPOT。 从 NetBeans 主菜单条中选择 “File”,并从菜单中选择 “Open Project” 选项。
当显示文件选择框时,导航至 Sun SPOT SDK 条目中的演示程序目录。在该目录内,选择
项目已经被打开后,从菜单条中选择 “Run”,然后从所弹出菜单中选择 “Run Main Project”:
在装有模拟 Sun SPOT 的主机工作站上将打开一个窗口:
使用工作站鼠标抓取模拟 SPOT,并将之托放到左边,向右倾斜放置。通过基站 Sun SPOT 上的无线电广播与其他 Sun SPOT 进行模拟通信。打开或重置移动 Sun SPOT。查看您是否可以获得所有三个 SPOT —— 两个自由 SPOT 和一个模拟 SPOT —— 所有 SPOT 交换外质球。查看您是否可以将三个球合并成一个白球。 您已经将三个球全部合并成一个白球,在移动 Sun SPOT 和模拟 Sun SPOT 之间往复传递,此时,对于 Sun SPOT 的编程您已经完成了欢迎教程。祝贺您! 毫无疑问,您现在希望解决如何在 Sun SPOT 上实现您自己的 应用程序。 对于 BuiltInSensorsDemo,常使用代码作为起始代码。该代码在 <SunSPOTdirectory>/Demos 目录中。如果其中含有所有您将需要的 Java 导入语句,它会说明在演示程序传感器面板上如何实例化并使用所有传感器。在此说明了许多常见使用模式,其中的使用模式使您易于向应用程序剪切并粘贴代码。如果您想要学习关于使用无线广播方面的更多知识,请浏览 RadioStrength 演示程序。 您还可以进入 <SunSPOTdirectory>/Demos/CodeSamples 目录中查找相关信息。该目录有许多演示应用程序,每一个演示程序对每种类型的传感器或装置都作了详细介绍。演示程序的其中之一演示了 GPIO 管脚的应用 —— 用于在传感器面板上外部设备输入/ 输出的衬垫。 在 《Sun SPOT 所有者使用手册》 中简要描述了传感器的使用。最后,Sun SPOT 的软件环境和结构在《Sun SPOT 开发人员指南》 中进行了描述。它是 Sun SPOT 开发人员的重要参考资料。二者均在 <SunSPOTdirectory>/sdk/doc 目录中可以找到。 |
||||||||||||||||