Skip to content

Commit 0bb37a9

Browse files
Fix data target testing for lorawan device (#273)
1 parent f64082c commit 0bb37a9

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

src/modules/device-management/data-target.module.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import { DataTargetSenderModule } from "@modules/data-target/data-target-sender.
1616
import { PayloadDecoderExecutorModuleModule } from "@modules/payload-decoder-executor-module.module";
1717
import { PayloadDecoderModule } from "@modules/device-management/payload-decoder.module";
1818
import { IoTDeviceModule } from "@modules/device-management/iot-device.module";
19+
import { ChirpstackAdministrationModule } from "@modules/device-integrations/chirpstack-administration.module";
1920

2021
@Module({
2122
imports: [
@@ -28,6 +29,7 @@ import { IoTDeviceModule } from "@modules/device-management/iot-device.module";
2829
forwardRef(() => PayloadDecoderModule),
2930
forwardRef(() => IoTDeviceModule),
3031
PayloadDecoderExecutorModuleModule,
32+
ChirpstackAdministrationModule,
3133
],
3234
exports: [DataTargetService, DataTargetLogService, DataTargetSenderService],
3335
controllers: [DataTargetController, DatatargetLogController],

src/services/data-targets/data-target.service.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ import { TransformedPayloadDto } from "@dto/kafka/transformed-payload.dto";
2626
import { PayloadDecoderExecutorService } from "@services/data-management/payload-decoder-executor.service";
2727
import { PayloadDecoderService } from "@services/data-management/payload-decoder.service";
2828
import { IoTDeviceService } from "@services/device-management/iot-device.service";
29+
import { IoTDeviceType } from "@enum/device-type.enum";
30+
import { ChirpstackDeviceService } from "@services/chirpstack/chirpstack-device.service";
2931

3032
@Injectable()
3133
export class DataTargetService {
@@ -47,7 +49,8 @@ export class DataTargetService {
4749
@Inject(forwardRef(() => PayloadDecoderService))
4850
private payloadDecoderService: PayloadDecoderService,
4951
@Inject(forwardRef(() => IoTDeviceService))
50-
private iotDeviceService: IoTDeviceService
52+
private iotDeviceService: IoTDeviceService,
53+
private chirpstackDeviceService: ChirpstackDeviceService
5154
) {}
5255

5356
async findAndCountAllWithPagination(
@@ -214,7 +217,7 @@ export class DataTargetService {
214217

215218
public async testDataTarget(testDto: TestDataTargetDto): Promise<TestDataTargetResultDto> {
216219
const dataTarget = await this.findOne(testDto.dataTargetId);
217-
const iotDevice = await this.iotDeviceService.findOne(testDto.iotDeviceId);
220+
let iotDevice = await this.iotDeviceService.findOne(testDto.iotDeviceId);
218221

219222
if (dataTarget.type === DataTargetType.MQTT && !testDto.dataPackage) {
220223
const result = await this.dataTargetSenderService.testMqttDataTarget(dataTarget);
@@ -224,6 +227,10 @@ export class DataTargetService {
224227
let rawPackage = JSON.parse(testDto.dataPackage);
225228
if (testDto.payloadDecoderId) {
226229
const payloadDecoder = await this.payloadDecoderService.findOne(testDto.payloadDecoderId);
230+
if (iotDevice.type === IoTDeviceType.LoRaWAN && payloadDecoder.decodingFunction.includes("lorawanSettings")) {
231+
iotDevice = await this.chirpstackDeviceService.enrichLoRaWANDevice(iotDevice);
232+
}
233+
227234
const decoded = await this.payloadDecoderExecutorService.callUntrustedCode(
228235
payloadDecoder.decodingFunction,
229236
iotDevice,

0 commit comments

Comments
 (0)