@ray-js/lamp-schedule-core 1.0.0-beta-2 → 1.0.0-beta-4

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.
@@ -225,9 +225,10 @@ export class RtcTimerFormatter {
225
225
  */
226
226
  if (_dps[EDpCodes.switch_led] === false) {
227
227
  dpDataStr = '00';
228
- } else if (Object.keys(_dps).includes(EDpCodes.colour_data) && Object.keys(_dps).includes(EDpCodes.temp_value)) {
228
+ } else if (Object.keys(_dps).includes(EDpCodes.colour_data) && Object.keys(_dps).includes(EDpCodes.bright_value)) {
229
+ var _dps$EDpCodes$temp_va;
229
230
  const bright_value = _dps[EDpCodes.bright_value];
230
- const temp_value = _dps[EDpCodes.temp_value];
231
+ const temp_value = (_dps$EDpCodes$temp_va = _dps[EDpCodes.temp_value]) !== null && _dps$EDpCodes$temp_va !== void 0 ? _dps$EDpCodes$temp_va : 1000;
231
232
  const {
232
233
  hue,
233
234
  saturation,
@@ -250,9 +251,9 @@ export class RtcTimerFormatter {
250
251
  const valueStr = this.to16(value, 2);
251
252
  dpDataStr = `03${hueStr}${saturationStr}${valueStr}`;
252
253
  } else if (Object.keys(_dps).includes(EDpCodes.bright_value)) {
253
- var _dps$EDpCodes$bright_, _dps$EDpCodes$temp_va;
254
+ var _dps$EDpCodes$bright_, _dps$EDpCodes$temp_va2;
254
255
  const bright_value = (_dps$EDpCodes$bright_ = _dps[EDpCodes.bright_value]) !== null && _dps$EDpCodes$bright_ !== void 0 ? _dps$EDpCodes$bright_ : 100;
255
- const temp_value = (_dps$EDpCodes$temp_va = _dps[EDpCodes.temp_value]) !== null && _dps$EDpCodes$temp_va !== void 0 ? _dps$EDpCodes$temp_va : 0;
256
+ const temp_value = (_dps$EDpCodes$temp_va2 = _dps[EDpCodes.temp_value]) !== null && _dps$EDpCodes$temp_va2 !== void 0 ? _dps$EDpCodes$temp_va2 : 0;
256
257
  const brightStr = this.to16(bright_value, 2);
257
258
  const temperatureStr = this.to16(temp_value, 2);
258
259
  dpDataStr = `02${brightStr}${temperatureStr}`;
@@ -10,12 +10,21 @@ type TDpRes<T> = {
10
10
  };
11
11
  export declare function useBaseLightDp<T>(dpCode: string, defaultDpValue?: T): TDpRes<T>;
12
12
  export declare const getDpDataByMesh: (dpCodes?: string[]) => void;
13
+ export declare const fetchDpData: (dpCodes?: string[]) => void;
13
14
  /**
14
- * 主动拉取 dp 数据
15
+ * 主动拉取 dp 数据, 仅支持 sigmesh 设备
15
16
  * @param dpCodes dpCode 数组
16
17
  * @returns refresh 刷新 dp 数据
17
18
  */
18
19
  export declare const useFetchDpDataByMesh: (dpCodes: string[]) => {
19
20
  refresh: () => void;
20
21
  };
22
+ /**
23
+ * 主动拉取 dp 数据, 不限制协议
24
+ * @param dpCodes dpCode 数组
25
+ * @returns refresh 刷新 dp 数据
26
+ */
27
+ export declare const useFetchDpData: (dpCodes: string[]) => {
28
+ refresh: () => void;
29
+ };
21
30
  export {};
@@ -134,8 +134,48 @@ export const getDpDataByMesh = function () {
134
134
  scheduleLogger.error('getDpDataByMesh 调用失败:', error);
135
135
  }
136
136
  };
137
+
138
+ // 查询设备的 DP
139
+ export const fetchDpData = function () {
140
+ let dpCodes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
141
+ if (!Array.isArray(dpCodes)) {
142
+ scheduleLogger.error('fetchDpData: 参数dpCodes必须是数组');
143
+ return;
144
+ }
145
+ if (dpCodes.length >= 5) {
146
+ scheduleLogger.warn('fetchDpData: 单次查询 dp 数过多,dp 可能响应不及时,请分次查询');
147
+ }
148
+ scheduleLogger.debug('fetchDpData 开始查询DP参数 dpCodes:', dpCodes);
149
+ const deviceData = devIdOrGroupIdCache.get();
150
+ const deviceId = deviceData === null || deviceData === void 0 ? void 0 : deviceData.devId;
151
+ if (!deviceId) {
152
+ scheduleLogger.error('fetchDpData: 未能获取到deviceId');
153
+ return;
154
+ }
155
+ const dpIds = dpCodes.map(item => getDpIdByDpCode(item)).filter(i => !!i).map(String); // 简化字符串转换
156
+
157
+ if (dpIds.length === 0) {
158
+ scheduleLogger.warn('fetchDpData', dpCodes, '未匹配到 dp');
159
+ return;
160
+ }
161
+ scheduleLogger.debug('fetchDpData 查询DP转换后参数 dpIds:', dpIds);
162
+ try {
163
+ queryDps({
164
+ deviceId,
165
+ dpIds,
166
+ success: e => {
167
+ scheduleLogger.debug('fetchDpData 查询DP参数 success:', e);
168
+ },
169
+ fail: err => {
170
+ scheduleLogger.warn('fetchDpData 查询DP参数 fail:', err);
171
+ }
172
+ });
173
+ } catch (error) {
174
+ scheduleLogger.error('fetchDpData 调用失败:', error);
175
+ }
176
+ };
137
177
  /**
138
- * 主动拉取 dp 数据
178
+ * 主动拉取 dp 数据, 仅支持 sigmesh 设备
139
179
  * @param dpCodes dpCode 数组
140
180
  * @returns refresh 刷新 dp 数据
141
181
  */
@@ -148,7 +188,7 @@ export const useFetchDpDataByMesh = dpCodes => {
148
188
  return;
149
189
  }
150
190
  scheduleLogger.debug('getDpDataByMeshFn get:', dpCodes);
151
- getDpDataByMesh(dpCodes);
191
+ fetchDpData(dpCodes);
152
192
  };
153
193
  useEffect(() => {
154
194
  const isSigMeshDevice = support === null || support === void 0 ? void 0 : support.isSigMeshDevice();
@@ -162,4 +202,23 @@ export const useFetchDpDataByMesh = dpCodes => {
162
202
  return {
163
203
  refresh: getDpDataByMeshFn
164
204
  };
205
+ };
206
+
207
+ /**
208
+ * 主动拉取 dp 数据, 不限制协议
209
+ * @param dpCodes dpCode 数组
210
+ * @returns refresh 刷新 dp 数据
211
+ */
212
+ export const useFetchDpData = dpCodes => {
213
+ const getDpDataFn = () => {
214
+ scheduleLogger.debug('getDpDataFn get:', dpCodes);
215
+ fetchDpData(dpCodes);
216
+ };
217
+ useEffect(() => {
218
+ scheduleLogger.debug('useFetchDpData get:', dpCodes);
219
+ getDpDataFn();
220
+ }, [dpCodes.join(',')]);
221
+ return {
222
+ refresh: getDpDataFn
223
+ };
165
224
  };
@@ -1,4 +1,4 @@
1
- import { useBaseLightDp, useFetchDpDataByMesh } from './useBaseLightDp';
1
+ import { useBaseLightDp, useFetchDpData } from './useBaseLightDp';
2
2
  import { scheduleDpCodes } from '../config/dpCodes';
3
3
  export function useCountdownDp() {
4
4
  let dpCode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : scheduleDpCodes.COUNTDOWN;
@@ -21,7 +21,7 @@ export const useCountdownDpPull = function () {
21
21
  let countdownCode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : scheduleDpCodes.COUNTDOWN;
22
22
  const {
23
23
  refresh
24
- } = useFetchDpDataByMesh([countdownCode]);
24
+ } = useFetchDpData([countdownCode]);
25
25
  return {
26
26
  refresh
27
27
  };
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable no-param-reassign */
2
2
  import { useMemo } from 'react';
3
- import { useBaseLightDp, useFetchDpDataByMesh } from './useBaseLightDp';
3
+ import { useBaseLightDp, useFetchDpData } from './useBaseLightDp';
4
4
  import { scheduleDpCodes } from '../config/dpCodes';
5
5
  import { scheduleLogger as ScheduleLogger } from '../utils/ScheduleLogger';
6
6
  import { timerReportParser } from '../dpParser';
@@ -41,7 +41,7 @@ export const useTimerReportDpPull = function () {
41
41
  ScheduleLogger.debug('useTimerReportDpPull 执行');
42
42
  const {
43
43
  refresh
44
- } = useFetchDpDataByMesh([timerReport]);
44
+ } = useFetchDpData([timerReport]);
45
45
  return {
46
46
  refresh
47
47
  };
package/lib/index.d.ts CHANGED
@@ -19,7 +19,7 @@ export { useWakeUpDp } from './hooks/useWakeUpDp';
19
19
  export { useRandomDp } from './hooks/useRandomDp';
20
20
  export { useCycleDp } from './hooks/useCycleDp';
21
21
  export { useWakeUpSupport } from './hooks/useWakeUpSupport';
22
- export { useBaseLightDp, useFetchDpDataByMesh, getDpDataByMesh } from './hooks/useBaseLightDp';
22
+ export { useBaseLightDp, useFetchDpDataByMesh, getDpDataByMesh, useFetchDpData } from './hooks/useBaseLightDp';
23
23
  export { useTimerReportDp, useTimerReportDpPull } from './hooks/useTimerReportDp';
24
24
  /** Conflict 冲突判断 */
25
25
  export { transScheduleListToConflictList } from './conflict/transform';
package/lib/index.js CHANGED
@@ -24,7 +24,7 @@ export { useWakeUpDp } from './hooks/useWakeUpDp';
24
24
  export { useRandomDp } from './hooks/useRandomDp';
25
25
  export { useCycleDp } from './hooks/useCycleDp';
26
26
  export { useWakeUpSupport } from './hooks/useWakeUpSupport';
27
- export { useBaseLightDp, useFetchDpDataByMesh, getDpDataByMesh } from './hooks/useBaseLightDp';
27
+ export { useBaseLightDp, useFetchDpDataByMesh, getDpDataByMesh, useFetchDpData } from './hooks/useBaseLightDp';
28
28
  export { useTimerReportDp, useTimerReportDpPull } from './hooks/useTimerReportDp';
29
29
 
30
30
  /** Conflict 冲突判断 */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ray-js/lamp-schedule-core",
3
- "version": "1.0.0-beta-2",
3
+ "version": "1.0.0-beta-4",
4
4
  "description": "照明计划模块核心能力",
5
5
  "main": "./lib/index.js",
6
6
  "files": [