diff --git a/src/app/_models/mqtt_base.ts b/src/app/_models/mqtt_base.ts index 4c79368..9bc4aad 100644 --- a/src/app/_models/mqtt_base.ts +++ b/src/app/_models/mqtt_base.ts @@ -56,6 +56,12 @@ export class MQTTEntity implements iMQTTEntityBase { } return jsonObject; } + + get size(): number { + this._size = JSON.stringify(this.toJSON()).length; + return this._size; + } + getProperty(name: string): any { if (!this.attrs.has(name)) return; return this[name as keyof this]; diff --git a/src/app/_services/output.service.ts b/src/app/_services/output.service.ts new file mode 100644 index 0000000..761ee31 --- /dev/null +++ b/src/app/_services/output.service.ts @@ -0,0 +1,19 @@ + get device_entity(): MQTTEntity { + if ( + this._device_entity_cached.listlen === + this.generatorService.created_entity_num + ) + return this._device_entity_cached.entity; + let entites = Array.from(this.generatorService.created_enteties).sort( + (a, b) => { + return a.size - b.size; + } + ); + this._device_entity_cached = { + entity: entites[0], + listlen: this.generatorService.created_entity_num, + }; + console.log('sizing'); + console.log(this._device_entity_cached); + return entites[0]; + }