@ray-js/robot-data-stream 0.0.10-beta-10 → 0.0.10-beta-12

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 (53) hide show
  1. package/lib/api/deleteMultipleMapFile.d.ts +1 -0
  2. package/lib/api/deleteMultipleMapFile.js +9 -0
  3. package/lib/api/request.d.ts +2 -0
  4. package/lib/api/request.js +29 -0
  5. package/lib/index.d.ts +2 -0
  6. package/lib/index.js +4 -2
  7. package/lib/mqtt/createCommonOptions.d.ts +24 -0
  8. package/lib/mqtt/createCommonOptions.js +28 -0
  9. package/lib/mqtt/index.d.ts +17 -0
  10. package/lib/mqtt/index.js +17 -0
  11. package/lib/mqtt/mqttProvider.d.ts +6 -0
  12. package/lib/mqtt/mqttProvider.js +61 -0
  13. package/lib/mqtt/myError.d.ts +4 -0
  14. package/lib/mqtt/myError.js +6 -0
  15. package/lib/mqtt/promise.d.ts +13 -0
  16. package/lib/mqtt/promise.js +47 -0
  17. package/lib/mqtt/type/index.d.ts +26 -0
  18. package/lib/mqtt/type/index.js +11 -0
  19. package/lib/mqtt/type/requestType.d.ts +67 -0
  20. package/lib/mqtt/type/requestType.js +101 -0
  21. package/lib/mqtt/useDevInfo.d.ts +4 -0
  22. package/lib/mqtt/useDevInfo.js +22 -0
  23. package/lib/mqtt/useHistoryMap.d.ts +7 -0
  24. package/lib/mqtt/useHistoryMap.js +62 -0
  25. package/lib/mqtt/usePartDivision.d.ts +12 -0
  26. package/lib/mqtt/usePartDivision.js +38 -0
  27. package/lib/mqtt/usePartMerge.d.ts +11 -0
  28. package/lib/mqtt/usePartMerge.js +33 -0
  29. package/lib/mqtt/usePassword.d.ts +17 -0
  30. package/lib/mqtt/usePassword.js +56 -0
  31. package/lib/mqtt/useQuiteHours.d.ts +24 -0
  32. package/lib/mqtt/useQuiteHours.js +71 -0
  33. package/lib/mqtt/useResetMap.d.ts +3 -0
  34. package/lib/mqtt/useResetMap.js +17 -0
  35. package/lib/mqtt/useRoomProperty.d.ts +12 -0
  36. package/lib/mqtt/useRoomProperty.js +66 -0
  37. package/lib/mqtt/useSchedule.d.ts +16 -0
  38. package/lib/mqtt/useSchedule.js +38 -0
  39. package/lib/mqtt/useSelectRoomClean.d.ts +11 -0
  40. package/lib/mqtt/useSelectRoomClean.js +70 -0
  41. package/lib/mqtt/useSpotClean.d.ts +14 -0
  42. package/lib/mqtt/useSpotClean.js +81 -0
  43. package/lib/mqtt/useVirtualArea.d.ts +4 -0
  44. package/lib/mqtt/useVirtualArea.js +29 -0
  45. package/lib/mqtt/useVirtualWall.d.ts +4 -0
  46. package/lib/mqtt/useVirtualWall.js +36 -0
  47. package/lib/mqtt/useVoice.d.ts +18 -0
  48. package/lib/mqtt/useVoice.js +66 -0
  49. package/lib/mqtt/useZoneClean.d.ts +14 -0
  50. package/lib/mqtt/useZoneClean.js +81 -0
  51. package/lib/utils/index.d.ts +8 -0
  52. package/lib/utils/index.js +47 -0
  53. package/package.json +5 -2
@@ -0,0 +1 @@
1
+ export declare const deleteMultipleMapFile: (id: number, devId: string) => Promise<unknown>;
@@ -0,0 +1,9 @@
1
+ import { api } from './request';
2
+
3
+ // 删除历史地图
4
+ export const deleteMultipleMapFile = (id, devId) => {
5
+ return api('tuya.m.common.file.delete', {
6
+ fileIds: [id],
7
+ devId
8
+ });
9
+ };
@@ -0,0 +1,2 @@
1
+ export declare const api: <T>(url: any, postData: any, v?: string) => Promise<T>;
2
+ export declare const getOssUrl: () => Promise<string>;
@@ -0,0 +1,29 @@
1
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
+ import { parseJSON } from '../utils';
3
+ import { apiRequestByAtop } from '@ray-js/ray';
4
+ export const api = function (url, postData) {
5
+ let v = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '1.0';
6
+ return new Promise((resolve, reject) => {
7
+ const params = {
8
+ api: url,
9
+ postData: postData,
10
+ version: v
11
+ };
12
+ apiRequestByAtop(_objectSpread(_objectSpread({}, params), {}, {
13
+ success: d => {
14
+ const data = typeof d === 'string' ? parseJSON(d) : d;
15
+ console.log(`%c API调用成功: ${url}`, 'color: white; background-color: green; padding: 2px;', params, data);
16
+ resolve(data);
17
+ },
18
+ fail: err => {
19
+ var _e$innerError;
20
+ const e = typeof err === 'string' ? parseJSON(err) : err;
21
+ console.log(`%c API调用失败: ${url}`, 'color: white; background-color: red; padding: 2px;', params, e);
22
+ reject(e === null || e === void 0 || (_e$innerError = e.innerError) === null || _e$innerError === void 0 ? void 0 : _e$innerError.errorMsg);
23
+ }
24
+ }));
25
+ });
26
+ };
27
+ export const getOssUrl = () => {
28
+ return api('tuya.m.app.panel.url.get', {});
29
+ };
package/lib/index.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ export * from './mqtt';
2
+ export * from './mqtt/type/requestType';
1
3
  declare const useP2PDataStream: (devId: string, onReceiveMapData: (data: string) => void, onReceivePathData: (data: string) => void, opt?: {
2
4
  logTag?: string | undefined;
3
5
  onReceiveAIPicData?: ((data: string) => void) | undefined;
package/lib/index.js CHANGED
@@ -1,10 +1,12 @@
1
1
  /* eslint-disable consistent-return */
2
2
  import { useEffect, useRef, useCallback } from 'react';
3
- import mitt from 'mitt';
4
3
  import log4js from '@ray-js/log4js';
5
4
  import { SweeperP2pInstance } from './api';
6
5
  import sweeperP2pInstance from './api/sweeperP2p';
7
6
  import { getSystemInfoSync, usePageEvent } from '@ray-js/ray';
7
+ import { emitter } from './utils';
8
+ export * from './mqtt';
9
+ export * from './mqtt/type/requestType';
8
10
  const useP2PDataStream = (devId, onReceiveMapData, onReceivePathData, opt) => {
9
11
  const {
10
12
  logTag,
@@ -110,5 +112,5 @@ const useP2PDataStream = (devId, onReceiveMapData, onReceivePathData, opt) => {
110
112
  appendDownloadStreamDuringTask: sweeperP2pInstance.appendDownloadStreamDuringTask
111
113
  };
112
114
  };
113
- const StreamDataNotificationCenter = mitt();
115
+ const StreamDataNotificationCenter = emitter;
114
116
  export { useP2PDataStream, StreamDataNotificationCenter };
@@ -0,0 +1,24 @@
1
+ interface Message {
2
+ [key: string]: string | number | string[] | number[] | any;
3
+ }
4
+ interface Options {
5
+ [key: string]: string;
6
+ }
7
+ export declare enum ProtocolEnum {
8
+ appToRobot = 64,
9
+ robotToApp = 65
10
+ }
11
+ interface Params {
12
+ deviceId: string;
13
+ reqType: string;
14
+ message?: Message;
15
+ version?: string;
16
+ options?: Options;
17
+ }
18
+ export declare const createSetCommonParams: ({ deviceId, reqType, message, version, options, }: Params) => {
19
+ deviceId: string;
20
+ message: Message;
21
+ options: Options;
22
+ protocol: ProtocolEnum;
23
+ };
24
+ export {};
@@ -0,0 +1,28 @@
1
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
+ const defaultVersion = '1.0.0';
3
+ // mqtt协议号
4
+ export let ProtocolEnum = /*#__PURE__*/function (ProtocolEnum) {
5
+ ProtocolEnum[ProtocolEnum["appToRobot"] = 64] = "appToRobot";
6
+ ProtocolEnum[ProtocolEnum["robotToApp"] = 65] = "robotToApp";
7
+ return ProtocolEnum;
8
+ }({});
9
+ export const createSetCommonParams = _ref => {
10
+ let {
11
+ deviceId,
12
+ reqType,
13
+ message = {},
14
+ version = defaultVersion,
15
+ options = {}
16
+ } = _ref;
17
+ const taskId = Date.now();
18
+ return {
19
+ deviceId,
20
+ message: _objectSpread({
21
+ reqType,
22
+ version,
23
+ taskId: `${taskId}`
24
+ }, message),
25
+ options,
26
+ protocol: ProtocolEnum.appToRobot
27
+ };
28
+ };
@@ -0,0 +1,17 @@
1
+ import { MqttProvider } from './mqttProvider';
2
+ import { useDevInfo } from './useDevInfo';
3
+ import { usePartDivision } from './usePartDivision';
4
+ import { usePartMerge } from './usePartMerge';
5
+ import { usePassword } from './usePassword';
6
+ import { useQuiteHours } from './useQuiteHours';
7
+ import { useVirtualArea } from './useVirtualArea';
8
+ import { useSpotClean } from './useSpotClean';
9
+ import { useZoneClean } from './useZoneClean';
10
+ import { useSelectRoomClean } from './useSelectRoomClean';
11
+ import { useVirtualWall } from './useVirtualWall';
12
+ import { useSchedule } from './useSchedule';
13
+ import { useHistoryMap } from './useHistoryMap';
14
+ import { useVoice } from './useVoice';
15
+ import { useRoomProperty } from './useRoomProperty';
16
+ import { useResetMap } from './useResetMap';
17
+ export { useVoice, MqttProvider, useDevInfo, usePartMerge, usePartDivision, usePassword, useQuiteHours, useVirtualArea, useSpotClean, useZoneClean, useSelectRoomClean, useVirtualWall, useSchedule, useHistoryMap, useRoomProperty, useResetMap, };
@@ -0,0 +1,17 @@
1
+ import { MqttProvider } from './mqttProvider';
2
+ import { useDevInfo } from './useDevInfo';
3
+ import { usePartDivision } from './usePartDivision';
4
+ import { usePartMerge } from './usePartMerge';
5
+ import { usePassword } from './usePassword';
6
+ import { useQuiteHours } from './useQuiteHours';
7
+ import { useVirtualArea } from './useVirtualArea';
8
+ import { useSpotClean } from './useSpotClean';
9
+ import { useZoneClean } from './useZoneClean';
10
+ import { useSelectRoomClean } from './useSelectRoomClean';
11
+ import { useVirtualWall } from './useVirtualWall';
12
+ import { useSchedule } from './useSchedule';
13
+ import { useHistoryMap } from './useHistoryMap';
14
+ import { useVoice } from './useVoice';
15
+ import { useRoomProperty } from './useRoomProperty';
16
+ import { useResetMap } from './useResetMap';
17
+ export { useVoice, MqttProvider, useDevInfo, usePartMerge, usePartDivision, usePassword, useQuiteHours, useVirtualArea, useSpotClean, useZoneClean, useSelectRoomClean, useVirtualWall, useSchedule, useHistoryMap, useRoomProperty, useResetMap };
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ export declare function useMqtt(): never;
3
+ export declare function MqttProvider({ children, devId }: {
4
+ children: any;
5
+ devId: any;
6
+ }): React.JSX.Element;
@@ -0,0 +1,61 @@
1
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
+ import { get, isNil } from 'lodash-es';
3
+ import React, { createContext, useCallback, useContext, useRef, useState } from 'react';
4
+ import { emitter } from '../utils';
5
+ // 创建一个Context
6
+ const SingletonContext = /*#__PURE__*/createContext(null);
7
+
8
+ // 创建一个自定义Hook来使用这个Context
9
+ export function useMqtt() {
10
+ const context = useContext(SingletonContext);
11
+ if (!context) {
12
+ throw new Error('useMqtt must be used within a MqttProvider');
13
+ }
14
+ return context;
15
+ }
16
+ export function MqttProvider(_ref) {
17
+ let {
18
+ children,
19
+ devId
20
+ } = _ref;
21
+ const [instance, setInstance] = useState(null);
22
+ const onMqttMessageReceived = useCallback(data => {
23
+ const {
24
+ messageData
25
+ } = data || {};
26
+ const reqType = get(messageData, 'reqType', '');
27
+ if (!reqType) return;
28
+ if (reqType) {
29
+ console.log('mqtt message received:', reqType, messageData);
30
+ emitter.emit(reqType, isNil(messageData === null || messageData === void 0 ? void 0 : messageData.success) ? _objectSpread(_objectSpread({}, messageData), {}, {
31
+ success: true
32
+ }) : messageData);
33
+ }
34
+ }, []);
35
+
36
+ // 使用ref确保实例只被创建一次
37
+ const instanceRef = useRef(null);
38
+ if (instanceRef.current === null) {
39
+ ty.device.registerMQTTProtocolListener({
40
+ protocol: 65,
41
+ success: () => {
42
+ console.log('注册mqtt成功');
43
+ }
44
+ });
45
+ ty.device.onMqttMessageReceived(data => {
46
+ if (data.deviceId === devId) {
47
+ onMqttMessageReceived(data);
48
+ }
49
+ });
50
+ instanceRef.current = {
51
+ // 这里定义单例的状态和行为
52
+ someState: 'initial state'
53
+ };
54
+ setInstance(instanceRef.current);
55
+ }
56
+
57
+ // 将单例状态和行为作为value传递给消费组件
58
+ return /*#__PURE__*/React.createElement(SingletonContext.Provider, {
59
+ value: instance
60
+ }, children);
61
+ }
@@ -0,0 +1,4 @@
1
+ export declare class MyError extends Error {
2
+ message: any;
3
+ constructor(message: any, data: any);
4
+ }
@@ -0,0 +1,6 @@
1
+ export class MyError extends Error {
2
+ constructor(message, data) {
3
+ super(message);
4
+ this.message = data;
5
+ }
6
+ }
@@ -0,0 +1,13 @@
1
+ declare class MyError extends Error {
2
+ errCode: number;
3
+ reqType: string;
4
+ constructor(message: string, { errCode, reqType }: {
5
+ errCode: number;
6
+ reqType: string;
7
+ });
8
+ }
9
+ export type PromiseWithRejection = Promise<any> & {
10
+ reject: (reason?: MyError) => void;
11
+ };
12
+ export declare function normalResolve(reqType: string, taskId: string): PromiseWithRejection;
13
+ export {};
@@ -0,0 +1,47 @@
1
+ import { emitter } from '../utils';
2
+
3
+ // 1. 定义 MyError 类型
4
+ class MyError extends Error {
5
+ constructor(message, _ref) {
6
+ let {
7
+ errCode,
8
+ reqType
9
+ } = _ref;
10
+ super(message);
11
+ this.errCode = errCode;
12
+ this.reqType = reqType;
13
+ }
14
+ }
15
+
16
+ // 2. 定义 Message 类型
17
+
18
+ // 3. 定义 PromiseWithRejection 类型
19
+
20
+ // 4. 定义 normalResolve 函数
21
+ export function normalResolve(reqType, taskId) {
22
+ return new Promise((resolve, reject) => {
23
+ // 设置超时定时器
24
+ const timer = setTimeout(() => {
25
+ reject(new MyError('Request timed out', {
26
+ errCode: -1,
27
+ reqType
28
+ }));
29
+ }, 5 * 1000);
30
+
31
+ // 监听指定类型的消息
32
+ emitter.on(reqType, message => {
33
+ if (`${message.taskId}` !== `${taskId}`) {
34
+ return;
35
+ }
36
+ clearTimeout(timer);
37
+ if (message.errCode === 0) {
38
+ resolve(message);
39
+ } else {
40
+ reject(new MyError('Request failed', {
41
+ errCode: message.errCode,
42
+ reqType
43
+ }));
44
+ }
45
+ });
46
+ });
47
+ }
@@ -0,0 +1,26 @@
1
+ export * from './requestType';
2
+ export interface BaseResponse {
3
+ success: boolean;
4
+ errCode: number;
5
+ reqType: string;
6
+ version: string;
7
+ taskId: string;
8
+ }
9
+ export declare enum PasswordEnum {
10
+ query = "passwordQry",
11
+ set = "passwordSet",
12
+ rst = "passwordRst",
13
+ check = "passwordCheck",
14
+ checkRst = "passwordCheckRst"
15
+ }
16
+ export type RoomPreference = {
17
+ suctions?: string[];
18
+ cisterns?: string[];
19
+ cleanCounts?: number[];
20
+ yMops?: number[];
21
+ sweepMopModes?: string[];
22
+ floorTypes?: number[];
23
+ names?: string[];
24
+ ids?: number[];
25
+ orders?: number[];
26
+ };
@@ -0,0 +1,11 @@
1
+ export * from './requestType';
2
+ // 设备接口响应的统一标准结构
3
+
4
+ export let PasswordEnum = /*#__PURE__*/function (PasswordEnum) {
5
+ PasswordEnum["query"] = "passwordQry";
6
+ PasswordEnum["set"] = "passwordSet";
7
+ PasswordEnum["rst"] = "passwordRst";
8
+ PasswordEnum["check"] = "passwordCheck";
9
+ PasswordEnum["checkRst"] = "passwordCheckRst";
10
+ return PasswordEnum;
11
+ }({});
@@ -0,0 +1,67 @@
1
+ export declare enum VirtualWallEnum {
2
+ query = "virtualWallQry",
3
+ set = "virtualWallSet"
4
+ }
5
+ export declare enum PartMergeEnum {
6
+ set = "partMergeSet",
7
+ query = "partMergeRst"
8
+ }
9
+ export declare enum ZoneCleanEnum {
10
+ query = "zoneCleanQry",
11
+ set = "zoneCleanSet"
12
+ }
13
+ export declare enum PartDivisionEnum {
14
+ set = "partDivisionSet",
15
+ query = "partDivisionRst"
16
+ }
17
+ export declare enum PasswordEnum {
18
+ query = "passwordQry",
19
+ set = "passwordSet",
20
+ rst = "passwordRst",
21
+ check = "passwordCheck",
22
+ checkRst = "passwordCheckRst"
23
+ }
24
+ export declare enum RoomPropertyEnum {
25
+ set = "roomPropertySet",
26
+ query = "roomPropertyQry"
27
+ }
28
+ export declare enum ScheduleEnum {
29
+ query = "scheduleQry",
30
+ set = "scheduleSet"
31
+ }
32
+ export declare enum RoomCleanSetEnum {
33
+ query = "roomCleanQry",
34
+ set = "roomCleanSet"
35
+ }
36
+ export declare enum SpotCleanEnum {
37
+ query = "spotCleanQry",
38
+ set = "spotCleanSet"
39
+ }
40
+ export declare enum VirtualAreaEnum {
41
+ query = "restrictedAreaQry",
42
+ set = "restrictedAreaSet"
43
+ }
44
+ export declare enum VoiceLanguageEnum {
45
+ query = "voiceLanguageQry",
46
+ set = "voiceLanguageSet"
47
+ }
48
+ export declare enum QuietHoursEnum {
49
+ query = "quietHoursQry",
50
+ set = "quietHoursSet"
51
+ }
52
+ export declare enum ResetCurrMapEnum {
53
+ set = "resetCurrMapSet",
54
+ query = "resetCurrMapRst"
55
+ }
56
+ export declare enum SaveCurrentMapEnum {
57
+ set = "SaveCurrMapSet",
58
+ query = "SaveCurrMapRst"
59
+ }
60
+ export declare enum DeleteMapEnum {
61
+ set = "deleteMapSet",
62
+ rst = "deleteMapRst"
63
+ }
64
+ export declare enum UseMapEnum {
65
+ query = "useMapRst",
66
+ set = "useMapSet"
67
+ }
@@ -0,0 +1,101 @@
1
+ export let VirtualWallEnum = /*#__PURE__*/function (VirtualWallEnum) {
2
+ VirtualWallEnum["query"] = "virtualWallQry";
3
+ VirtualWallEnum["set"] = "virtualWallSet";
4
+ return VirtualWallEnum;
5
+ }({});
6
+
7
+ // 分区合并枚举
8
+ export let PartMergeEnum = /*#__PURE__*/function (PartMergeEnum) {
9
+ PartMergeEnum["set"] = "partMergeSet";
10
+ PartMergeEnum["query"] = "partMergeRst";
11
+ return PartMergeEnum;
12
+ }({});
13
+
14
+ // 划区清扫
15
+ export let ZoneCleanEnum = /*#__PURE__*/function (ZoneCleanEnum) {
16
+ ZoneCleanEnum["query"] = "zoneCleanQry";
17
+ ZoneCleanEnum["set"] = "zoneCleanSet";
18
+ return ZoneCleanEnum;
19
+ }({});
20
+
21
+ // 手动分区枚举
22
+ export let PartDivisionEnum = /*#__PURE__*/function (PartDivisionEnum) {
23
+ PartDivisionEnum["set"] = "partDivisionSet";
24
+ PartDivisionEnum["query"] = "partDivisionRst";
25
+ return PartDivisionEnum;
26
+ }({});
27
+ export let PasswordEnum = /*#__PURE__*/function (PasswordEnum) {
28
+ PasswordEnum["query"] = "passwordQry";
29
+ PasswordEnum["set"] = "passwordSet";
30
+ PasswordEnum["rst"] = "passwordRst";
31
+ PasswordEnum["check"] = "passwordCheck";
32
+ PasswordEnum["checkRst"] = "passwordCheckRst";
33
+ return PasswordEnum;
34
+ }({});
35
+ export let RoomPropertyEnum = /*#__PURE__*/function (RoomPropertyEnum) {
36
+ RoomPropertyEnum["set"] = "roomPropertySet";
37
+ RoomPropertyEnum["query"] = "roomPropertyQry";
38
+ return RoomPropertyEnum;
39
+ }({});
40
+ export let ScheduleEnum = /*#__PURE__*/function (ScheduleEnum) {
41
+ ScheduleEnum["query"] = "scheduleQry";
42
+ ScheduleEnum["set"] = "scheduleSet";
43
+ return ScheduleEnum;
44
+ }({});
45
+ export let RoomCleanSetEnum = /*#__PURE__*/function (RoomCleanSetEnum) {
46
+ RoomCleanSetEnum["query"] = "roomCleanQry";
47
+ RoomCleanSetEnum["set"] = "roomCleanSet";
48
+ return RoomCleanSetEnum;
49
+ }({});
50
+ export let SpotCleanEnum = /*#__PURE__*/function (SpotCleanEnum) {
51
+ SpotCleanEnum["query"] = "spotCleanQry";
52
+ SpotCleanEnum["set"] = "spotCleanSet";
53
+ return SpotCleanEnum;
54
+ }({});
55
+
56
+ // 禁区
57
+ export let VirtualAreaEnum = /*#__PURE__*/function (VirtualAreaEnum) {
58
+ VirtualAreaEnum["query"] = "restrictedAreaQry";
59
+ VirtualAreaEnum["set"] = "restrictedAreaSet";
60
+ return VirtualAreaEnum;
61
+ }({});
62
+
63
+ // 语音语言枚举
64
+ export let VoiceLanguageEnum = /*#__PURE__*/function (VoiceLanguageEnum) {
65
+ VoiceLanguageEnum["query"] = "voiceLanguageQry";
66
+ VoiceLanguageEnum["set"] = "voiceLanguageSet";
67
+ return VoiceLanguageEnum;
68
+ }({});
69
+
70
+ // 勿扰模式枚举
71
+ export let QuietHoursEnum = /*#__PURE__*/function (QuietHoursEnum) {
72
+ QuietHoursEnum["query"] = "quietHoursQry";
73
+ QuietHoursEnum["set"] = "quietHoursSet";
74
+ return QuietHoursEnum;
75
+ }({});
76
+
77
+ // 重置地图
78
+ export let ResetCurrMapEnum = /*#__PURE__*/function (ResetCurrMapEnum) {
79
+ ResetCurrMapEnum["set"] = "resetCurrMapSet";
80
+ ResetCurrMapEnum["query"] = "resetCurrMapRst";
81
+ return ResetCurrMapEnum;
82
+ }({});
83
+
84
+ // 保存地图
85
+ export let SaveCurrentMapEnum = /*#__PURE__*/function (SaveCurrentMapEnum) {
86
+ SaveCurrentMapEnum["set"] = "SaveCurrMapSet";
87
+ SaveCurrentMapEnum["query"] = "SaveCurrMapRst";
88
+ return SaveCurrentMapEnum;
89
+ }({});
90
+
91
+ // 删除历史地图
92
+ export let DeleteMapEnum = /*#__PURE__*/function (DeleteMapEnum) {
93
+ DeleteMapEnum["set"] = "deleteMapSet";
94
+ DeleteMapEnum["rst"] = "deleteMapRst";
95
+ return DeleteMapEnum;
96
+ }({});
97
+ export let UseMapEnum = /*#__PURE__*/function (UseMapEnum) {
98
+ UseMapEnum["query"] = "useMapRst";
99
+ UseMapEnum["set"] = "useMapSet";
100
+ return UseMapEnum;
101
+ }({});
@@ -0,0 +1,4 @@
1
+ import { PromiseWithRejection } from './promise';
2
+ export declare const useDevInfo: (devId: string) => {
3
+ requestDevInfo: () => PromiseWithRejection;
4
+ };
@@ -0,0 +1,22 @@
1
+ import { createSetCommonParams } from './createCommonOptions';
2
+ import { normalResolve } from './promise';
3
+ var DevInfoEnum = /*#__PURE__*/function (DevInfoEnum) {
4
+ DevInfoEnum["query"] = "devInfoQry";
5
+ return DevInfoEnum;
6
+ }(DevInfoEnum || {}); // 请求设备信息
7
+ export const useDevInfo = devId => {
8
+ return {
9
+ requestDevInfo: () => {
10
+ const params = createSetCommonParams({
11
+ deviceId: devId,
12
+ reqType: DevInfoEnum.query,
13
+ message: {}
14
+ });
15
+ ty.device.sendMqttMessage(params);
16
+ const {
17
+ taskId
18
+ } = params.message;
19
+ return normalResolve(DevInfoEnum.query, taskId);
20
+ }
21
+ };
22
+ };
@@ -0,0 +1,7 @@
1
+ type TDeleteHistoryMap = (mapId: number) => Promise<void>;
2
+ export declare const useHistoryMap: (devId: string) => {
3
+ deleteHistoryMap: TDeleteHistoryMap;
4
+ changeCurrentMap: (mapId: number, url: string, taskId: string) => Promise<void>;
5
+ saveMap: () => Promise<void>;
6
+ };
7
+ export {};
@@ -0,0 +1,62 @@
1
+ import { deleteMultipleMapFile } from '../api/deleteMultipleMapFile';
2
+ import { createSetCommonParams } from './createCommonOptions';
3
+ import { normalResolve } from './promise';
4
+ import { DeleteMapEnum, SaveCurrentMapEnum, UseMapEnum } from './type';
5
+
6
+ // 删除历史地图函数类型定义
7
+
8
+ export const useHistoryMap = devId => {
9
+ // 删除历史地图
10
+
11
+ // 更改当前使用的地图
12
+
13
+ return {
14
+ deleteHistoryMap: async mapId => {
15
+ try {
16
+ await deleteMultipleMapFile(mapId, devId);
17
+ const params = createSetCommonParams({
18
+ deviceId: devId,
19
+ reqType: DeleteMapEnum.set,
20
+ message: {
21
+ mapId
22
+ }
23
+ });
24
+ ty.device.sendMqttMessage(params);
25
+ const {
26
+ taskId
27
+ } = params.message;
28
+ return await normalResolve(DeleteMapEnum.rst, taskId);
29
+ } catch (err) {
30
+ return Promise.reject(err);
31
+ }
32
+ },
33
+ changeCurrentMap: (mapId, url) => {
34
+ const sendData = {
35
+ reqType: UseMapEnum.set,
36
+ mapId,
37
+ url,
38
+ urlLen: url.length
39
+ };
40
+ const params = createSetCommonParams({
41
+ deviceId: devId,
42
+ reqType: UseMapEnum.set,
43
+ message: sendData
44
+ });
45
+ const {
46
+ taskId
47
+ } = params.message;
48
+ ty.device.sendMqttMessage(params);
49
+ return normalResolve(UseMapEnum.query, taskId);
50
+ },
51
+ saveMap: () => {
52
+ const params = createSetCommonParams({
53
+ deviceId: devId,
54
+ reqType: SaveCurrentMapEnum.set,
55
+ message: {
56
+ oper: 0
57
+ }
58
+ });
59
+ return normalResolve(SaveCurrentMapEnum.query, params.message.taskId);
60
+ }
61
+ };
62
+ };
@@ -0,0 +1,12 @@
1
+ import { Point } from '../utils';
2
+ import { PromiseWithRejection } from './promise';
3
+ type TSetPartDivision = (points: Point[], roomId: number, origin: Point) => PromiseWithRejection;
4
+ /**
5
+ * 自定义 Hook,用于房间分隔
6
+ * @param devId 设备ID
7
+ * @returns 包含 setPartDivision 函数的对象
8
+ */
9
+ export declare const usePartDivision: (devId: string) => {
10
+ setPartDivision: TSetPartDivision;
11
+ };
12
+ export {};
@@ -0,0 +1,38 @@
1
+ // 房间分隔
2
+ import { pointsToString } from '../utils';
3
+ import { createSetCommonParams } from './createCommonOptions';
4
+ import { normalResolve } from './promise';
5
+ import { PartDivisionEnum } from './type';
6
+
7
+ // 设置房间分隔函数类型定义
8
+
9
+ /**
10
+ * 自定义 Hook,用于房间分隔
11
+ * @param devId 设备ID
12
+ * @returns 包含 setPartDivision 函数的对象
13
+ */
14
+ export const usePartDivision = devId => {
15
+ /**
16
+ * 设置房间分隔
17
+ * @param points 分隔点数组,SDK方法抛出来的坐标直接传入即可
18
+ * @param roomId 房间ID,当前要分隔的房间
19
+ * @param origin 地图原点坐标
20
+ * @returns Promise<Response> 响应结果
21
+ */
22
+
23
+ return {
24
+ setPartDivision: (points, roomId, origin) => {
25
+ const pointStr = pointsToString(points, origin);
26
+ const params = createSetCommonParams({
27
+ deviceId: devId,
28
+ reqType: PartDivisionEnum.set,
29
+ message: {
30
+ lines: [pointStr],
31
+ ids: [roomId]
32
+ }
33
+ });
34
+ ty.device.sendMqttMessage(params);
35
+ return normalResolve(PartDivisionEnum.query, params.message.taskId);
36
+ }
37
+ };
38
+ };