@dronedeploy/rocos-js-sdk 1.0.0-alpha-2 → 2.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (568) hide show
  1. package/IRocosSDK.js +5 -1
  2. package/README.md +0 -18
  3. package/RocosSDK.js +95 -93
  4. package/api/StreamRegister.d.ts +1 -1
  5. package/api/StreamRegister.js +12 -23
  6. package/api/atoms/StreamHeartbeat.js +7 -3
  7. package/api/streams/caller/CallerStream.d.ts +6 -6
  8. package/api/streams/caller/CallerStream.js +49 -41
  9. package/api/streams/caller/CallerStreamAbstract.d.ts +11 -6
  10. package/api/streams/caller/CallerStreamAbstract.js +67 -55
  11. package/api/streams/caller/CallerStreamNode.d.ts +6 -6
  12. package/api/streams/caller/CallerStreamNode.js +61 -48
  13. package/api/streams/command/CommandStream.d.ts +4 -2
  14. package/api/streams/command/CommandStream.js +30 -28
  15. package/api/streams/command/CommandStreamAbstract.d.ts +8 -4
  16. package/api/streams/command/CommandStreamAbstract.js +42 -33
  17. package/api/streams/command/CommandStreamNode.d.ts +4 -2
  18. package/api/streams/command/CommandStreamNode.js +40 -16
  19. package/api/streams/control/ControlStream.d.ts +6 -4
  20. package/api/streams/control/ControlStream.js +36 -30
  21. package/api/streams/control/ControlStreamAbstract.d.ts +9 -6
  22. package/api/streams/control/ControlStreamAbstract.js +54 -57
  23. package/api/streams/control/ControlStreamNode.d.ts +5 -3
  24. package/api/streams/control/ControlStreamNode.js +44 -19
  25. package/api/streams/fileAccessor/FileAccessorStream.d.ts +4 -2
  26. package/api/streams/fileAccessor/FileAccessorStream.js +57 -42
  27. package/api/streams/fileAccessor/FileAccessorStreamAbstract.d.ts +9 -4
  28. package/api/streams/fileAccessor/FileAccessorStreamAbstract.js +48 -28
  29. package/api/streams/fileAccessor/FileAccessorStreamNode.d.ts +3 -1
  30. package/api/streams/fileAccessor/FileAccessorStreamNode.js +53 -23
  31. package/api/streams/search/SearchStream.d.ts +5 -2
  32. package/api/streams/search/SearchStream.js +74 -50
  33. package/api/streams/search/SearchStreamAbstract.d.ts +9 -4
  34. package/api/streams/search/SearchStreamAbstract.js +35 -33
  35. package/api/streams/search/SearchStreamNode.d.ts +5 -2
  36. package/api/streams/search/SearchStreamNode.js +48 -23
  37. package/api/streams/telemetry/TelemetryStream.d.ts +4 -4
  38. package/api/streams/telemetry/TelemetryStream.js +78 -49
  39. package/api/streams/telemetry/TelemetryStreamAbstract.d.ts +11 -8
  40. package/api/streams/telemetry/TelemetryStreamAbstract.js +145 -126
  41. package/api/streams/telemetry/TelemetryStreamNode.d.ts +5 -5
  42. package/api/streams/telemetry/TelemetryStreamNode.js +64 -44
  43. package/api/streams/webRTCSignalling/WebRTCSignallingStream.d.ts +10 -5
  44. package/api/streams/webRTCSignalling/WebRTCSignallingStream.js +20 -37
  45. package/api/streams/webRTCSignalling/WebRTCSignallingStreamAbstract.d.ts +13 -10
  46. package/api/streams/webRTCSignalling/WebRTCSignallingStreamAbstract.js +37 -37
  47. package/constants/api.d.ts +1 -6
  48. package/constants/api.js +126 -126
  49. package/constants/grpc.js +8 -5
  50. package/constants/identifier.js +9 -6
  51. package/constants/timezones.d.ts +1 -1
  52. package/constants/timezones.js +4 -1
  53. package/demo/angular/.editorconfig +16 -0
  54. package/demo/angular/.eslintignore +4 -0
  55. package/demo/angular/.eslintrc.json +50 -0
  56. package/demo/angular/README.md +36 -0
  57. package/demo/angular/angular.json +132 -0
  58. package/demo/angular/karma.conf.js +44 -0
  59. package/demo/angular/package.json +41 -0
  60. package/demo/angular/src/app/app.component.css +0 -0
  61. package/demo/angular/src/app/app.component.html +9 -0
  62. package/demo/angular/src/app/app.component.ts +10 -0
  63. package/demo/angular/src/app/app.module.ts +38 -0
  64. package/demo/angular/src/app/components/assets/assets.component.css +0 -0
  65. package/demo/angular/src/app/components/assets/assets.component.html +29 -0
  66. package/demo/angular/src/app/components/assets/assets.component.ts +107 -0
  67. package/demo/angular/src/app/components/auth/auth.component.css +0 -0
  68. package/demo/angular/src/app/components/auth/auth.component.html +27 -0
  69. package/demo/angular/src/app/components/auth/auth.component.ts +33 -0
  70. package/demo/angular/src/app/components/caller/caller.component.css +0 -0
  71. package/demo/angular/src/app/components/caller/caller.component.html +22 -0
  72. package/demo/angular/src/app/components/caller/caller.component.ts +61 -0
  73. package/demo/angular/src/app/components/command/command.component.css +0 -0
  74. package/demo/angular/src/app/components/command/command.component.html +22 -0
  75. package/demo/angular/src/app/components/command/command.component.ts +60 -0
  76. package/demo/angular/src/app/components/integrations/integrations.component.ts +43 -0
  77. package/demo/angular/src/app/components/robots/robots.component.css +0 -0
  78. package/demo/angular/src/app/components/robots/robots.component.html +13 -0
  79. package/demo/angular/src/app/components/robots/robots.component.ts +26 -0
  80. package/demo/angular/src/app/components/sdk/sdk.component.css +0 -0
  81. package/demo/angular/src/app/components/sdk/sdk.component.html +43 -0
  82. package/demo/angular/src/app/components/sdk/sdk.component.ts +50 -0
  83. package/demo/angular/src/app/components/subscription/subscription.component.css +0 -0
  84. package/demo/angular/src/app/components/subscription/subscription.component.html +6 -0
  85. package/demo/angular/src/app/components/subscription/subscription.component.ts +40 -0
  86. package/demo/angular/src/app/components/telemetry/telemetry.component.css +0 -0
  87. package/demo/angular/src/app/components/telemetry/telemetry.component.html +19 -0
  88. package/demo/angular/src/app/components/telemetry/telemetry.component.ts +61 -0
  89. package/demo/angular/src/app/components/token/token.component.css +0 -0
  90. package/demo/angular/src/app/components/token/token.component.html +10 -0
  91. package/demo/angular/src/app/components/token/token.component.ts +18 -0
  92. package/demo/angular/src/app/components/video/p2pvideo/index.ts +646 -0
  93. package/demo/angular/src/app/components/video/video-source.ts +315 -0
  94. package/demo/angular/src/app/components/video/video.component.css +6 -0
  95. package/demo/angular/src/app/components/video/video.component.html +54 -0
  96. package/demo/angular/src/app/components/video/video.component.ts +151 -0
  97. package/demo/angular/src/app/services/sdk.service.ts +193 -0
  98. package/demo/angular/src/assets/.gitkeep +0 -0
  99. package/demo/angular/src/assets/HKGrotesk-Bold.otf +0 -0
  100. package/demo/angular/src/assets/HKGrotesk-Regular.otf +0 -0
  101. package/demo/angular/src/assets/logo.svg +16 -0
  102. package/demo/angular/src/environments/environment.prod.ts +3 -0
  103. package/demo/angular/src/environments/environment.ts +16 -0
  104. package/demo/angular/src/favicon.ico +0 -0
  105. package/demo/angular/src/index.html +15 -0
  106. package/demo/angular/src/main.ts +7 -0
  107. package/demo/angular/src/polyfills.ts +53 -0
  108. package/demo/angular/src/styles.css +198 -0
  109. package/demo/angular/tsconfig.app.json +15 -0
  110. package/demo/angular/tsconfig.json +39 -0
  111. package/demo/html/README.md +8 -0
  112. package/demo/html/assets/HKGrotesk-Bold.otf +0 -0
  113. package/demo/html/assets/HKGrotesk-Regular.otf +0 -0
  114. package/demo/html/assets/logo.svg +16 -0
  115. package/demo/html/favicon.ico +0 -0
  116. package/demo/html/index.html +416 -0
  117. package/demo/html/rocos-js-sdk.js +3 -0
  118. package/demo/html/rocos-js-sdk.js.LICENSE.txt +8 -0
  119. package/demo/html/rocos-js-sdk.js.map +1 -0
  120. package/demo/html/styles.css +190 -0
  121. package/demo/node/README.md +17 -0
  122. package/demo/node/index.js +134 -0
  123. package/demo/node/package.json +8 -0
  124. package/demo/react/.env +1 -0
  125. package/demo/react/.env.dist +1 -0
  126. package/demo/react/.eslintrc.json +46 -0
  127. package/demo/react/README.md +65 -0
  128. package/demo/react/package.json +60 -0
  129. package/demo/react/public/favicon.ico +0 -0
  130. package/demo/react/public/index.html +43 -0
  131. package/demo/react/public/logo192.png +0 -0
  132. package/demo/react/public/logo512.png +0 -0
  133. package/demo/react/public/manifest.json +25 -0
  134. package/demo/react/public/robots.txt +3 -0
  135. package/demo/react/src/App.css +190 -0
  136. package/demo/react/src/App.tsx +31 -0
  137. package/demo/react/src/actions/index.ts +8 -0
  138. package/demo/react/src/actions/sdkActions.ts +62 -0
  139. package/demo/react/src/assets/HKGrotesk-Bold.otf +0 -0
  140. package/demo/react/src/assets/HKGrotesk-Regular.otf +0 -0
  141. package/demo/react/src/assets/logo.svg +16 -0
  142. package/demo/react/src/components/AuthForm.tsx +76 -0
  143. package/demo/react/src/components/CallerBox.tsx +53 -0
  144. package/demo/react/src/components/CallerForm.tsx +98 -0
  145. package/demo/react/src/components/CommandBox.tsx +47 -0
  146. package/demo/react/src/components/CommandForm.tsx +98 -0
  147. package/demo/react/src/components/RobotsForm.tsx +51 -0
  148. package/demo/react/src/components/SubscriptionBox.tsx +55 -0
  149. package/demo/react/src/components/TelemetryForm.tsx +98 -0
  150. package/demo/react/src/components/TokenForm.tsx +39 -0
  151. package/demo/react/src/config.json +14 -0
  152. package/demo/react/src/controllers/RocosSDKController.ts +48 -0
  153. package/demo/react/src/helpers/deepEqual.ts +27 -0
  154. package/demo/react/src/hooks/useInput.ts +29 -0
  155. package/demo/react/src/index.css +11 -0
  156. package/demo/react/src/index.tsx +26 -0
  157. package/demo/react/src/react-app-env.d.ts +1 -0
  158. package/demo/react/src/reducers/sdkReducer.ts +133 -0
  159. package/demo/react/src/reportWebVitals.ts +15 -0
  160. package/demo/react/src/selectors/sdkSelector.ts +11 -0
  161. package/demo/react/src/setupTests.ts +5 -0
  162. package/demo/react/src/store.ts +14 -0
  163. package/demo/react/tsconfig.json +26 -0
  164. package/demo/sdk-sizer/dist/sdk-sizer/3rdpartylicenses.txt +975 -0
  165. package/demo/sdk-sizer/dist/sdk-sizer/favicon.ico +0 -0
  166. package/demo/sdk-sizer/dist/sdk-sizer/index.html +12 -0
  167. package/demo/sdk-sizer/dist/sdk-sizer/main.c9183649ce1856ef.js +2 -0
  168. package/demo/sdk-sizer/dist/sdk-sizer/main.c9183649ce1856ef.js.map +1 -0
  169. package/demo/sdk-sizer/dist/sdk-sizer/polyfills.701c8e5d007909aa.js +2 -0
  170. package/demo/sdk-sizer/dist/sdk-sizer/polyfills.701c8e5d007909aa.js.map +1 -0
  171. package/demo/sdk-sizer/dist/sdk-sizer/runtime.00e20e689f5284a8.js +2 -0
  172. package/demo/sdk-sizer/dist/sdk-sizer/runtime.00e20e689f5284a8.js.map +1 -0
  173. package/demo/sdk-sizer/dist/sdk-sizer/stats.json +1 -0
  174. package/demo/sdk-sizer/dist/sdk-sizer/styles.b45f7e627ac8cbce.css +2 -0
  175. package/demo/sdk-sizer/dist/sdk-sizer/styles.b45f7e627ac8cbce.css.map +1 -0
  176. package/grpc/file-accessor/filagree_grpc_pb.d.ts +41 -0
  177. package/grpc/file-accessor/filagree_grpc_pb.js +121 -0
  178. package/grpc/file-accessor/filagree_pb.d.ts +339 -0
  179. package/grpc/file-accessor/filagree_pb.js +2261 -0
  180. package/grpc/file-accessor/filagree_pb_service.d.ts +115 -0
  181. package/grpc/file-accessor/filagree_pb_service.js +257 -0
  182. package/grpc/rambo/rambo.v1_grpc_pb.d.ts +39 -0
  183. package/grpc/rambo/rambo.v1_grpc_pb.js +73 -0
  184. package/grpc/rambo/rambo.v1_pb.d.ts +365 -0
  185. package/grpc/rambo/rambo.v1_pb.js +2469 -0
  186. package/grpc/rambo/rambo.v1_pb_service.d.ts +76 -0
  187. package/grpc/rambo/rambo.v1_pb_service.js +138 -0
  188. package/grpc/rambo/uri.v1_grpc_pb.d.ts +1 -0
  189. package/grpc/rambo/uri.v1_grpc_pb.js +1 -0
  190. package/grpc/rambo/uri.v1_pb.d.ts +80 -0
  191. package/grpc/rambo/uri.v1_pb.js +563 -0
  192. package/grpc/rambo/uri.v1_pb_service.d.ts +3 -0
  193. package/grpc/rambo/uri.v1_pb_service.js +3 -0
  194. package/grpc/robot-control/conker_grpc_pb.d.ts +46 -0
  195. package/grpc/robot-control/conker_grpc_pb.js +143 -0
  196. package/grpc/robot-control/conker_pb.d.ts +168 -0
  197. package/grpc/robot-control/conker_pb.js +1287 -0
  198. package/grpc/robot-control/conker_pb_service.d.ts +126 -0
  199. package/grpc/robot-control/conker_pb_service.js +301 -0
  200. package/grpc/serviette/common.v1_grpc_pb.d.ts +1 -0
  201. package/grpc/serviette/common.v1_grpc_pb.js +1 -0
  202. package/grpc/serviette/common.v1_pb.d.ts +8 -0
  203. package/grpc/serviette/common.v1_pb.js +45 -0
  204. package/grpc/serviette/common.v1_pb_service.d.ts +3 -0
  205. package/grpc/serviette/common.v1_pb_service.js +3 -0
  206. package/grpc/serviette/serviette.v1_grpc_pb.d.ts +137 -0
  207. package/grpc/serviette/serviette.v1_grpc_pb.js +331 -0
  208. package/grpc/serviette/serviette.v1_pb.d.ts +884 -0
  209. package/grpc/serviette/serviette.v1_pb.js +6363 -0
  210. package/grpc/serviette/serviette.v1_pb_service.d.ts +278 -0
  211. package/grpc/serviette/serviette.v1_pb_service.js +699 -0
  212. package/grpc/serviette/uri.v1_grpc_pb.d.ts +1 -0
  213. package/grpc/serviette/uri.v1_grpc_pb.js +1 -0
  214. package/grpc/serviette/uri.v1_pb.d.ts +102 -0
  215. package/grpc/serviette/uri.v1_pb.js +741 -0
  216. package/grpc/serviette/uri.v1_pb_service.d.ts +3 -0
  217. package/grpc/serviette/uri.v1_pb_service.js +3 -0
  218. package/grpc/slowlane/slowlane_grpc_pb.d.ts +38 -0
  219. package/grpc/slowlane/slowlane_grpc_pb.js +132 -0
  220. package/grpc/slowlane/slowlane_pb.d.ts +373 -0
  221. package/grpc/slowlane/slowlane_pb.js +2908 -0
  222. package/grpc/slowlane/slowlane_pb_service.d.ts +112 -0
  223. package/grpc/slowlane/slowlane_pb_service.js +189 -0
  224. package/grpc/teletubby/teletubby_grpc_pb.d.ts +73 -0
  225. package/grpc/teletubby/teletubby_grpc_pb.js +231 -0
  226. package/grpc/teletubby/teletubby_pb.d.ts +647 -0
  227. package/grpc/teletubby/teletubby_pb.js +4786 -0
  228. package/grpc/teletubby/teletubby_pb_service.d.ts +193 -0
  229. package/grpc/teletubby/teletubby_pb_service.js +436 -0
  230. package/grpc/video/pigeon_grpc_pb.d.ts +59 -0
  231. package/grpc/video/pigeon_grpc_pb.js +180 -0
  232. package/grpc/video/pigeon_pb.d.ts +237 -0
  233. package/grpc/video/pigeon_pb.js +1775 -0
  234. package/grpc/video/pigeon_pb_service.d.ts +152 -0
  235. package/grpc/video/pigeon_pb_service.js +292 -0
  236. package/helpers/arrayRemove.js +6 -2
  237. package/helpers/arrayUnique.js +6 -2
  238. package/helpers/average.js +7 -2
  239. package/helpers/cleanObject.js +19 -17
  240. package/helpers/enviroment.js +11 -4
  241. package/helpers/flattenCallsignsLookup.d.ts +1 -1
  242. package/helpers/flattenCallsignsLookup.js +5 -1
  243. package/helpers/flattenObject.js +5 -1
  244. package/helpers/formatServiceUrl.js +5 -1
  245. package/helpers/generateUUID.js +7 -3
  246. package/helpers/getSubscriptionsDifference.d.ts +3 -3
  247. package/helpers/getSubscriptionsDifference.js +10 -6
  248. package/helpers/getUniqueConfigKey.js +6 -1
  249. package/helpers/getUniqueId.js +7 -3
  250. package/helpers/getUnixTimeMs.js +5 -1
  251. package/helpers/index.d.ts +1 -1
  252. package/helpers/index.js +15 -3
  253. package/helpers/nanosecondToMillisecond.d.ts +1 -1
  254. package/helpers/nanosecondToMillisecond.js +6 -5
  255. package/helpers/randomString.js +5 -1
  256. package/helpers/standardDeviation.js +8 -4
  257. package/helpers/stringToUint8Array.js +7 -3
  258. package/helpers/uint8ArrayToString.js +8 -3
  259. package/index.js +19 -7
  260. package/logger/RocosLogger.js +44 -18
  261. package/models/ExportDataQuery.js +5 -1
  262. package/models/ExternalProject.js +5 -1
  263. package/models/IBaseService.d.ts +0 -1
  264. package/models/IBaseService.js +2 -1
  265. package/models/IConfigGroup.js +2 -1
  266. package/models/IDebugLevel.d.ts +1 -1
  267. package/models/IDebugLevel.js +2 -1
  268. package/models/IExportDataQuery.js +2 -1
  269. package/models/IFunctionConfig.js +2 -1
  270. package/models/IInvitation.d.ts +1 -1
  271. package/models/IInvitation.js +2 -1
  272. package/models/IInvitationExists.js +2 -1
  273. package/models/IOperation.js +2 -1
  274. package/models/IPersonalAccessToken.js +2 -1
  275. package/models/IProject.js +2 -1
  276. package/models/IProjectApplication.js +2 -1
  277. package/models/IRobot.d.ts +0 -1
  278. package/models/IRobot.js +2 -1
  279. package/models/IRobotConfig.js +2 -1
  280. package/models/IRobotPlugin.js +2 -1
  281. package/models/IRobotTemplate.js +2 -1
  282. package/models/IRocosSDKConfig.d.ts +9 -3
  283. package/models/IRocosSDKConfig.js +2 -1
  284. package/models/ISignupParams.d.ts +8 -0
  285. package/models/ISignupParams.js +2 -0
  286. package/models/ISource.js +2 -1
  287. package/models/IStream.js +2 -1
  288. package/models/IStreamConfig.js +2 -1
  289. package/models/IStreamOptions.js +2 -1
  290. package/models/IStreamSource.js +2 -1
  291. package/models/ISubscriberStatus.js +2 -1
  292. package/models/ITelemetryStreamConfig.js +2 -1
  293. package/models/IToken.d.ts +3 -7
  294. package/models/IToken.js +2 -1
  295. package/models/IWidget.js +2 -1
  296. package/models/IWidgetLineGroup.js +2 -1
  297. package/models/ResponseLevelEnum.d.ts +0 -4
  298. package/models/ResponseLevelEnum.js +5 -6
  299. package/models/Robot.d.ts +0 -1
  300. package/models/Robot.js +5 -1
  301. package/models/RobotConfig.js +5 -1
  302. package/models/RobotPlugin.js +5 -1
  303. package/models/RobotTemplate.js +14 -9
  304. package/models/RocosError.js +6 -2
  305. package/models/ServiceEnum.js +5 -2
  306. package/models/Stream.js +8 -4
  307. package/models/StreamOptions.js +5 -1
  308. package/models/StreamSource.js +7 -3
  309. package/models/SubscriberStatusEnum.js +5 -2
  310. package/models/Token.d.ts +4 -36
  311. package/models/Token.js +11 -74
  312. package/models/Widget.js +8 -4
  313. package/models/WidgetLineGroup.js +5 -1
  314. package/models/asset-storage/AssetModelItem.js +2 -1
  315. package/models/caller/IRocosCallerMessageChunk.d.ts +2 -3
  316. package/models/caller/IRocosCallerMessageChunk.js +2 -1
  317. package/models/caller/IRocosCallerMessageChunks.d.ts +3 -2
  318. package/models/caller/IRocosCallerMessageChunks.js +2 -1
  319. package/models/caller/IRocosCallerMessageHeartbeat.d.ts +2 -3
  320. package/models/caller/IRocosCallerMessageHeartbeat.js +2 -1
  321. package/models/caller/IRocosCallerMessageResponse.d.ts +2 -3
  322. package/models/caller/IRocosCallerMessageResponse.js +2 -1
  323. package/models/caller/IRocosCallerMessageResponseAck.d.ts +2 -16
  324. package/models/caller/IRocosCallerMessageResponseAck.js +2 -13
  325. package/models/caller/IRocosCallerMessageResponseResult.d.ts +2 -15
  326. package/models/caller/IRocosCallerMessageResponseResult.js +2 -12
  327. package/models/caller/IRocosCallerMessageResponseUid.d.ts +2 -10
  328. package/models/caller/IRocosCallerMessageResponseUid.js +2 -7
  329. package/models/caller/IRocosCallerMessageResponses.d.ts +3 -2
  330. package/models/caller/IRocosCallerMessageResponses.js +2 -1
  331. package/models/caller/RocosCallerResultStatus.d.ts +1 -11
  332. package/models/caller/RocosCallerResultStatus.js +5 -12
  333. package/models/callsigns/CallsignsEnums.d.ts +3 -3
  334. package/models/callsigns/CallsignsEnums.js +14 -11
  335. package/models/callsigns/CallsignsLookup.js +15 -10
  336. package/models/callsigns/CallsignsQuery.js +5 -1
  337. package/models/callsigns/CallsignsQueryPredicate.js +5 -1
  338. package/models/command/IRocosCommandMessageHeartbeat.d.ts +2 -1
  339. package/models/command/IRocosCommandMessageHeartbeat.js +2 -1
  340. package/models/command/IRocosCommandMessageResponse.d.ts +2 -55
  341. package/models/command/IRocosCommandMessageResponse.js +2 -29
  342. package/models/command/RocosCommandResultStatus.d.ts +1 -11
  343. package/models/command/RocosCommandResultStatus.js +5 -12
  344. package/models/file/FileEnums.d.ts +4 -4
  345. package/models/file/FileEnums.js +12 -9
  346. package/models/index.d.ts +31 -5
  347. package/models/index.js +113 -75
  348. package/models/integrations/Overlay.js +2 -1
  349. package/models/integrations/Plan.js +2 -1
  350. package/models/maps/Map.d.ts +0 -1
  351. package/models/maps/Map.js +2 -1
  352. package/models/message/IRocosCallerMessage.js +2 -1
  353. package/models/message/IRocosChangeMessage.js +2 -1
  354. package/models/message/IRocosCommandMessage.js +2 -1
  355. package/models/message/IRocosControlMessage.js +2 -1
  356. package/models/message/IRocosOpResultMessage.d.ts +2 -2
  357. package/models/message/IRocosOpResultMessage.js +2 -1
  358. package/models/message/IRocosSearchMessage.js +2 -1
  359. package/models/message/IRocosSearchRowMessage.js +2 -1
  360. package/models/message/IRocosSearchStatusMessage.js +2 -1
  361. package/models/message/IRocosTelemetryMessage.d.ts +7 -12
  362. package/models/message/IRocosTelemetryMessage.js +2 -1
  363. package/models/message/IStreamStatusMessage.js +2 -1
  364. package/models/message/RocosCallerMessage.d.ts +4 -2
  365. package/models/message/RocosCallerMessage.js +15 -24
  366. package/models/message/RocosCommandMessage.d.ts +3 -2
  367. package/models/message/RocosCommandMessage.js +8 -5
  368. package/models/message/RocosControlMessage.d.ts +1 -1
  369. package/models/message/RocosControlMessage.js +10 -6
  370. package/models/message/RocosOpResultMessage.d.ts +2 -3
  371. package/models/message/RocosOpResultMessage.js +10 -6
  372. package/models/message/RocosSearchMessage.d.ts +1 -1
  373. package/models/message/RocosSearchMessage.js +9 -5
  374. package/models/message/RocosSearchRowMessage.d.ts +1 -1
  375. package/models/message/RocosSearchRowMessage.js +12 -8
  376. package/models/message/RocosTelemetryMessage.d.ts +23 -9
  377. package/models/message/RocosTelemetryMessage.js +93 -51
  378. package/models/params/ICallerParams.d.ts +1 -2
  379. package/models/params/ICallerParams.js +2 -1
  380. package/models/params/ICommandParams.js +2 -1
  381. package/models/params/IControlParams.d.ts +1 -1
  382. package/models/params/IControlParams.js +2 -1
  383. package/models/params/IFileAccessorParams.js +2 -1
  384. package/models/params/ISearchParams.js +2 -1
  385. package/models/params/ITelemetryParams.d.ts +1 -1
  386. package/models/params/ITelemetryParams.js +2 -1
  387. package/models/params/IWebRTCSignallingParams.js +2 -1
  388. package/models/projects/ProjectUser.js +2 -1
  389. package/models/schedule/IScheduleAction.d.ts +1 -1
  390. package/models/schedule/IScheduleAction.js +5 -2
  391. package/models/schedule/IScheduleInfo.js +2 -1
  392. package/models/schedule/IScheduleJob.js +2 -1
  393. package/models/search/SearchQueryFilter.js +5 -1
  394. package/models/search/SearchStreamQuery.js +5 -1
  395. package/models/stream/IBaseStream.js +2 -1
  396. package/models/stream/ICallerStream.js +2 -1
  397. package/models/stream/ICommandStream.js +2 -1
  398. package/models/stream/IControlStream.js +2 -1
  399. package/models/stream/IFileAccessorStream.d.ts +2 -1
  400. package/models/stream/IFileAccessorStream.js +2 -1
  401. package/models/stream/ISearchStream.js +2 -1
  402. package/models/stream/ITelemetryStream.js +2 -1
  403. package/models/stream/IWebRTCSignallingStream.d.ts +16 -51
  404. package/models/stream/IWebRTCSignallingStream.js +7 -1
  405. package/models/types.d.ts +5 -5
  406. package/models/types.js +2 -1
  407. package/node/RocosSDKNode.js +80 -75
  408. package/node/index.js +19 -7
  409. package/package.json +9 -6
  410. package/services/AssetStorageService.d.ts +0 -7
  411. package/services/AssetStorageService.js +24 -29
  412. package/services/AuthService.d.ts +27 -59
  413. package/services/AuthService.js +86 -167
  414. package/services/BaseServiceAbstract.d.ts +13 -11
  415. package/services/BaseServiceAbstract.js +19 -17
  416. package/services/CallerService.d.ts +17 -5
  417. package/services/CallerService.js +65 -22
  418. package/services/CallerServiceNode.js +8 -4
  419. package/services/CommandService.d.ts +17 -5
  420. package/services/CommandService.js +62 -19
  421. package/services/CommandServiceNode.js +8 -4
  422. package/services/ConfigGroupService.js +21 -17
  423. package/services/ControlService.d.ts +17 -5
  424. package/services/ControlService.js +65 -22
  425. package/services/ControlServiceNode.js +8 -4
  426. package/services/DashboardService.js +24 -20
  427. package/services/EventService.js +17 -13
  428. package/services/FileAccessorService.d.ts +18 -4
  429. package/services/FileAccessorService.js +62 -14
  430. package/services/FileAccessorServiceNode.js +8 -4
  431. package/services/FunctionService.js +21 -17
  432. package/services/IntegrationService.js +19 -14
  433. package/services/MapService.d.ts +23 -36
  434. package/services/MapService.js +40 -70
  435. package/services/PlatformTimeService.js +12 -8
  436. package/services/ProfileService.js +40 -36
  437. package/services/ProjectService.js +27 -23
  438. package/services/RobotService.d.ts +6 -2
  439. package/services/RobotService.js +55 -48
  440. package/services/ScheduleService.js +14 -10
  441. package/services/SearchService.d.ts +17 -4
  442. package/services/SearchService.js +59 -24
  443. package/services/SearchServiceNode.js +8 -4
  444. package/services/SpotProvisioningService.d.ts +1 -1
  445. package/services/SpotProvisioningService.js +16 -16
  446. package/services/SpotProvisioningServiceNode.d.ts +1 -1
  447. package/services/SpotProvisioningServiceNode.js +16 -16
  448. package/services/StreamService.js +30 -26
  449. package/services/TelemetryService.d.ts +17 -14
  450. package/services/TelemetryService.js +93 -91
  451. package/services/TelemetryServiceNode.js +8 -4
  452. package/services/TimeSyncerService.js +13 -9
  453. package/services/UserService.js +41 -37
  454. package/services/WebRTCSignallingService.d.ts +4 -4
  455. package/services/WebRTCSignallingService.js +27 -24
  456. package/services/WorkflowService.js +20 -16
  457. package/services/index.js +38 -26
  458. package/store/RocosStore.js +15 -9
  459. package/utils/axisangle.d.ts +18 -0
  460. package/utils/axisangle.js +48 -0
  461. package/utils/eulerangles.d.ts +22 -0
  462. package/utils/eulerangles.js +133 -0
  463. package/utils/helperfunctions.d.ts +5 -0
  464. package/utils/helperfunctions.js +50 -0
  465. package/utils/localtransform.d.ts +17 -0
  466. package/utils/localtransform.js +50 -0
  467. package/utils/localtransformtree.d.ts +17 -0
  468. package/utils/localtransformtree.js +88 -0
  469. package/utils/misc.d.ts +17 -0
  470. package/utils/misc.js +23 -0
  471. package/utils/positionvector.d.ts +13 -0
  472. package/utils/positionvector.js +79 -0
  473. package/utils/quaternion.d.ts +20 -0
  474. package/utils/quaternion.js +62 -0
  475. package/utils/rotationmatrix.d.ts +23 -0
  476. package/utils/rotationmatrix.js +262 -0
  477. package/utils/transformationmatrix.d.ts +12 -0
  478. package/utils/transformationmatrix.js +123 -0
  479. package/utils/vector3.d.ts +11 -0
  480. package/utils/vector3.js +61 -0
  481. package/constants/auth.d.ts +0 -2
  482. package/constants/auth.js +0 -2
  483. package/grpc/conker_pb.client.d.ts +0 -78
  484. package/grpc/conker_pb.client.js +0 -55
  485. package/grpc/conker_pb.d.ts +0 -141
  486. package/grpc/conker_pb.grpc-client.d.ts +0 -81
  487. package/grpc/conker_pb.grpc-client.js +0 -58
  488. package/grpc/conker_pb.js +0 -104
  489. package/grpc/filagree_pb.client.d.ts +0 -68
  490. package/grpc/filagree_pb.client.js +0 -48
  491. package/grpc/filagree_pb.d.ts +0 -404
  492. package/grpc/filagree_pb.grpc-client.d.ts +0 -69
  493. package/grpc/filagree_pb.grpc-client.js +0 -51
  494. package/grpc/filagree_pb.js +0 -329
  495. package/grpc/google/protobuf/descriptor_pb.d.ts +0 -1798
  496. package/grpc/google/protobuf/descriptor_pb.js +0 -2378
  497. package/grpc/google/protobuf/empty_pb.d.ts +0 -23
  498. package/grpc/google/protobuf/empty_pb.js +0 -47
  499. package/grpc/pigeon_pb.client.d.ts +0 -96
  500. package/grpc/pigeon_pb.client.js +0 -72
  501. package/grpc/pigeon_pb.d.ts +0 -207
  502. package/grpc/pigeon_pb.grpc-client.d.ts +0 -98
  503. package/grpc/pigeon_pb.grpc-client.js +0 -68
  504. package/grpc/pigeon_pb.js +0 -144
  505. package/grpc/rambo.uri.v1_pb.d.ts +0 -73
  506. package/grpc/rambo.uri.v1_pb.js +0 -48
  507. package/grpc/rambo.v1_pb.client.d.ts +0 -66
  508. package/grpc/rambo.v1_pb.client.js +0 -48
  509. package/grpc/rambo.v1_pb.d.ts +0 -392
  510. package/grpc/rambo.v1_pb.grpc-client.d.ts +0 -56
  511. package/grpc/rambo.v1_pb.grpc-client.js +0 -44
  512. package/grpc/rambo.v1_pb.js +0 -272
  513. package/grpc/serviette.uri.v1_pb.d.ts +0 -89
  514. package/grpc/serviette.uri.v1_pb.js +0 -62
  515. package/grpc/serviette.v1_pb.client.d.ts +0 -225
  516. package/grpc/serviette.v1_pb.client.js +0 -174
  517. package/grpc/serviette.v1_pb.d.ts +0 -827
  518. package/grpc/serviette.v1_pb.grpc-client.d.ts +0 -215
  519. package/grpc/serviette.v1_pb.grpc-client.js +0 -162
  520. package/grpc/serviette.v1_pb.js +0 -553
  521. package/grpc/slowlane_pb.client.d.ts +0 -61
  522. package/grpc/slowlane_pb.client.js +0 -41
  523. package/grpc/slowlane_pb.d.ts +0 -303
  524. package/grpc/slowlane_pb.grpc-client.d.ts +0 -64
  525. package/grpc/slowlane_pb.grpc-client.js +0 -44
  526. package/grpc/slowlane_pb.js +0 -185
  527. package/grpc/teletubby_pb.client.d.ts +0 -145
  528. package/grpc/teletubby_pb.client.js +0 -104
  529. package/grpc/teletubby_pb.d.ts +0 -634
  530. package/grpc/teletubby_pb.grpc-client.d.ts +0 -152
  531. package/grpc/teletubby_pb.grpc-client.js +0 -100
  532. package/grpc/teletubby_pb.js +0 -1264
  533. package/helpers/cleanObject.spec.d.ts +0 -1
  534. package/helpers/cleanObject.spec.js +0 -53
  535. package/helpers/flattenObject.spec.d.ts +0 -1
  536. package/helpers/flattenObject.spec.js +0 -29
  537. package/helpers/flattenOneOf.d.ts +0 -67
  538. package/helpers/flattenOneOf.js +0 -29
  539. package/helpers/flattenOneOf.spec.d.ts +0 -1
  540. package/helpers/flattenOneOf.spec.js +0 -157
  541. package/helpers/formatServiceUrl.spec.d.ts +0 -1
  542. package/helpers/formatServiceUrl.spec.js +0 -16
  543. package/helpers/standardDeviation.spec.d.ts +0 -1
  544. package/helpers/standardDeviation.spec.js +0 -11
  545. package/models/CallsignStatus.d.ts +0 -6
  546. package/models/CallsignStatus.js +0 -7
  547. package/models/IRobotSettings.d.ts +0 -28
  548. package/models/IRobotSettings.js +0 -1
  549. package/models/Token.spec.d.ts +0 -1
  550. package/models/Token.spec.js +0 -108
  551. package/models/caller/IRocosCallerMessageResponseReturn.d.ts +0 -8
  552. package/models/caller/IRocosCallerMessageResponseReturn.js +0 -1
  553. package/models/caller/RocosResponseLevel.d.ts +0 -6
  554. package/models/caller/RocosResponseLevel.js +0 -7
  555. package/models/caller/index.d.ts +0 -10
  556. package/models/caller/index.js +0 -10
  557. package/models/command/index.d.ts +0 -4
  558. package/models/command/index.js +0 -4
  559. package/models/message/index.d.ts +0 -17
  560. package/models/message/index.js +0 -17
  561. package/services/AuthService.spec.d.ts +0 -1
  562. package/services/AuthService.spec.js +0 -163
  563. package/services/BaseStreamService.d.ts +0 -18
  564. package/services/BaseStreamService.js +0 -47
  565. package/services/PlatformTimeService.spec.d.ts +0 -1
  566. package/services/PlatformTimeService.spec.js +0 -180
  567. package/services/TelemetryService.spec.d.ts +0 -1
  568. package/services/TelemetryService.spec.js +0 -37
@@ -0,0 +1,190 @@
1
+ /* You can add global styles to this file, and also import other style files */
2
+ :root {
3
+ --color-text: #333;
4
+ --color-link: #61dafb;
5
+ --color-link-active: #0C8DFF;
6
+ --color-headline: #fff;
7
+ --color-background: #000000;
8
+ --color-button: #0C8DFF;
9
+ --color-button-hover: #0D5EA6;
10
+ }
11
+
12
+ @font-face {
13
+ font-family: HKGrotesk;
14
+ src: url(assets/HKGrotesk-Bold.otf);
15
+ }
16
+
17
+ @font-face {
18
+ font-family: HKGrotesk-Regular;
19
+ src: url(assets/HKGrotesk-Regular.otf);
20
+ }
21
+
22
+
23
+ @import url('https://fonts.googleapis.com/css2?family=Roboto+Mono&display=swap');
24
+
25
+
26
+ h3 {
27
+ margin:0px;
28
+ margin-bottom: 16px;
29
+ }
30
+
31
+ body {
32
+ margin: 0;
33
+ font-family: HKGrotesk;
34
+ -webkit-font-smoothing: antialiased;
35
+ -moz-osx-font-smoothing: grayscale;
36
+ background-color: #F4F4F4;
37
+ }
38
+
39
+ code {
40
+ font-family: 'Roboto Mono', monospace;
41
+ }
42
+
43
+ .app {}
44
+
45
+ .app header {
46
+ top: 0;
47
+ left: 0;
48
+ /*width: 100%;*/
49
+ height: 60px;
50
+ background-color: var(--color-background);
51
+ text-transform: uppercase;
52
+ font-size: 20px;
53
+ position: fixed;
54
+ right: 0;
55
+ z-index: 10;
56
+ padding: 0 60px;
57
+ display: flex;
58
+ justify-content: space-between;
59
+ }
60
+
61
+ .app header .logo {
62
+ margin-top: 15px;
63
+ text-decoration: none;
64
+ color: var(--color-text);
65
+ line-height: 60px;
66
+ background-image: url(./assets/logo.svg);
67
+ background-repeat: no-repeat;
68
+ background-position: left center;
69
+ height: 30px;
70
+ width: 226px;
71
+ }
72
+
73
+ .app header h1 {
74
+
75
+ color: var(--color-headline);
76
+ text-transform: initial;
77
+ font-size: 20px;
78
+ line-height: 60px;
79
+ margin: 0;
80
+ }
81
+
82
+ .app a {
83
+ color: var(--color-link);
84
+ }
85
+
86
+ .app .content {
87
+ padding: 80px 40px;
88
+ height: 100%;
89
+ }
90
+
91
+ .app .content .boxRow {
92
+ display: flex;
93
+ justify-content: flex-start;
94
+ }
95
+
96
+ .app .content .boxRow .boxColumn {
97
+ width: 25%;
98
+ }
99
+
100
+ .app .content .box {
101
+ border-radius: 4px;
102
+ margin: 24px 24px 24px 0px;
103
+ border: 1px solid #D2D3D4;
104
+ overflow: hidden;
105
+ background-color: #ffffff;
106
+ min-width: 200px;
107
+ }
108
+
109
+ .app .content .box .boxContent {
110
+ padding: 24px;
111
+ }
112
+
113
+ .app .content .box label {
114
+ display: block;
115
+ padding: 5px 0 5px 0;
116
+ }
117
+
118
+ .app .content .box button {
119
+ display: inline-block;
120
+ font-family: HKGrotesk;
121
+ color: var(--color-headline);
122
+ text-align: center;
123
+ vertical-align: middle;
124
+ -webkit-user-select: none;
125
+ -moz-user-select: none;
126
+ -ms-user-select: none;
127
+ user-select: none;
128
+ background-color: var(--color-button);
129
+ border: none;
130
+ padding: .375rem .75rem;
131
+ font-size: 15px;
132
+ line-height: 1.5;
133
+ border-radius: 3px;
134
+ transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;
135
+ cursor: pointer;
136
+ }
137
+ .app .content .box button:hover {
138
+ background-color: var(--color-button-hover);
139
+ }
140
+ .app .content .box button:focus {
141
+ outline: 0;
142
+ }
143
+ .app .content .box pre {
144
+ font-family: 'Roboto Mono', monospace;
145
+ font-size: 12px;
146
+ background-color: #E2F1FF;
147
+ padding: 20px;
148
+ margin: auto;
149
+ overflow: auto;
150
+ overflow-wrap: break-word;
151
+ white-space: pre-wrap; /* css-3 */
152
+ white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
153
+ white-space: -o-pre-wrap; /* Opera 7 */
154
+ word-wrap: break-word;
155
+ }
156
+
157
+ .app .content .box input[type=text],
158
+ .app .content .box textarea {
159
+ margin-bottom:12px;
160
+ font-family: HKGrotesk-Regular;
161
+ display: block;
162
+ width: 90%;
163
+ height: calc(1.5em + .75rem + 2px);
164
+ padding: 0 .375rem 0 .75rem;
165
+ font-size: 15px;
166
+ font-weight: 500;
167
+ line-height: 1.5;
168
+ color: #1F252D;
169
+ background-color: #fff;
170
+ background-clip: padding-box;
171
+ border: 1px solid #ffffff;
172
+ border-bottom: 1px solid #D2D3D4 !important;
173
+ }
174
+
175
+ input:focus {
176
+ outline: 0;
177
+ border-width: 0 0 2px;
178
+ border-color: blue;
179
+ }
180
+
181
+ textarea:focus {
182
+ outline: 0;
183
+ border-width: 0 0 2px;
184
+ border-color: blue;
185
+ }
186
+
187
+
188
+ .app .content .box textarea {
189
+ height: 100px;
190
+ }
@@ -0,0 +1,31 @@
1
+ import React from 'react'
2
+ import './App.css'
3
+ import { AuthForm } from './components/AuthForm'
4
+ import { TokenForm } from './components/TokenForm'
5
+ import { RobotsForm } from './components/RobotsForm'
6
+ import { TelemetryForm } from './components/TelemetryForm'
7
+ import { CallerForm } from './components/CallerForm'
8
+ import { CommandForm } from './components/CommandForm'
9
+
10
+ function App(): JSX.Element {
11
+ return (
12
+ <div className="app">
13
+ <header>
14
+ <div className="logo" />
15
+ <h1>Rocos JS SDK - React Demo</h1>
16
+ </header>
17
+ <div className="content">
18
+ <div className="boxRow">
19
+ <AuthForm />
20
+ <TokenForm />
21
+ <RobotsForm />
22
+ <TelemetryForm />
23
+ <CallerForm />
24
+ <CommandForm />
25
+ </div>
26
+ </div>
27
+ </div>
28
+ )
29
+ }
30
+
31
+ export default App
@@ -0,0 +1,8 @@
1
+ import { ActionCreator, AnyAction } from 'redux'
2
+
3
+ import * as SdkActions from './sdkActions'
4
+
5
+ type ValueOf<T> = T[keyof T]
6
+ type ExtractActions<T> = ReturnType<Extract<ValueOf<T>, ActionCreator<AnyAction>>>
7
+
8
+ export type AppActions = ExtractActions<typeof SdkActions>
@@ -0,0 +1,62 @@
1
+ import { createAsyncThunk } from '@reduxjs/toolkit'
2
+ import RocosSDKController from '../controllers/RocosSDKController'
3
+
4
+ type ITokenResponse = {
5
+ tokenResponse: string
6
+ token: string
7
+ }
8
+
9
+ export const getTokenResponse = createAsyncThunk<
10
+ // Return type of the payload creator
11
+ ITokenResponse | undefined,
12
+ // First argument to the payload creator
13
+ void,
14
+ // Types for ThunkAPI
15
+ {
16
+ rejectValue: string
17
+ }
18
+ >('sdk/getTokenResponse', async (_unknown, { rejectWithValue }) => {
19
+ try {
20
+ const sdkInstance = RocosSDKController.getInstance()
21
+ if (sdkInstance) {
22
+ const token = await sdkInstance.getAuthService().getToken()
23
+ return {
24
+ tokenResponse: JSON.stringify(token, null, 2),
25
+ token: token.value,
26
+ }
27
+ }
28
+ } catch (e: any) {
29
+ return rejectWithValue(e.message)
30
+ }
31
+ })
32
+
33
+ type IRobotsResponse = {
34
+ robotsResponse: string
35
+ callsigns: string[]
36
+ projectId: string
37
+ }
38
+
39
+ export const getRobotsResponse = createAsyncThunk<
40
+ // Return type of the payload creator
41
+ IRobotsResponse | undefined,
42
+ // First argument to the payload creator
43
+ string,
44
+ // Types for ThunkAPI
45
+ {
46
+ rejectValue: string
47
+ }
48
+ >('sdk/getRobotsResponse', async (projectId: string, { rejectWithValue }) => {
49
+ try {
50
+ const sdkInstance = RocosSDKController.getInstance()
51
+ if (sdkInstance) {
52
+ const robots = await sdkInstance.getRobotService().getRobots(projectId)
53
+ return {
54
+ robotsResponse: JSON.stringify(robots, null, 2),
55
+ callsigns: robots.map((item) => item.callsign),
56
+ projectId: projectId,
57
+ }
58
+ }
59
+ } catch (e: any) {
60
+ return rejectWithValue(e.message)
61
+ }
62
+ })
@@ -0,0 +1,16 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="226px" height="30px" viewBox="0 0 474 63" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <title>Group Copy</title>
4
+ <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
5
+ <g id="A3-Copy-21" transform="translate(-719.000000, -270.000000)">
6
+ <g id="Group-Copy" transform="translate(719.000000, 270.000000)">
7
+ <path d="M126.491433,0.426869388 C143.985236,0.426869388 158.217862,14.3046506 158.217862,31.4889242 C158.217862,48.6731979 143.985236,62.5509791 126.491433,62.5509791 C108.997631,62.5509791 94.7650041,48.6731979 94.7650041,31.4889242 C94.7650041,14.3046506 108.997631,0.426869388 126.491433,0.426869388 Z M126.491433,9.67223564 C114.034383,9.67223564 103.987046,19.4690743 103.987046,31.4889242 C103.987046,43.5087742 114.034383,53.3056128 126.491433,53.3056128 C138.948483,53.3056128 148.99582,43.5087742 148.99582,31.4889242 C148.99582,19.4690743 138.948483,9.67223564 126.491433,9.67223564 Z" id="Combined-Shape" fill="#FFFFFF" fill-rule="nonzero"></path>
8
+ <path d="M337.79178,0.426869388 C343.319953,0.426869388 348.653618,1.81663216 353.370727,4.42399861 C359.726031,7.93687233 364.687537,13.5120971 367.351307,20.1862391 C368.777119,23.7586488 369.518209,27.5771359 369.518209,31.4889242 C369.518209,48.6731979 355.285583,62.5509791 337.79178,62.5509791 C320.297978,62.5509791 306.065351,48.6731979 306.065351,31.4889242 C306.065351,14.3046506 320.297978,0.426869388 337.79178,0.426869388 Z M337.79178,9.67223564 C325.33473,9.67223564 315.287393,19.4690743 315.287393,31.4889242 C315.287393,43.5087742 325.33473,53.3056128 337.79178,53.3056128 C350.24883,53.3056128 360.296167,43.5087742 360.296167,31.4889242 C360.296167,28.7595638 359.781217,26.1062694 358.789232,23.6208245 C356.922752,18.9443133 353.42079,15.0091721 348.91807,12.5203082 C345.558167,10.6631326 341.755278,9.67223564 337.79178,9.67223564 Z" id="Combined-Shape" fill="#FFFFFF" fill-rule="nonzero"></path>
9
+ <path d="M251.887886,3.39830446 C254.199589,4.46926815 255.207597,7.21620102 254.139335,9.53375074 C253.071073,11.8513005 250.33107,12.8618581 248.019367,11.7908944 C245.022997,10.4027385 241.735492,9.67223564 238.331213,9.67223564 C225.874163,9.67223564 215.826826,19.4690743 215.826826,31.4889242 C215.826826,43.5087742 225.874163,53.3056128 238.331213,53.3056128 C241.84873,53.3056128 245.241201,52.525608 248.315213,51.0472968 C250.611303,49.9430927 253.365528,50.9140152 254.466947,53.2159129 C255.568365,55.5178107 254.599892,58.2790018 252.303801,59.3832059 C247.990028,61.4577261 243.235149,62.5509791 238.331213,62.5509791 C220.83741,62.5509791 206.604784,48.6731979 206.604784,31.4889242 C206.604784,14.3046506 220.83741,0.426869388 238.331213,0.426869388 C243.076712,0.426869388 247.683601,1.45054696 251.887886,3.39830446 Z" id="Oval-9-Copy-29" fill="#FFFFFF" fill-rule="nonzero"></path>
10
+ <path d="M433.42187,0.426869388 C435.968466,0.426869388 438.032891,2.49651512 438.032891,5.04955251 C438.032891,7.60258991 435.968466,9.67223564 433.42187,9.67223564 C428.500289,9.67223564 424.565956,13.4993645 424.565956,18.1495355 C424.565956,22.7997065 428.500289,26.6268354 433.42187,26.6268354 L455.144562,26.6268354 C465.090903,26.6268354 473.222517,34.6046047 473.222517,44.4306934 C473.222517,48.1378808 472.053991,51.6822638 469.919383,54.6456734 C466.551263,59.3215285 461.080609,62.1533595 455.144562,62.1533595 C452.597965,62.1533595 450.533541,60.0837137 450.533541,57.5306763 C450.533541,54.977639 452.597965,52.9079932 455.144562,52.9079932 C458.105555,52.9079932 460.800748,51.5128526 462.442986,49.2329864 C463.454775,47.8283504 464.000475,46.1731293 464.000475,44.4306934 C464.000475,39.7559667 460.041815,35.8722016 455.144562,35.8722016 L433.42187,35.8722016 C423.468285,35.8722016 415.343914,27.9692061 415.343914,18.1495355 C415.343914,8.32986488 423.468285,0.426869388 433.42187,0.426869388 Z" id="Oval-9-Copy-27" fill="#FFFFFF" fill-rule="nonzero"></path>
11
+ <path d="M1.07328879,7.8443144 C-0.559940896,5.88547527 -0.299988397,2.97017951 1.65390894,1.33281907 C3.60780628,-0.304541366 6.51574729,-0.0439313973 8.14897697,1.91490773 L28.453421,26.2673548 C30.9627477,29.2769544 28.8282187,33.8547413 24.9155769,33.8547413 L21.1297826,33.8547413 C15.4358282,33.8547413 10.8710636,38.305698 10.8710636,43.7310684 C10.8710636,49.1564389 15.4358282,53.6073956 21.1297826,53.6073956 L42.7260139,53.6073956 C45.2726105,53.6073956 47.3370349,55.6770414 47.3370349,58.2300788 C47.3370349,60.7831161 45.2726105,62.8527619 42.7260139,62.8527619 L21.1297826,62.8527619 C10.3990758,62.8527619 1.64902174,54.3208625 1.64902174,43.7310684 C1.64902174,35.0055819 7.58941243,27.6771952 15.6835307,25.3673326 L1.07328879,7.8443144 Z" id="Oval-9-Copy-30" fill="#FFFFFF" fill-rule="nonzero" transform="translate(23.668517, 31.554789) scale(-1, -1) translate(-23.668517, -31.554789) "></path>
12
+ <ellipse id="Oval-3" fill="#1EE289" cx="4.61102095" cy="58.1687627" rx="4.61102095" ry="4.62268313"></ellipse>
13
+ </g>
14
+ </g>
15
+ </g>
16
+ </svg>
@@ -0,0 +1,76 @@
1
+ import React, { useCallback } from 'react'
2
+ import { useDispatch, useSelector } from 'react-redux'
3
+ import { useInput } from '../hooks/useInput'
4
+ import { createSdk } from '../reducers/sdkReducer'
5
+ import { isSDKCreated } from '../selectors/sdkSelector'
6
+ import config from '../config.json'
7
+ import RocosSDKController from '../controllers/RocosSDKController'
8
+
9
+ export const AuthForm = (): JSX.Element => {
10
+ const { value: url, bind: bindUrl } = useInput(config.url, 'Hostname')
11
+ const { value: appId, bind: bindAppId } = useInput(config.appId, 'Application ID')
12
+ const { value: appKey, bind: bindAppKey } = useInput(config.appKey, 'Application Key')
13
+
14
+ const sdkExists = useSelector(isSDKCreated)
15
+ const dispatch = useDispatch()
16
+
17
+ const createSdkClient: React.MouseEventHandler = useCallback(
18
+ (evt) => {
19
+ evt.preventDefault()
20
+ if (url && appId && appKey) {
21
+ const sdkInstanceExists = RocosSDKController.checkIfInstanceExists({ url, appId, appKey })
22
+ if (!sdkInstanceExists) {
23
+ dispatch(createSdk(false))
24
+ }
25
+ RocosSDKController.createInstance({ url, appId, appKey })
26
+ dispatch(createSdk(true))
27
+ }
28
+ },
29
+ [appId, appKey, url, dispatch]
30
+ )
31
+
32
+ const removeSdkClient: React.MouseEventHandler = useCallback(
33
+ (evt) => {
34
+ evt.preventDefault()
35
+ RocosSDKController.removeInstance()
36
+ dispatch(createSdk(false))
37
+ },
38
+ [dispatch]
39
+ )
40
+
41
+ return (
42
+ <div className="boxColumn">
43
+ <div className="box">
44
+ <div className="boxContent">
45
+ <h3>Rocos SDK Client Params</h3>
46
+ <label>
47
+ <input type="text" {...bindUrl} />
48
+ </label>
49
+ <label>
50
+ <input type="text" {...bindAppId} />
51
+ </label>
52
+ <label>
53
+ <input type="text" {...bindAppKey} />
54
+ </label>
55
+ <button onClick={createSdkClient}>Create SDK Client</button>
56
+ </div>
57
+ </div>
58
+ {sdkExists && (
59
+ <div className="box">
60
+ <pre>
61
+ Rocos SDK created with params:
62
+ <br />
63
+ url: {url}
64
+ <br />
65
+ appId: {appId}
66
+ <br />
67
+ appKey: {appKey}
68
+ </pre>
69
+ <div className="boxContent">
70
+ <button onClick={removeSdkClient}>Remove SDK Client</button>
71
+ </div>
72
+ </div>
73
+ )}
74
+ </div>
75
+ )
76
+ }
@@ -0,0 +1,53 @@
1
+ import React, { useEffect, useState } from 'react'
2
+ import { Subscription } from 'rxjs'
3
+ import { IRocosCallerMessage, generateUUID } from '@team-rocos/rocos-js-sdk'
4
+ import RocosSDKController from '../controllers/RocosSDKController'
5
+ import { CallerPayload } from '../reducers/sdkReducer'
6
+
7
+ type TCallerParams = {
8
+ callerParams: CallerPayload
9
+ }
10
+
11
+ export const CallerBox = ({ callerParams }: TCallerParams): JSX.Element => {
12
+ const [message, setMessage] = useState<string | undefined>(undefined)
13
+
14
+ useEffect(() => {
15
+ const rocosSdk = RocosSDKController.getInstance()
16
+ let subscription$: Subscription
17
+ if (rocosSdk) {
18
+ try {
19
+ const messageObservable = rocosSdk.getCallerService().invokeRequest({
20
+ uid: generateUUID(),
21
+ projectId: callerParams.projectId,
22
+ callsign: callerParams.callsign,
23
+ component: 'ros',
24
+ topic: callerParams.topic,
25
+ subSystem: '',
26
+ payload: callerParams.payload,
27
+ responseLevelNumber: 0,
28
+ })
29
+ subscription$ = messageObservable.subscribe((msg: IRocosCallerMessage) => {
30
+ const payload = msg?.responses?.responsesList?.[0]?.pb_return?.payload
31
+ if (payload) {
32
+ const payloadJSON = JSON.parse(atob(payload.toString()))
33
+
34
+ setMessage(JSON.stringify(payloadJSON, null, 2))
35
+ }
36
+ })
37
+ // setSubscription$(subscription$)
38
+ } catch (e) {
39
+ console.log('error', e)
40
+ }
41
+ }
42
+ return () => {
43
+ // the unsubscribe action happens when the component gets unmounted
44
+ subscription$?.unsubscribe()
45
+ }
46
+ }, [callerParams])
47
+
48
+ return (
49
+ <div className="box">
50
+ <pre>{message}</pre>
51
+ </div>
52
+ )
53
+ }
@@ -0,0 +1,98 @@
1
+ import React, { ChangeEventHandler, useCallback, useState } from 'react'
2
+ import { useDispatch, useSelector } from 'react-redux'
3
+ import { getCallsigns, isSDKCreated, getProjectId, getCaller } from '../selectors/sdkSelector'
4
+ import { setCaller } from '../reducers/sdkReducer'
5
+ import config from '../config.json'
6
+ import { CallerBox } from './CallerBox'
7
+
8
+ export const CallerForm = (): JSX.Element => {
9
+ const [radioData, setRadioData] = useState<string | undefined>()
10
+ const [topic, setTopic] = useState<string>(config.callerTopic)
11
+ const [payload, setPayload] = useState<string>(config.callerPayload)
12
+ const sdkExists = useSelector(isSDKCreated)
13
+ const callsigns = useSelector(getCallsigns)
14
+ const projectId = useSelector(getProjectId)
15
+ const caller = useSelector(getCaller)
16
+
17
+ const dispatch = useDispatch()
18
+
19
+ const makeServiceCall: React.MouseEventHandler = useCallback(
20
+ (evt) => {
21
+ evt.preventDefault()
22
+ if (callsigns) {
23
+ let selectedCallsign = ''
24
+ for (const callsign of callsigns) {
25
+ if (radioData === undefined || radioData === callsign) {
26
+ selectedCallsign = callsign
27
+ break
28
+ }
29
+ }
30
+
31
+ if (selectedCallsign && topic && payload && projectId) {
32
+ dispatch(
33
+ setCaller({
34
+ projectId,
35
+ callsign: selectedCallsign,
36
+ topic: topic,
37
+ payload: payload,
38
+ })
39
+ )
40
+ }
41
+ }
42
+ },
43
+ [callsigns, topic, payload, projectId, radioData, dispatch]
44
+ )
45
+
46
+ const handleRadioChange: ChangeEventHandler = useCallback((evt) => {
47
+ const target = evt.target as HTMLInputElement
48
+ setRadioData(target.value)
49
+ }, [])
50
+
51
+ const handleTopicChange: ChangeEventHandler = useCallback((evt) => {
52
+ const target = evt.target as HTMLInputElement
53
+ const value = target.value
54
+
55
+ setTopic(value || '')
56
+ }, [])
57
+
58
+ const handlePayloadChange: ChangeEventHandler = useCallback((evt) => {
59
+ const target = evt.target as HTMLTextAreaElement
60
+ const value = target.value
61
+
62
+ setPayload(value || '{}')
63
+ }, [])
64
+
65
+ if (!sdkExists || !callsigns) {
66
+ return <></>
67
+ }
68
+
69
+ return (
70
+ <div className="boxColumn">
71
+ <div className="box">
72
+ <div className="boxContent">
73
+ <h3>Invoke Service Call</h3>
74
+ {callsigns.map((item, index) => (
75
+ <label key={index}>
76
+ <input
77
+ value={item}
78
+ type="radio"
79
+ name="caller-callsign"
80
+ checked={radioData === undefined || radioData === item}
81
+ onChange={handleRadioChange}
82
+ />{' '}
83
+ {item}
84
+ </label>
85
+ ))}
86
+ <label>
87
+ <input type="text" name="topic" value={topic} onChange={handleTopicChange} />
88
+ </label>
89
+ <label>
90
+ <textarea name="payload" value={payload} onChange={handlePayloadChange} />
91
+ </label>
92
+ <button onClick={makeServiceCall}>Call</button>
93
+ </div>
94
+ </div>
95
+ {caller && <CallerBox callerParams={caller} />}
96
+ </div>
97
+ )
98
+ }
@@ -0,0 +1,47 @@
1
+ import React, { useEffect, useState } from 'react'
2
+ import { Subscription } from 'rxjs'
3
+ import { IRocosCommandMessage } from '@team-rocos/rocos-js-sdk'
4
+ import RocosSDKController from '../controllers/RocosSDKController'
5
+ import { CommandPayload } from '../reducers/sdkReducer'
6
+
7
+ type TCommandParams = {
8
+ commandParams: CommandPayload
9
+ }
10
+
11
+ export const CommandBox = ({ commandParams }: TCommandParams): JSX.Element => {
12
+ const [message, setMessage] = useState<string | undefined>(undefined)
13
+
14
+ useEffect(() => {
15
+ const rocosSdk = RocosSDKController.getInstance()
16
+ let subscription$: Subscription
17
+ if (rocosSdk) {
18
+ try {
19
+ const messageObservable = rocosSdk.getCommandService().invokeRequest({
20
+ projectId: commandParams.projectId,
21
+ callsign: commandParams.callsign,
22
+ commandId: commandParams.commandId,
23
+ parameters: JSON.parse(commandParams.parameters),
24
+ })
25
+ subscription$ = messageObservable.subscribe((msg: IRocosCommandMessage) => {
26
+ const payload = msg?.response
27
+ if (payload) {
28
+ setMessage(JSON.stringify(payload, null, 2))
29
+ }
30
+ })
31
+ // setSubscription$(subscription$)
32
+ } catch (e) {
33
+ console.log('error', e)
34
+ }
35
+ }
36
+ return () => {
37
+ // the unsubscribe action happens when the component gets unmounted
38
+ subscription$?.unsubscribe()
39
+ }
40
+ }, [commandParams])
41
+
42
+ return (
43
+ <div className="box">
44
+ <pre>{message}</pre>
45
+ </div>
46
+ )
47
+ }