demo-children-device.js 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. /**
  2. * 烟感设备模拟器
  3. */
  4. var _logger = logger;
  5. //事件类型
  6. var events = {
  7. reportProperty: function (index, session) {
  8. var deviceId = "test-child-1";
  9. var topic = "/children/report-property";
  10. var json = JSON.stringify({
  11. "deviceId": deviceId,
  12. "success": true,
  13. "timestamp": new Date().getTime(),
  14. properties: {"temperature": java.util.concurrent.ThreadLocalRandom.current().nextDouble(20, 40)},
  15. });
  16. session.sendMessage(topic, json)
  17. },
  18. fireAlarm: function (index, session) {
  19. var deviceId = "test-child-1";
  20. var topic = "/children/fire_alarm/department/1/area/1/dev/" + deviceId;
  21. var json = JSON.stringify({
  22. "deviceId": deviceId, // 设备编号 "pid": "TBS-110", // 设备编号
  23. "a_name": "商务大厦", // 区域名称 "bid": 2, // 建筑 ID
  24. "b_name": "C2 栋", // 建筑名称
  25. "l_name": "12-05-201", // 位置名称
  26. "timestamp": new Date().getTime() // 消息时间
  27. });
  28. session.sendMessage(topic, json)
  29. }
  30. };
  31. //事件上报
  32. simulator.onEvent(function (index, session) {
  33. //上报属性
  34. events.reportProperty(index, session);
  35. //上报火警
  36. events.fireAlarm(index, session);
  37. });
  38. simulator.bindHandler("/children/read-property", function (message, session) {
  39. _logger.info("读取属性:[{}]", message);
  40. session.sendMessage("/children/read-property-reply", JSON.stringify({
  41. messageId: message.messageId,
  42. deviceId: message.deviceId,
  43. timestamp: new Date().getTime(),
  44. properties: {"temperature": java.util.concurrent.ThreadLocalRandom.current().nextDouble(20, 40)},
  45. success: true
  46. }));
  47. });
  48. simulator.bindHandler("/read-property", function (message, session) {
  49. _logger.info("读取属性:[{}]", message);
  50. session.sendMessage("/children/read-property-reply", JSON.stringify({
  51. messageId: message.messageId,
  52. deviceId: message.deviceId,
  53. timestamp: new Date().getTime(),
  54. properties: {"temperature": java.util.concurrent.ThreadLocalRandom.current().nextDouble(20, 40)},
  55. success: true
  56. }));
  57. });
  58. simulator.onConnect(function (session) {
  59. //模拟子设备上线
  60. session.sendMessage("/children/device_online_status", JSON.stringify({
  61. deviceId: "test61423",
  62. timestamp: new Date().getTime(),
  63. status: "1",
  64. success: true
  65. }));
  66. simulator.runDelay(function () {
  67. session.sendMessage("/children/device_online_status", JSON.stringify({
  68. deviceId: "test61423",
  69. timestamp: new Date().getTime(),
  70. status: "0",
  71. success: true
  72. }));
  73. },1000)
  74. });
  75. simulator.onAuth(function (index, auth) {
  76. //使用网关设备id 连接平台
  77. auth.setClientId("gateway-" + index);
  78. auth.setUsername("admin");
  79. auth.setPassword("admin");
  80. });