Commit 06064c9193f006e535281b7e6f71e5087a52ffd7
1 parent
36abd69f
fix: data component sensor device send command not lssued by the gateway device
Showing
4 changed files
with
25 additions
and
2 deletions
| ... | ... | @@ -44,6 +44,7 @@ enum DeviceUrl { |
| 44 | 44 | GET_SLAVE_DEVICE = '/device/list/slave', |
| 45 | 45 | GET_DEVICE_ATTRIBUTE = '/device/attributes', |
| 46 | 46 | GET_DEVICE = '/device/list', |
| 47 | + GET_DEVICE_RELATION = '/device/device/relation', | |
| 47 | 48 | } |
| 48 | 49 | |
| 49 | 50 | /** |
| ... | ... | @@ -224,3 +225,10 @@ export const sendCommandOneway = (params: SendCommandParams) => { |
| 224 | 225 | { joinPrefix: false } |
| 225 | 226 | ); |
| 226 | 227 | }; |
| 228 | + | |
| 229 | +export const getDeviceRelation = (params: { deviceId: string; isSlave: boolean }) => { | |
| 230 | + return defHttp.get<string>({ | |
| 231 | + url: DeviceUrl.GET_DEVICE_RELATION, | |
| 232 | + params, | |
| 233 | + }); | |
| 234 | +}; | ... | ... |
| 1 | 1 | import { RadioRecord } from '../../../views/visual/board/detail/config/util'; |
| 2 | +import { DeviceTypeEnum } from '../../device/model/deviceModel'; | |
| 2 | 3 | |
| 3 | 4 | export interface AddDataBoardParams { |
| 4 | 5 | name: string; |
| ... | ... | @@ -86,6 +87,7 @@ export interface DataSource { |
| 86 | 87 | width?: number; |
| 87 | 88 | height?: number; |
| 88 | 89 | radio?: RadioRecord; |
| 90 | + deviceType?: DeviceTypeEnum; | |
| 89 | 91 | } |
| 90 | 92 | |
| 91 | 93 | export interface DataComponentRecord { | ... | ... |
| 1 | 1 | import { DataComponentRecord, DataSource } from '/@/api/dataBoard/model'; |
| 2 | +import { DeviceTypeEnum } from '/@/api/device/model/deviceModel'; | |
| 2 | 3 | |
| 3 | 4 | export interface ControlComponentLayout { |
| 4 | 5 | [key: string]: any; |
| ... | ... | @@ -14,6 +15,8 @@ export interface ControlComponentValue { |
| 14 | 15 | fontColor?: string; |
| 15 | 16 | slaveDeviceId?: string; |
| 16 | 17 | deviceProfileId?: string; |
| 18 | + deviceType?: DeviceTypeEnum; | |
| 19 | + organizationId?: string; | |
| 17 | 20 | } |
| 18 | 21 | |
| 19 | 22 | export const ControlComponentDefaultConfig: ControlComponentValue = { |
| ... | ... | @@ -34,7 +37,9 @@ export const transformControlConfig = ( |
| 34 | 37 | attributeRename: dataSourceRecord.attributeRename, |
| 35 | 38 | deviceProfileId: dataSourceRecord.deviceProfileId, |
| 36 | 39 | deviceId: dataSourceRecord.deviceId, |
| 40 | + deviceType: dataSourceRecord.deviceType, | |
| 37 | 41 | slaveDeviceId: dataSourceRecord.slaveDeviceId, |
| 42 | + organizationId: dataSourceRecord.organizationId, | |
| 38 | 43 | } as ControlComponentValue, |
| 39 | 44 | }; |
| 40 | 45 | }; | ... | ... |
| 1 | 1 | import { ControlComponentValue } from './control.config'; |
| 2 | 2 | import { getDeviceProfile } from '/@/api/alarm/position'; |
| 3 | -import { sendCommandOneway } from '/@/api/dataBoard'; | |
| 3 | +import { getDeviceRelation, sendCommandOneway } from '/@/api/dataBoard'; | |
| 4 | +import { DeviceTypeEnum } from '/@/api/device/model/deviceModel'; | |
| 4 | 5 | import { getModelServices } from '/@/api/device/modelOfMatter'; |
| 5 | 6 | import { useMessage } from '/@/hooks/web/useMessage'; |
| 6 | 7 | import { isString } from '/@/utils/is'; |
| ... | ... | @@ -9,7 +10,8 @@ const { createMessage } = useMessage(); |
| 9 | 10 | export function useSendCommand() { |
| 10 | 11 | const sendCommand = async (record: ControlComponentValue, value: any) => { |
| 11 | 12 | if (!record) return; |
| 12 | - const { deviceId, deviceProfileId, attribute } = record; | |
| 13 | + const { deviceProfileId, attribute, deviceType } = record; | |
| 14 | + let { deviceId } = record; | |
| 13 | 15 | if (!deviceId) return; |
| 14 | 16 | try { |
| 15 | 17 | const list = await getDeviceProfile(); |
| ... | ... | @@ -24,6 +26,12 @@ export function useSendCommand() { |
| 24 | 26 | const sendCommand = record?.functionJson.inputData?.at(0)?.serviceCommand || ''; |
| 25 | 27 | params = isString(sendCommand) ? sendCommand : JSON.stringify(sendCommand); |
| 26 | 28 | } |
| 29 | + if (deviceType === DeviceTypeEnum.SENSOR) { | |
| 30 | + deviceId = await getDeviceRelation({ | |
| 31 | + deviceId, | |
| 32 | + isSlave: deviceType === DeviceTypeEnum.SENSOR, | |
| 33 | + }); | |
| 34 | + } | |
| 27 | 35 | await sendCommandOneway({ |
| 28 | 36 | deviceId, |
| 29 | 37 | value: { | ... | ... |