device.ts 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292
  1. import request from '@/service/request'
  2. /**
  3. * 此函数根据给定的查询参数检索设备列表。
  4. * @param params - “params”参数是一个“IOT.API.DEVICE.QueryPamars”类型的对象,其中包含 API 请求的查询参数。这些参数用于过滤和分页 API
  5. * 返回的结果。
  6. * @returns `getDevice` 函数返回一个解析为 `IOT.API.DEVICE.Device` 对象数组的 Promise。 Promise
  7. * 由“request”函数返回,该函数使用指定的查询参数(“params”)向“/model/page”端点发出 GET 请求。
  8. */
  9. export const getDevicePage = (params: IOT.API.DEVICE.QueryPamars) => {
  10. return request<IOT.API.DEVICE.Device[]>({
  11. url: '/device/page',
  12. method: 'GET',
  13. params
  14. })
  15. }
  16. export const getDeviceList = (params: {modelId: string, deviceLabel: string, limit: number, lastId: string }) => {
  17. return request<IOT.API.DEVICE.Device[]>({
  18. url: '/device/list',
  19. method: 'GET',
  20. params
  21. })
  22. }
  23. export const getDeviceById = (id: string) => {
  24. return request<IOT.API.DEVICE.Device>({
  25. url: `/device/${id}`,
  26. method: 'GET'
  27. })
  28. }
  29. /**
  30. *
  31. * @param id
  32. * @param authType 设备授权方式
  33. */
  34. export const getDeviceSecret = (params: {deviceId: string, authType: 'SECRET' | 'X509CERT'}) => {
  35. return request<string>({
  36. url: '/deviceSecret',
  37. method: 'GET',
  38. params
  39. })
  40. }
  41. export const addDevice = (data: IOT.API.DEVICE.BodyParams) => {
  42. return request<string>({
  43. url: '/device',
  44. method: 'POST',
  45. data
  46. })
  47. }
  48. export const delDevice = (id: string) => {
  49. return request<string>({
  50. url: `/device/${id}`,
  51. method: 'DELETE'
  52. })
  53. }
  54. export const delDeviceMul = (data: string[]) => {
  55. return request<string>({
  56. url: '/device',
  57. method: 'DELETE',
  58. data
  59. })
  60. }
  61. export const updateDeviceLabel = (data: {id: string, deviceLabel: string}) => {
  62. return request<string>({
  63. url: '/device/deviceLabel',
  64. method: 'PUT',
  65. data
  66. })
  67. }
  68. export const getSubDeviceList = (id: string, params: IOT.API.DEVICE.QueryPamars) => {
  69. return request<string>({
  70. url: `/device/subDevice/${id}`,
  71. method: 'GET',
  72. params
  73. })
  74. }
  75. export const delSubDevice = (id: String) => {
  76. return request<string>({
  77. url: `/device/subDevice/${id}`,
  78. method: 'DELETE'
  79. })
  80. }
  81. export const addSubDevice = (data: IOT.API.DEVICE.SubBodyParams) => {
  82. return request<string>({
  83. url: '/device/subDevice',
  84. method: 'POST',
  85. data
  86. })
  87. }
  88. export const addDeviceTag = (data: IOT.API.DEVICE.DeviceTag[]) => {
  89. return request<string>({
  90. url: '/deviceTag',
  91. method: 'POST',
  92. data
  93. })
  94. }
  95. export const getDeviceTag = (params: {deviceId: number | string}) => {
  96. return request<string>({
  97. url: '/deviceTag',
  98. method: 'GET',
  99. params
  100. })
  101. }
  102. export const delDeviceTag = (id: string) => {
  103. return request<string>({
  104. url: `/deviceTag/${id}`,
  105. method: 'DELETE'
  106. })
  107. }
  108. export const getDeviceCount = (params?: {modelId: string}) => {
  109. return request<IOT.API.DEVICE.Count>({
  110. url: '/device/count',
  111. method: 'GET',
  112. params
  113. })
  114. }
  115. /**
  116. * 此函数检索特定设备的消息。
  117. * @param params - `params` 对象是传递给 `getDeviceMsgPage` 函数的参数。它有一个属性“deviceId”,它是一个表示设备 ID
  118. * 的字符串。此参数用于向“/toTransport/msg”端点发出 GET 请求以检索与以下内容相关的消息
  119. * @returns `getDeviceMsgPage` 函数返回一个解析为 `IOT.API.DEVICE.Msg` 类型对象的
  120. * Promise。根据传入的“deviceId”参数,此对象可能包含有关发送到特定设备的消息的信息。
  121. */
  122. export const getDeviceMsgList = (params: {deviceId: string}) => {
  123. return request<IOT.API.DEVICE.Msg[]>({
  124. url: '/toTransport/msg',
  125. method: 'GET',
  126. params
  127. })
  128. }
  129. // "deviceId": “”设备id 必需
  130. // "msgPayload":"" 消息类容 必需
  131. // "msgLabel":“”消息名称 必需
  132. // “topic":"" 主题 非必需
  133. /**
  134. * 该函数向 IoT 系统中的设备添加消息。
  135. * @param data - `data` 参数是一个包含以下属性的对象:
  136. * @returns `addDeviceMsg` 函数返回一个解析为 `IOT.API.DEVICE.Msg` 类型对象的 Promise。
  137. */
  138. export const addDeviceMsg = (data: {deviceId: string, msgPayload: string, msgLabel: string, topic: string}) => {
  139. return request<IOT.API.DEVICE.Msg>({
  140. url: '/toTransport/msg',
  141. method: 'POST',
  142. data
  143. })
  144. }
  145. /**
  146. * 此函数检索特定设备的命令列表。
  147. * @param params - `params` 参数是一个包含单个属性 `deviceId` 的对象,该属性是表示设备 ID 的字符串。此参数用于向“/toTransport/cmd”端点发出
  148. * GET 请求以检索消息列表(类型为“IOT.API.DEVICE.Msg”
  149. * @returns 函数 getDeviceCmdList 返回一个解析为 IOT.API.DEVICE.Msg 对象数组的 Promise。
  150. */
  151. export const getDeviceCmdList = (params: {deviceId: string}) => {
  152. return request<IOT.API.DEVICE.Msg[]>({
  153. url: '/toTransport/cmd',
  154. method: 'GET',
  155. params
  156. })
  157. }
  158. /**
  159. * 函数“addDeviceCmd”向“/toTransport/cmd”发送一个 POST 请求,其中包含设备 ID、命令标签和命令参数作为数据。
  160. * @param data - 包含以下属性的对象:
  161. * @returns `addDeviceCmd` 函数返回一个解析为字符串的 Promise。 Promise
  162. * 由“request”函数返回,该函数使用提供的“data”对象作为请求主体向“/toTransport/cmd”端点发送 POST 请求。
  163. */
  164. export const addDeviceCmd = (data: { deviceId: string, cmdLabel: string, cmdParameters: any}) => {
  165. return request<string>({
  166. url: '/toTransport/cmd',
  167. method: 'POST',
  168. data
  169. })
  170. }
  171. /**
  172. * 此函数发送一个 POST 请求以创建一个具有指定标签和上层组 ID 的新设备组。
  173. * @param data - `data` 参数是一个包含两个属性的对象:
  174. * @returns `addDeviceGroup` 函数返回一个解析为字符串的 Promise。该字符串是在使用提供的“数据”对象向“/deviceGroup”端点发出 POST 请求后服务器的响应。
  175. */
  176. export const addDeviceGroup = (data: { groupLabel: string, upperGroupId: string }) => {
  177. return request<string>({
  178. url: '/deviceGroup',
  179. method: 'POST',
  180. data
  181. })
  182. }
  183. /**
  184. * 此函数发送 GET 请求以根据上层组 ID 参数检索设备组列表。
  185. * @param params - `params` 参数是一个包含 `upperGroupId` 属性的对象。此属性是一个字符串,表示用户要为其检索子组列表的上层设备组的 ID。
  186. * @returns `listDeviceGroup` 函数返回一个解析为字符串的 Promise。该字符串是使用提供的 params 对象作为查询参数向 `/deviceGroup` 端点发出 GET
  187. * 请求的响应。
  188. */
  189. export const listDeviceGroup = (params: { upperGroupId: string }) => {
  190. return request<string>({
  191. url: '/deviceGroup',
  192. method: 'GET',
  193. params
  194. })
  195. }
  196. /**
  197. * 此函数发送 POST 请求以将设备绑定到设备组。
  198. * @param data - `data` 参数是一个包含两个属性的对象:
  199. * @returns 函数 postGroupBindDevice 返回一个解析为字符串的 Promise。该字符串是在使用提供的“数据”对象发出 POST 请求后来自 API
  200. * 端点“/deviceGroup/device”的响应。
  201. */
  202. export const postGroupBindDevice = (data: { deviceGroupId: string, deviceId: string }[]) => {
  203. return request<string>({
  204. url: '/deviceGroup/device',
  205. method: 'POST',
  206. data
  207. })
  208. }
  209. /**
  210. * 此函数发送 DELETE 请求以从设备组中删除设备。
  211. * @param data - `data` 参数是一个包含两个属性的对象:
  212. * @returns 解析为字符串的 Promise。
  213. */
  214. export const delGroupBindDevice = (data: { deviceGroupId: string, deviceId: string }[]) => {
  215. return request<string>({
  216. url: '/deviceGroup/device',
  217. method: 'DELETE',
  218. data
  219. })
  220. }
  221. export const getDeviceByGroup = (params: IOT.API.DEVICE.GroupQueryParams) => {
  222. return request<IOT.API.DEVICE.Device[]>({
  223. url: '/device/group',
  224. method: 'GET',
  225. params
  226. })
  227. }
  228. /** 实时数据 */
  229. export const getDeviceAttribute = (deviceId: string) => {
  230. return request<IOT.API.DEVICE.Device[]>({
  231. url: `/deviceAttribute/latest?deviceId=${deviceId}`,
  232. method: 'GET'
  233. })
  234. }
  235. /** 实时数据 */
  236. export const getDevicShadow = (deviceId: string) => {
  237. return request<IOT.API.DEVICE.Device[]>({
  238. url: `/deviceAttribute/shadow?deviceId=${deviceId}`,
  239. method: 'GET'
  240. })
  241. }
  242. /** 设备拓扑 */
  243. export const getDeviceTopology = (modelId: string) => {
  244. return request<IOT.API.DEVICE.Topology>({
  245. url: `/device/topology?modelId=${modelId}`,
  246. method: 'GET'
  247. })
  248. }
  249. /** 设备上下线 */
  250. export const getDeviceSession = (params: {deviceId: string, start: number, end: number}) => {
  251. return request<IOT.API.DEVICE.Session[]>({
  252. url: '/deviceAnalysis/session',
  253. method: 'GET',
  254. params
  255. })
  256. }
  257. /** 设备属性 */
  258. export const getDeviceAttributes = (params: {deviceId: string, start: number, end: number}) => {
  259. return request<IOT.API.DEVICE.Attr>({
  260. url: '/deviceAnalysis/attributes',
  261. method: 'GET',
  262. params
  263. })
  264. }