@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,66 @@
1
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
+ import { getVoiceList } from '@ray-js/ray';
3
+ import { createSetCommonParams } from './createCommonOptions';
4
+ import { normalResolve } from './promise';
5
+ import { VoiceLanguageEnum } from './type';
6
+
7
+ // 设置语音语言函数类型定义
8
+
9
+ // 请求当前使用的机器语音
10
+
11
+ /**
12
+ * 自定义 Hook,用于语音语言设置
13
+ * @param devId 设备ID
14
+ * @returns 包含 requestAllVoices, requestVoiceInUse 和 setVoice 函数的对象
15
+ */
16
+ export const useVoice = devId => {
17
+ /**
18
+ * 请求所有语音语言
19
+ * @returns Promise<any> 响应结果
20
+ */
21
+
22
+ /**
23
+ * 请求当前使用的语音语言
24
+ * @returns Promise<any> 响应结果
25
+ */
26
+
27
+ /**
28
+ * 设置语音语言
29
+ * @param message 包含语音语言设置参数的对象
30
+ * @returns Promise<Response> 响应结果
31
+ */
32
+
33
+ return {
34
+ requestAllVoices: async () => {
35
+ const res = await getVoiceList({
36
+ devId: devId,
37
+ offset: 0,
38
+ limit: 100
39
+ });
40
+ return res;
41
+ },
42
+ requestVoiceInUse: () => {
43
+ const params = createSetCommonParams({
44
+ deviceId: devId,
45
+ reqType: VoiceLanguageEnum.query
46
+ });
47
+ const {
48
+ taskId
49
+ } = params.message;
50
+ ty.device.sendMqttMessage(params);
51
+ return normalResolve(VoiceLanguageEnum.query, taskId);
52
+ },
53
+ setVoice: message => {
54
+ const sendData = _objectSpread(_objectSpread({}, message), {}, {
55
+ urlLen: message.url.length
56
+ });
57
+ const params = createSetCommonParams({
58
+ deviceId: devId,
59
+ reqType: VoiceLanguageEnum.set,
60
+ message: sendData
61
+ });
62
+ ty.device.sendMqttMessage(params);
63
+ return normalResolve(VoiceLanguageEnum.query, params.message.taskId);
64
+ }
65
+ };
66
+ };
@@ -0,0 +1,14 @@
1
+ import { RoomPreference } from './type';
2
+ type TSetZoneClean = (message: Partial<Pick<RoomPreference, 'suctions' | 'cisterns' | 'cleanCounts' | 'yMops' | 'sweepMopModes'>> & {
3
+ polygons: string[];
4
+ names?: string[];
5
+ }) => Promise<void>;
6
+ /**
7
+ * 划区清扫
8
+ * @returns
9
+ */
10
+ export declare const useZoneClean: (devId: string) => {
11
+ requestZoneClean: () => Promise<void>;
12
+ setZoneClean: TSetZoneClean;
13
+ };
14
+ export {};
@@ -0,0 +1,81 @@
1
+ // 划区清扫
2
+
3
+ import { isArray } from 'lodash-es';
4
+ import { createSetCommonParams } from './createCommonOptions';
5
+ import { normalResolve } from './promise';
6
+ import { ZoneCleanEnum } from './type';
7
+ /**
8
+ * 划区清扫
9
+ * @returns
10
+ */
11
+ export const useZoneClean = devId => {
12
+ // 请求划区清扫信息
13
+
14
+ // 设置划区清扫
15
+
16
+ return {
17
+ requestZoneClean: () => {
18
+ const params = createSetCommonParams({
19
+ deviceId: devId,
20
+ reqType: ZoneCleanEnum.query
21
+ });
22
+ ty.device.sendMqttMessage(params);
23
+ return normalResolve(ZoneCleanEnum.query, params.message.taskId);
24
+ },
25
+ setZoneClean: message => {
26
+ const {
27
+ polygons
28
+ } = message;
29
+ if (!isArray(polygons) || isArray(polygons) && polygons.length === 0) {
30
+ return Promise.reject(new Error('message is required'));
31
+ }
32
+ const num = polygons.length;
33
+ const {
34
+ suctions = new Array(num).fill(''),
35
+ cisterns = new Array(num).fill(''),
36
+ cleanCounts = new Array(num).fill(1),
37
+ yMops = new Array(num).fill(-1),
38
+ sweepMopModes = new Array(num).fill('only_sweep'),
39
+ names = new Array(num).fill('')
40
+ } = message;
41
+ if (suctions && !isArray(suctions)) {
42
+ return Promise.reject(new Error('suctions is illegal'));
43
+ }
44
+ if (cisterns && !isArray(cisterns)) {
45
+ return Promise.reject(new Error('cisterns is illegal'));
46
+ }
47
+ if (cleanCounts && !isArray(cleanCounts)) {
48
+ return Promise.reject(new Error('cleanCounts is illegal'));
49
+ }
50
+ if (yMops && !isArray(yMops)) {
51
+ return Promise.reject(new Error('yMops is illegal'));
52
+ }
53
+ if (sweepMopModes && !isArray(sweepMopModes)) {
54
+ return Promise.reject(new Error('sweepMopModes is illegal'));
55
+ }
56
+ if (names && !isArray(names)) {
57
+ return Promise.reject(new Error('names is illegal'));
58
+ }
59
+ if (num !== suctions.length || num !== cisterns.length || num !== cleanCounts.length || num !== yMops.length || num !== sweepMopModes.length || num !== names.length) {
60
+ return Promise.reject(new Error('The length of the parameters is inconsistent'));
61
+ }
62
+ const params = createSetCommonParams({
63
+ deviceId: devId,
64
+ reqType: ZoneCleanEnum.set,
65
+ message: {
66
+ num: polygons.length,
67
+ switchGo: true,
68
+ polygons,
69
+ suctions,
70
+ cisterns,
71
+ cleanCounts,
72
+ yMops,
73
+ sweepMopModes,
74
+ names
75
+ }
76
+ });
77
+ ty.device.sendMqttMessage(params);
78
+ return normalResolve(ZoneCleanEnum.query, params.message.taskId);
79
+ }
80
+ };
81
+ };
@@ -0,0 +1,8 @@
1
+ export type Point = {
2
+ x: number;
3
+ y: number;
4
+ };
5
+ export declare const emitter: import("mitt").Emitter<Record<import("mitt").EventType, unknown>>;
6
+ export declare const pointsToString: (points: Point[], origin: Point) => string;
7
+ export declare const isJSONString: (str: any) => boolean;
8
+ export declare const parseJSON: (str: any) => any;
@@ -0,0 +1,47 @@
1
+ import mitt from 'mitt';
2
+ import { floor, join, map } from 'lodash-es';
3
+ export const emitter = mitt();
4
+ const pointToString = point => {
5
+ return `${point.x},${point.y}`;
6
+ };
7
+ export const pointsToString = (points, origin) => {
8
+ let newPoints = [];
9
+ const ox = origin.x;
10
+ const oy = origin.y;
11
+ newPoints = map(points, i => {
12
+ return {
13
+ x: floor(i.x - ox, 0),
14
+ y: floor(-(i.y - oy), 0)
15
+ };
16
+ });
17
+ return join(map(newPoints, pointToString), ',');
18
+ };
19
+ export const isJSONString = str => {
20
+ if (typeof str !== 'string') {
21
+ return false;
22
+ }
23
+ try {
24
+ JSON.parse(str);
25
+ return true;
26
+ } catch (e) {
27
+ return false;
28
+ }
29
+ };
30
+ export const parseJSON = str => {
31
+ let rst;
32
+ if (str && {}.toString.call(str) === '[object String]') {
33
+ try {
34
+ rst = JSON.parse(str);
35
+ } catch (e) {
36
+ try {
37
+ // eslint-disable-next-line
38
+ rst = eval(`(${str})`);
39
+ } catch (e2) {
40
+ rst = str;
41
+ }
42
+ }
43
+ } else {
44
+ rst = typeof str === 'undefined' ? {} : str;
45
+ }
46
+ return rst;
47
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ray-js/robot-data-stream",
3
- "version": "0.0.10-beta-10",
3
+ "version": "0.0.10-beta-12",
4
4
  "description": "扫地机P2P数据流标准化组件",
5
5
  "main": "lib/index",
6
6
  "files": [
@@ -38,7 +38,10 @@
38
38
  "clsx": "^1.2.1",
39
39
  "lodash-es": "^4.17.21",
40
40
  "mitt": "^3.0.1",
41
- "moment": "^2.30.1"
41
+ "moment": "^2.30.1",
42
+ "react": "^17.0.2",
43
+ "react-dom": "^17.0.2",
44
+ "crypto-js": "^4.2.0"
42
45
  },
43
46
  "devDependencies": {
44
47
  "@commitlint/cli": "^7.2.1",