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

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.
@@ -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-3",
4
4
  "description": "照明计划模块核心能力",
5
5
  "main": "./lib/index.js",
6
6
  "files": [