@ray-js/robot-data-stream 0.0.16-beta.1 → 0.0.16-beta.2

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.
@@ -47,7 +47,7 @@ export const useRoomProperty = () => {
47
47
  setRoomProperty: data => {
48
48
  return new Promise((resolve, reject) => {
49
49
  try {
50
- var _data$num, _data$suctions, _data$cleanCounts, _data$yMops, _data$sweepMopModes, _data$names, _data$routePreference;
50
+ var _data$num, _data$suctions, _data$cleanCounts, _data$yMops, _data$sweepMopModes, _data$names;
51
51
  if (!useMqtt) {
52
52
  reject(new Error('useMqtt is not used'));
53
53
  return;
@@ -58,7 +58,7 @@ export const useRoomProperty = () => {
58
58
  ids
59
59
  } = data;
60
60
  const len = ids.length;
61
- const sendData = _objectSpread({
61
+ const sendData = _objectSpread(_objectSpread({
62
62
  num: (_data$num = data.num) !== null && _data$num !== void 0 ? _data$num : len,
63
63
  ids,
64
64
  suctions: (_data$suctions = data.suctions) !== null && _data$suctions !== void 0 ? _data$suctions : new Array(len).fill('closed'),
@@ -68,9 +68,10 @@ export const useRoomProperty = () => {
68
68
  names: (_data$names = data.names) !== null && _data$names !== void 0 ? _data$names : new Array(len).fill(''),
69
69
  nameLabels: data.nameLabels,
70
70
  floorTypes: data.floorTypes,
71
- orders: data.orders,
72
- routePreferences: (_data$routePreference = data.routePreferences) !== null && _data$routePreference !== void 0 ? _data$routePreference : new Array(len).fill('standard')
73
- }, normalizeWaterPreferencePayload(data.cisterns, data.waterValues));
71
+ orders: data.orders
72
+ }, data.routePreferences && {
73
+ routePreferences: data.routePreferences
74
+ }), normalizeWaterPreferencePayload(data.cisterns, data.waterValues));
74
75
 
75
76
  // 使用 TypeBox Schema 进行参数验证(包含自定义验证逻辑)
76
77
  const validatedData = validator.validate('set_room_property', sendData);
@@ -1,4 +1,6 @@
1
1
  import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
+ const _excluded = ["routePreferences"];
2
4
  import "core-js/modules/esnext.iterator.map.js";
3
5
  // 定时
4
6
  import { encodeDeviceTimer0x30 } from '@ray-js/robot-protocol';
@@ -56,9 +58,12 @@ export const useSchedule = () => {
56
58
  // 使用 TypeBox Schema 进行参数验证
57
59
  const validatedData = validator.validate('set_schedule', message);
58
60
  const list = validatedData.list.map(item => {
59
- var _item$routePreference, _item$ids;
60
- return _objectSpread(_objectSpread(_objectSpread({}, item), normalizeWaterPreferencePayload(item.cisterns, item.waterValues)), {}, {
61
- routePreferences: (_item$routePreference = item.routePreferences) !== null && _item$routePreference !== void 0 ? _item$routePreference : new Array(((_item$ids = item.ids) === null || _item$ids === void 0 ? void 0 : _item$ids.length) || 1).fill('standard')
61
+ const {
62
+ routePreferences
63
+ } = item,
64
+ rest = _objectWithoutProperties(item, _excluded);
65
+ return _objectSpread(_objectSpread(_objectSpread({}, rest), normalizeWaterPreferencePayload(item.cisterns, item.waterValues)), routePreferences && {
66
+ routePreferences
62
67
  });
63
68
  });
64
69
  if (useMqtt) {
@@ -2,6 +2,7 @@ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
2
  import "core-js/modules/esnext.iterator.constructor.js";
3
3
  import "core-js/modules/esnext.iterator.for-each.js";
4
4
  import "core-js/modules/esnext.iterator.map.js";
5
+ import "core-js/modules/esnext.iterator.some.js";
5
6
  // 选区清扫
6
7
  import { encodeRoomClean0x14, requestRoomClean0x15 } from '@ray-js/robot-protocol';
7
8
  import { useContext } from 'react';
@@ -84,15 +85,14 @@ export const useSelectRoomClean = () => {
84
85
  const cleanCounts = [];
85
86
  const yMops = [];
86
87
  const sweepMopModes = [];
87
- const routePreferences = [];
88
+ const prefs = rooms.map(room => room.routePreference);
88
89
  rooms.forEach(room => {
89
- var _room$suction, _room$cleanTimes, _room$yMop, _room$sweepMopMode, _room$routePreference;
90
+ var _room$suction, _room$cleanTimes, _room$yMop, _room$sweepMopMode;
90
91
  ids.push(room.roomId);
91
92
  suctions.push((_room$suction = room.suction) !== null && _room$suction !== void 0 ? _room$suction : '');
92
93
  cleanCounts.push((_room$cleanTimes = room.cleanTimes) !== null && _room$cleanTimes !== void 0 ? _room$cleanTimes : 1);
93
94
  yMops.push((_room$yMop = room.yMop) !== null && _room$yMop !== void 0 ? _room$yMop : -1);
94
95
  sweepMopModes.push((_room$sweepMopMode = room.sweepMopMode) !== null && _room$sweepMopMode !== void 0 ? _room$sweepMopMode : 'only_sweep');
95
- routePreferences.push((_room$routePreference = room.routePreference) !== null && _room$routePreference !== void 0 ? _room$routePreference : 'standard');
96
96
  });
97
97
  const waterPayload = normalizeWaterPreferencePayload(rooms.map(room => {
98
98
  var _room$cistern;
@@ -101,14 +101,16 @@ export const useSelectRoomClean = () => {
101
101
  var _room$waterValue;
102
102
  return (_room$waterValue = room.waterValue) !== null && _room$waterValue !== void 0 ? _room$waterValue : '';
103
103
  }));
104
- sendStructuredMessage(RoomCleanSetEnum.set, _objectSpread(_objectSpread({
104
+ sendStructuredMessage(RoomCleanSetEnum.set, _objectSpread(_objectSpread(_objectSpread({
105
105
  ids,
106
106
  suctions
107
107
  }, waterPayload), {}, {
108
108
  cleanCounts,
109
109
  yMops,
110
- sweepMopModes,
111
- routePreferences,
110
+ sweepMopModes
111
+ }, prefs.some(Boolean) && {
112
+ routePreferences: prefs.map(p => p !== null && p !== void 0 ? p : 'standard')
113
+ }), {}, {
112
114
  num: rooms.length
113
115
  }), resolve, error => reject(handleMqttError(error, 'Failed to set room clean')), RoomCleanSetEnum.query // 响应类型是 query,不是 set
114
116
  );
@@ -146,10 +148,7 @@ export const useSelectRoomClean = () => {
146
148
  var _room$sweepMopMode2;
147
149
  return (_room$sweepMopMode2 = room.sweepMopMode) !== null && _room$sweepMopMode2 !== void 0 ? _room$sweepMopMode2 : 'only_sweep';
148
150
  });
149
- const routePreferences = rooms.map(room => {
150
- var _room$routePreference2;
151
- return (_room$routePreference2 = room.routePreference) !== null && _room$routePreference2 !== void 0 ? _room$routePreference2 : 'standard';
152
- });
151
+ const prefs = rooms.map(room => room.routePreference);
153
152
  resolve(_objectSpread(_objectSpread({
154
153
  success: true,
155
154
  errCode: 0,
@@ -161,8 +160,9 @@ export const useSelectRoomClean = () => {
161
160
  }, waterPayload), {}, {
162
161
  cleanCounts,
163
162
  yMops,
164
- sweepMopModes,
165
- routePreferences
163
+ sweepMopModes
164
+ }, prefs.some(Boolean) && {
165
+ routePreferences: prefs.map(p => p !== null && p !== void 0 ? p : 'standard')
166
166
  }));
167
167
  } catch (error) {
168
168
  reject(handleMqttError(error, 'Failed to set room clean'));
@@ -67,20 +67,21 @@ export const useSpotClean = () => {
67
67
  cleanCounts = new Array(num).fill(1),
68
68
  yMops = new Array(num).fill(-1),
69
69
  sweepMopModes = new Array(num).fill('only_sweep'),
70
- routePreferences = new Array(num).fill('standard'),
70
+ routePreferences,
71
71
  names
72
72
  } = validatedData;
73
73
  if (useMqtt) {
74
- sendStructuredMessage(SpotCleanEnum.set, _objectSpread(_objectSpread({
74
+ sendStructuredMessage(SpotCleanEnum.set, _objectSpread(_objectSpread(_objectSpread({
75
75
  num,
76
76
  polygons: spots.map(spot => pointsToString([spot], origin)),
77
77
  suctions
78
78
  }, waterPayload), {}, {
79
79
  cleanCounts,
80
80
  yMops,
81
- sweepMopModes,
81
+ sweepMopModes
82
+ }, routePreferences && {
82
83
  routePreferences
83
- }, names && {
84
+ }), names && {
84
85
  names
85
86
  }), resolve, error => reject(handleMqttError(error, 'Failed to set spot clean')), SpotCleanEnum.query // 响应类型是 query,不是 set
86
87
  );
@@ -94,7 +95,7 @@ export const useSpotClean = () => {
94
95
  point: spots[0]
95
96
  });
96
97
  devices.common.model.actions.command_trans.set(command);
97
- resolve(_objectSpread(_objectSpread({
98
+ resolve(_objectSpread(_objectSpread(_objectSpread({
98
99
  success: true,
99
100
  errCode: 0,
100
101
  reqType: SpotCleanEnum.query,
@@ -105,9 +106,10 @@ export const useSpotClean = () => {
105
106
  }, waterPayload), {}, {
106
107
  cleanCounts,
107
108
  yMops,
108
- sweepMopModes,
109
+ sweepMopModes
110
+ }, routePreferences && {
109
111
  routePreferences
110
- }, names && {
112
+ }), names && {
111
113
  names
112
114
  }));
113
115
  } catch (error) {
@@ -81,7 +81,7 @@ export const useZoneClean = () => {
81
81
  cleanCounts = new Array(num).fill(1),
82
82
  yMops = new Array(num).fill(-1),
83
83
  sweepMopModes = new Array(num).fill('only_sweep'),
84
- routePreferences = new Array(num).fill('standard')
84
+ routePreferences
85
85
  } = params;
86
86
  const zoneCleanData = _objectSpread(_objectSpread({
87
87
  zones: zones.map(_ref => {
@@ -101,7 +101,8 @@ export const useZoneClean = () => {
101
101
  }, waterPayload), {}, {
102
102
  cleanCounts,
103
103
  yMops,
104
- sweepMopModes,
104
+ sweepMopModes
105
+ }, routePreferences && {
105
106
  routePreferences
106
107
  });
107
108
 
@@ -124,7 +125,8 @@ export const useZoneClean = () => {
124
125
  }, waterPayload), {}, {
125
126
  cleanCounts: validatedData.cleanCounts,
126
127
  yMops: validatedData.yMops,
127
- sweepMopModes: validatedData.sweepMopModes,
128
+ sweepMopModes: validatedData.sweepMopModes
129
+ }, validatedData.routePreferences && {
128
130
  routePreferences: validatedData.routePreferences
129
131
  });
130
132
  if (useMqtt) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ray-js/robot-data-stream",
3
- "version": "0.0.16-beta.1",
3
+ "version": "0.0.16-beta.2",
4
4
  "description": "扫地机P2P数据流标准化组件",
5
5
  "main": "lib/index",
6
6
  "files": [