@catchpower/device-config-interaction 0.0.13 → 0.0.14
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.
|
@@ -63,4 +63,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
63
63
|
providedIn: 'root',
|
|
64
64
|
}]
|
|
65
65
|
}], ctorParameters: function () { return [{ type: i1.DatasetProcessingService }, { type: i2.CrcCheckService }]; } });
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZGV2aWNlLWNvbmZpZy1pbnRlcmFjdGlvbi9zcmMvbGliL2NvbW1hbmQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBYTNDLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFlBQ1UsR0FBNkIsRUFDN0IsVUFBMkI7UUFEM0IsUUFBRyxHQUFILEdBQUcsQ0FBMEI7UUFDN0IsZUFBVSxHQUFWLFVBQVUsQ0FBaUI7SUFDbEMsQ0FBQztJQUVKOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxpQkFBaUIsQ0FDckIsYUFBc0IsRUFDdEIsT0FBZSxFQUNmLFVBQTBCO1FBRTFCLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNmLE1BQU0sWUFBWSxHQUFHLElBQUksV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFckUsYUFBYSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUM1QywrQ0FBK0M7WUFDL0MsSUFBSSxPQUFPLElBQUksVUFBVSxDQUFDLElBQUksRUFBRTtnQkFDOUIsTUFBTSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDdEM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILG9FQUFvRTtRQUNwRSxJQUFJLFVBQVUsS0FBSyxTQUFTLEVBQUU7WUFDNUIsa0VBQWtFO1lBQ2xFLE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzVDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDL0QsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUVELElBQUksV0FBVyxHQUFpQjtZQUM5QixNQUFNLEVBQUUsTUFBTTtZQUNkLE9BQU8sRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU87WUFDcEMsY0FBYyxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsY0FBYztZQUNsRCxRQUFRLEVBQUUsSUFBSSxVQUFVLENBQUMsWUFBWSxDQUFDO1NBQ3ZDLENBQUM7UUFDRixXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUM7UUFFN0MsV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVuRSxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRUQsS0FBSyxDQUFDLHVCQUF1QixDQUMzQixhQUFzQixFQUN0QixPQUFlLEVBQ2YsVUFBMEI7UUFFMUIsSUFBSSxHQUFHLEdBQUcsU0FBUyxDQUFDO1FBQ3BCLElBQUksVUFBVSxLQUFLLFNBQVMsRUFBRTtZQUM1QixHQUFHLEdBQUcsVUFBVSxDQUFDO1NBQ2xCO1FBQ0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDdEUsTUFBTSxJQUFJLEdBQUc7WUFDWCxZQUFZLEVBQUUsYUFBYSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUU7WUFDN0MsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxNQUFNLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztTQUM3RCxDQUFDO1FBQ0Ysb0NBQW9DO1FBQ3BDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzsrR0FsRVUsY0FBYzttSEFBZCxjQUFjLGNBRmIsTUFBTTs7NEZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBJQ29tbWFuZERhdGEsXG4gIElDb21tYW5kRGF0YUFwaSxcbiAgSURldmljZSxcbiAgSVJhd0RhdGFPYmosXG59IGZyb20gJy4uL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgRGF0YXNldFByb2Nlc3NpbmdTZXJ2aWNlIH0gZnJvbSAnLi9kYXRhc2V0LXByb2Nlc3Npbmcuc2VydmljZSc7XG5pbXBvcnQgeyBDcmNDaGVja1NlcnZpY2UgfSBmcm9tICcuL2NyYy1jaGVjay5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIENvbW1hbmRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkcHM6IERhdGFzZXRQcm9jZXNzaW5nU2VydmljZSxcbiAgICBwcml2YXRlIGNyY1NlcnZpY2U6IENyY0NoZWNrU2VydmljZVxuICApIHt9XG5cbiAgLyoqXG4gICAqICBGb3IgQmx1ZXRvb3RoIGNvbW1hbmQgc2VuZFxuICAgKiBAcGFyYW0gY3VycmVudERldmljZVxuICAgKiBAcGFyYW0gY29tbWFuZFxuICAgKiBAcGFyYW0gcmF3RGF0YU9ialxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgYXN5bmMgY3JlYXRlQ29tbWFuZERhdGEoXG4gICAgY3VycmVudERldmljZTogSURldmljZSxcbiAgICBjb21tYW5kOiBzdHJpbmcsXG4gICAgcmF3RGF0YU9iaj86IElSYXdEYXRhT2JqW11cbiAgKSB7XG4gICAgbGV0IG9wQ29kZSA9IDA7XG4gICAgY29uc3QgY29tYW5kQnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKGN1cnJlbnREZXZpY2Uud3JpdGUuYnVmZmVyU2l6ZSk7XG5cbiAgICBjdXJyZW50RGV2aWNlLmNvbW1hbmRzLmZvckVhY2goKGNvbW1hbmRPYmopID0+IHtcbiAgICAgIC8vY29uc29sZS5sb2coJ0NvbW1hbmQgTmFtZScsIGNvbW1hbmRPYmoubmFtZSk7XG4gICAgICBpZiAoY29tbWFuZCA9PSBjb21tYW5kT2JqLm5hbWUpIHtcbiAgICAgICAgb3BDb2RlID0gcGFyc2VJbnQoY29tbWFuZE9iai5vcENvZGUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy9jb25zb2xlLmxvZygnIyMjIyMjIyMjIyMgICAgICAkJCQkJCQkJCQkJCQgICAgIE9wIENvZGUgJywgb3BDb2RlKTtcbiAgICBpZiAocmF3RGF0YU9iaiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAvL2NvbnNvbGUubG9nKCdjcmVhdGUgQ29tbWFuZCBEYXRhLCBSYXcgRGF0YSBPYmplY3QgaXMgcHJlc2VudC4nKTtcbiAgICAgIGNvbnN0IGRhdGFWaWV3ID0gbmV3IERhdGFWaWV3KGNvbWFuZEJ1ZmZlcik7XG4gICAgICByYXdEYXRhT2JqLmZvckVhY2goKHJhdykgPT4ge1xuICAgICAgICB0aGlzLmRwcy53cml0ZVZhbHVlVG9CdWZmZXIocmF3LmJ1ZmZlciwgcmF3LnZhbHVlLCBkYXRhVmlldyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBsZXQgY29tbWFuZERhdGE6IElDb21tYW5kRGF0YSA9IHtcbiAgICAgIG9wQ29kZTogb3BDb2RlLFxuICAgICAgc2VydmljZTogY3VycmVudERldmljZS53cml0ZS5zZXJ2aWNlLFxuICAgICAgY2hhcmFjdGVyaXN0aWM6IGN1cnJlbnREZXZpY2Uud3JpdGUuY2hhcmFjdGVyaXN0aWMsXG4gICAgICBieXRlRGF0YTogbmV3IFVpbnQ4QXJyYXkoY29tYW5kQnVmZmVyKSxcbiAgICB9O1xuICAgIGNvbW1hbmREYXRhLmJ5dGVEYXRhWzBdID0gY29tbWFuZERhdGEub3BDb2RlO1xuXG4gICAgY29tbWFuZERhdGEgPSBhd2FpdCB0aGlzLmNyY1NlcnZpY2Uud3JpdGVDcmNUb0NvbW1hbmQoY29tbWFuZERhdGEpO1xuXG4gICAgcmV0dXJuIGNvbW1hbmREYXRhO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlQ29tbWFuZERhdGFGb3JBcGkoXG4gICAgY3VycmVudERldmljZTogSURldmljZSxcbiAgICBjb21tYW5kOiBzdHJpbmcsXG4gICAgcmF3RGF0YU9iaj86IElSYXdEYXRhT2JqW11cbiAgKTogUHJvbWlzZTxJQ29tbWFuZERhdGFBcGk+IHtcbiAgICBsZXQgcmF3ID0gdW5kZWZpbmVkO1xuICAgIGlmIChyYXdEYXRhT2JqICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJhdyA9IHJhd0RhdGFPYmo7XG4gICAgfVxuICAgIGNvbnN0IGNvbW1hbmRCdCA9IHRoaXMuY3JlYXRlQ29tbWFuZERhdGEoY3VycmVudERldmljZSwgY29tbWFuZCwgcmF3KTtcbiAgICBjb25zdCBzZW5kID0ge1xuICAgICAgc2VyaWFsTnVtYmVyOiBjdXJyZW50RGV2aWNlLnNlcmlhbC50b1N0cmluZygpLFxuICAgICAgZGF0YTogdGhpcy5kcHMudWludDhBcnJheVRvQXJyYXkoKGF3YWl0IGNvbW1hbmRCdCkuYnl0ZURhdGEpLFxuICAgIH07XG4gICAgLy9jb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShzZW5kKSk7XG4gICAgcmV0dXJuIHNlbmQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlcy1saXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGV2aWNlLWNvbmZpZy1pbnRlcmFjdGlvbi9zcmMvbGliL2ludGVyZmFjZXMvZGV2aWNlcy1saXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogVGhlIGNvbXBsZXRlIGRldmljZXMgbGlzdCAqL1xuZXhwb3J0IGludGVyZmFjZSBJRGV2aWNlc0xpc3Qge1xuICAvKiogVmVyc2lvbiBvZiB0aGUgZGV2aWNlcyBsaXN0ICovXG4gIGxpc3RWZXJzaW9uOiBudW1iZXI7XG4gIHRpbWVzdGFtcD86IHN0cmluZztcbiAgLyoqIExpc3Qgb2YgdGhlIGN1cnJlbnRseSBzdXBwb3J0ZWQgZGV2aWNlcyAqL1xuICBkZXZpY2VzTGlzdD86IElEZXZpY2VbXTtcbiAgLyoqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyB0aGF0IGZhbGwgb3V0c2lkZSBvZiBhIHNpbmdsZSBkZXZpY2UgKGkuZS4gU2l0ZSBjb25maWd1cmF0aW9ucykgT1IgY29uZmlndXJhdGlvbiBvcHRpb25zIHdoaWNoIGFyZSBzaGFyZWQgYWNyb3NzIG11bHRpcGxlIGRldmljZSBtb2RlbHMuICovXG4gIGV4dHJhQ29uZmlnT3B0aW9ucz86IHtcbiAgICAvKiogQ3VycmVudCBrZXkgb3B0aW9ucyBhcmUgd2lmaSwgdGV0aGVyRGF0YSwgdGV0aGVyQ29uZmlnLCBzdW5zcGVjU3RhdGUsIHN1bnNwZWNDb25maWcsIHN1bnNwZWNTY2FuLCBzdW5zcGVjTGlzdCwgc3Vuc3BlY3NldERldmljZXMgKi9cbiAgICBba2V5OiBzdHJpbmddOiBJRXh0cmFDb25maWdPcHRpb247XG4gIH07XG4gIHZlckhpc3Rvcnk6IElWZXJzaW9uSGlzdG9yeU9ialtdO1xufVxuXG4vKiogQWxsIHRoZSByZWxldmFudCBpbmZvcm1hdGlvbiBmb3IgYSBkZXZpY2UgbW9kZWwuICovXG5leHBvcnQgaW50ZXJmYWNlIElEZXZpY2Uge1xuICAvKiogVGhlIG1vZGVsIElEIG9mIHRoZSBkZXZpY2UgKi9cbiAgaWQ6IG51bWJlcjtcbiAgLyoqIFRoZSBNb2RlbCBOYW1lIG9mIHRoZSBkZXZpY2UgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogVGhlIHNlcmlhbCBudW1iZXIgb2YgdGhlIGRldmljZSAqL1xuICBzZXJpYWw6IG51bWJlcjtcbiAgLyoqIEZpcm13YXJlIHZlcnNpb24gaW5mb3JtYXRpb24gZm9yIHRoZSBkZXZpY2UgKi9cbiAgZndWZXJzaW9uOiBJRndWZXJzaW9uT2JqO1xuICBhZGRyZXNzPzogc3RyaW5nO1xuICAvKiogQSBsaXN0IG9mIGNvbW1hbmRzIGZvciB0aGUgZGV2aWNlICovXG4gIGNvbW1hbmRzOiBJRGV2aWNlQ29tbWFuZFtdO1xuICAvKiogQmx1ZXRvb3RoIHdyaXRlIGNvbW1hbmQgaW5mb3JtYXRpb24gKi9cbiAgd3JpdGU6IElEZXZpY2VXbjtcbiAgLyoqIEJsdWV0b290aCBub3RpZnkgY29tbWFuZCBpbmZvcm1hdGlvbiAqL1xuICBub3RpZnk6IElEZXZpY2VXbjtcbiAgLyoqIERldmljZSBjb25maWd1cmF0aW9uIG9iamVjdCwgY29udGFpbnMgcmF3IGJ5dGUgaW5mb3JtYXRpb24gcmF3IGRhdGEgdmFsdWUgaW5mb3JtYXRpb24gYW5kIGZvcm0gaW5mb3JtYXRpb24gZm9yIHRoZSBjb25maWd1cmF0aW9uIG9mIHRoZSBkZXZpY2UuICovXG4gIGNvbmZpZz86IElDb25maWc7XG4gIC8qKiBEZXZpY2UgZGlzcGxheSBvYmplY3QsIGNvbnRhaW5zIGluZm9ybWF0aW9uIGZvciB0aGUgbGl2ZSBkaXNwbGF5IG9mIHRoZSBkZXZpY2VzIGRhdGEgKi9cbiAgZGlzcGxheTogSURpc3BsYXk7XG4gIC8qKiBFeHRyYSBjb25maWd1cmF0aW9uIG9wdGlvbnMgdXNlZCBmb3IgY29uZmlndXJhdGlvbiBvcHRpb25zIHdoaWNoIGFyZSBjb21tb24gdG8gbXVsdGlwbGUgZGV2aWNlcyBvciBjb25maWd1cmF0aW9uIG9wdGlvbnMgdGhhdCBmYWxsIG91dHNpZGUgb2YgYSBkZXZpY2UgKGkuZS4gQSBzaXRlIGNvbmZpZ3VyYXRpb24gb3B0aW9uKS4gKi9cbiAgZXh0cmFDb25maWc6IHtcbiAgICAvKiogQ3VycmVudCBrZXkgb3B0aW9ucyBhcmUgd2lmaSwgdGV0aGVyRGF0YSwgdGV0aGVyQ29uZmlnLCBzdW5zcGVjU3RhdGUsIHN1bnNwZWNDb25maWcsIHN1bnNwZWNTY2FuLCBzdW5zcGVjTGlzdCwgc3Vuc3BlY3NldERldmljZXMgKi9cbiAgICBba2V5OiBzdHJpbmddOiBib29sZWFuO1xuICB9O1xufVxuXG4vKiogT3V0bGluZXMgZGF0YSByZXF1aXJlZCBmb3IgYW4gZXh0cmEgY29uZmlnIG9wdGlvbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJRXh0cmFDb25maWdPcHRpb24ge1xuICByYXdEYXRhPzogSVJhd0RhdGFPYmpbXTtcbiAgb3RoZXJEYXRhPzogSU90aGVyRGF0YU9ialtdO1xuICBldkxpc3Q/OiBJRXZMaXN0SXRlbVtdO1xufVxuXG4vKiogQSByYXcgZGF0YSBvYmplY3QgKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVJhd0RhdGFPYmoge1xuICAvKiogbmFtZSBvZiB0aGUgZGF0YSBwb2ludCAqL1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiB2YWx1ZSBvZiB0aGUgcmF3IGRhdGEgKi9cbiAgdmFsdWU6IG51bWJlcjtcbiAgLyoqIGRldGFpbCB0aGUgZGF0YXMgbG9jYXRpb24gaW4gdGhlIHJhdyBkYXRhIGJ1ZmZlciAqL1xuICBidWZmZXI6IElCdWZmZXJPYmo7XG4gIC8qKiBNdWx0aXBsZXIgdG8gYmUgdXNlZCBvbiB0aGUgdmFsdWUgKi9cbiAgbXVsdGk6IG51bWJlcjtcbn1cblxuLyoqIHVzZWQgdG8gcHJvY2VzcyByYXcgZGF0YSBpbnRvIGEgdXNhYmxlIGZvcm0gYW5kIHRvIHJldHVybiB0aGUgZGF0YSB0byBhIHJhdyBmb3JtICovXG5leHBvcnQgaW50ZXJmYWNlIElPdGhlckRhdGFPYmoge1xuICBuYW1lOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmcgfCBudW1iZXI7XG4gIHByb2Nlc3NEYXRhOiBJUHJvY2Vzc0RhdGFPYmpbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRXZMaXN0SXRlbSB7XG4gIGxpc3ROYW1lOiBzdHJpbmc7XG4gIGRldmljZU5hbWU6IHN0cmluZztcbiAgcGhhc2VzOiAxIHwgMztcbiAgY29ubmVjdG9yczogbnVtYmVyO1xuICBjdXJyZW50TGltaXQ6IG51bWJlcjtcbiAgaW1wbENsYXNzOiBzdHJpbmc7XG59XG5cbi8qKiBDb250YWlucyBSZWxldmFudCBpbmZvcm1hdGlvbiBmb3IgZ2V0dGluZyBhbmQgdXNpbmcgZGV2aWNlcyBmaXJtd2FyZSAqL1xuZXhwb3J0IGludGVyZmFjZSBJRndWZXJzaW9uT2JqIHtcbiAgdmVyc2lvbjogbnVtYmVyO1xuICB1cmw6IHN0cmluZztcbiAgZmlsZXM6IHN0cmluZ1tdO1xuICBwYWNrZXQ6IG51bWJlcjtcbiAgZGV2SWQ/OiBudW1iZXI7XG4gIGRldk5hbWU/OiBzdHJpbmc7XG4gIGRldlNlcmlhbD86IG51bWJlcjtcbiAgZndBdmFpbGFibGU/OiBib29sZWFuO1xuICBjdXJyZW50VmVyc2lvbj86IG51bWJlcjtcbn1cblxuLyoqIE9iamVjdCBkZXNjcmliaW5nIGEgYmx1ZXRvb2ggZGV2aWNlIGNvbW1hbmQgKi9cbmV4cG9ydCBpbnRlcmZhY2UgSURldmljZUNvbW1hbmQge1xuICBuYW1lOiBzdHJpbmc7XG4gIG9wQ29kZTogc3RyaW5nO1xuICByZXF1ZXN0RGF0YTogYm9vbGVhbjtcbiAgcmVzcG9uc2U6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURldmljZVduIHtcbiAgc2VydmljZTogc3RyaW5nO1xuICBjaGFyYWN0ZXJpc3RpYzogc3RyaW5nO1xuICBidWZmZXJTaXplOiBudW1iZXI7XG59XG5cbi8qKiBBbGwgaW5mb3JtYXRpb24gbmVlZGVkIGZvciBnZXR0aW5nIGFuZCB1c2luZyBjb25maWd1cmF0aW9uIGRhdGEgKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbmZpZyB7XG4gIHJhd0RhdGE6IElSYXdEYXRhT2JqW107XG4gIG90aGVyRGF0YTogSU90aGVyRGF0YU9ialtdO1xuICBmb3JtRGF0YTogSUZvcm1TZWN0aW9uT2JqW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURpc3BsYXkge1xuICByYXdEYXRhOiBJUmF3RGF0YU9ialtdO1xuICBvdGhlckRhdGE6IElPdGhlckRhdGFPYmpbXTtcbiAgbGF5b3V0OiBJRGlzU2VjdE9ialtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElCdWZmZXJPYmoge1xuICBzaWduZWQ6IGJvb2xlYW47XG4gIGxlbmd0aDogbnVtYmVyO1xuICBwb3NpdGlvbjogbnVtYmVyO1xuICBsaXR0bGU6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVByb2Nlc3NEYXRhT2JqIHtcbiAgLyoqIEN1cnJlbnRseSB1c2VkIFwiYXNzXCIgPSBhc3NlbWJsZSwgam9pbiBjaGFyYWN0ZXJzIC8gc3RyaW5ncyB0b2dldGhlci4gXCJjb21cIiA9IGNvbXBhcmUgdHdvIHZhbHVlcy4gXCJjYWxcIiA9IGNhbGN1bGF0ZSBhIHZhbHVlLiBcInRmbVwiID0gdGltZSBmcm9tIG1pbnV0ZXMuIFwiY2R0XCIgPSB0aW1lIGZyb20gZGF0ZXRpbWUgc3RyaW5nLiBcIml0ZFwiID0gbWludXRlcyB0byB0aW1lIGluIElTTyA4NjAxIGZvcm1hdC4gXCJpdHNcIiA9IGludGVnZXIgdG8gc3RyaW5nLiBcImJzdlwiID0gbm90IHN1cmUuIFwidmZhXCIgPSB2YWx1ZSBmcm9tIGFycmF5LiBcImN0c1wiID0gYXJyYXkgb2YgY2hhcmFjdGVyIGNvZGVzIHRvIHN0cmluZy4qL1xuICB0eXBlOlxuICAgIHwgJ2FzcydcbiAgICB8ICdjb20nXG4gICAgfCAnY2FsJ1xuICAgIHwgJ3RmbSdcbiAgICB8ICdjZHQnXG4gICAgfCAnaXRkJ1xuICAgIHwgJ2l0cydcbiAgICB8ICdic3YnXG4gICAgfCAncHdkJ1xuICAgIHwgJ3ZmYSdcbiAgICB8ICdjdHMnO1xuICB2YWx1ZTogbnVtYmVyIHwgc3RyaW5nO1xuICBkYXRhOiBJUHJvY2Vzc0RhdGFTdGVwW107XG4gIGNvbVR4dD86IFtzdHJpbmcsIHN0cmluZ107XG4gIHZhbHVlc0xpc3Q/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRm9ybVNlY3Rpb25PYmoge1xuICB0aXRsZTogc3RyaW5nO1xuICBkYXRhT2JqczogSUZvcm1EYXRhT2JqW107XG4gIG1heEhlaWdodD86IHN0cmluZztcbiAgZXhwYW5kZWQ/OiBib29sZWFuO1xuICBoZWFkRGlzcGxheU9iaj86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRGlzU2VjdE9iaiB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHJvd3M6IElEaXNSb3dPYmpbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUHJvY2Vzc0RhdGFTdGVwIHtcbiAgdmFsdWU6IHN0cmluZyB8IG51bWJlcjtcbiAgZnJvbURhdGE6ICdyYXcnIHwgJ290aGVyJyB8ICdubyc7XG4gIHN0ckxlbmd0aD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRm9ybURhdGFPYmoge1xuICBkYXRhSWQ6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgaW5wdXRUeXBlOiAnbnVtYmVyJyB8ICd0ZXh0JyB8ICdzZWxlY3QnIHwgJ2RhdGV0aW1lJyB8ICdwYXNzd29yZCcgfCAncGFnZSc7XG4gIHZhbHVlOiBzdHJpbmcgfCBudW1iZXI7XG4gIGFjdGl2ZTogYm9vbGVhbjtcbiAgcmVxdWlyZWQ6IGJvb2xlYW47XG4gIGlucHV0TW9kZT86ICdkZWNpbWFsJyB8ICdudW1lcmljJyB8ICd0ZXh0JztcbiAgbWluPzogbnVtYmVyO1xuICBtYXg/OiBudW1iZXI7XG4gIG1pbkxlbmd0aD86IG51bWJlcjtcbiAgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICByZXg/OiBzdHJpbmc7XG4gIHNlbGVjdFZhbHVlcz86IElTZWxlY3RJdGVtT2JqW107XG4gIGR0Rm9ybWF0Pzogc3RyaW5nO1xuICB2YWxNc2c/OiBzdHJpbmc7XG4gIGNvbXBhcmU/OiBib29sZWFuO1xuICBhdXRvSW5wdXQ/OiBib29sZWFuO1xuICBwYWdlSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURpc1Jvd09iaiB7XG4gIGNvbHM6IElEaXNVbml0T2JqW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURpc1VuaXRPYmoge1xuICB0aXRsZTogYm9vbGVhbjtcbiAgdmFsdWU6IHN0cmluZztcbiAgc2l6ZTogbnVtYmVyO1xuICByZWZEYXRhPzogc3RyaW5nO1xuICBwcmVwZW5kPzogc3RyaW5nO1xuICBhcHBlbmQ/OiBzdHJpbmc7XG4gIGlzRGF0ZVRpbWU/OiBib29sZWFuO1xuICByb3VuZD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2VsZWN0SXRlbU9iaiB7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbW1hbmREYXRhIHtcbiAgb3BDb2RlOiBudW1iZXI7XG4gIHNlcnZpY2U6IHN0cmluZztcbiAgY2hhcmFjdGVyaXN0aWM6IHN0cmluZztcbiAgYnl0ZURhdGE6IFVpbnQ4QXJyYXk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbW1hbmREYXRhQXBpIHtcbiAgc2VyaWFsTnVtYmVyOiBzdHJpbmc7XG4gIGRhdGE6IG51bWJlcltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElWZXJzaW9uSGlzdG9yeU9iaiB7XG4gIG1vZGVsSWQ6IG51bWJlcjtcbiAgbWluVmVyc2lvbjogbnVtYmVyO1xuICBiYXNlVmVyc2lvbjogbnVtYmVyO1xuICBmZWF0dXJlczogSVZlcnNpb25IaXN0b3J5RmVhdHVyZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElWZXJzaW9uSGlzdG9yeUZlYXR1cmUge1xuICB2ZXJGZWF0dXJlOiBzdHJpbmc7XG4gIG1pblZlcnNpb246IG51bWJlcjtcbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catchpower-device-config-interaction.mjs","sources":["../../../projects/device-config-interaction/src/lib/device-config-interaction.service.ts","../../../projects/device-config-interaction/src/lib/dataset-processing.service.ts","../../../projects/device-config-interaction/src/lib/crc-check.service.ts","../../../projects/device-config-interaction/src/lib/command.service.ts","../../../projects/device-config-interaction/src/lib/device-config-dataset.service.ts","../../../projects/device-config-interaction/src/lib/device-live-dataset.service.ts","../../../projects/device-config-interaction/src/lib/device-config-interaction.module.ts","../../../projects/device-config-interaction/src/public-api.ts","../../../projects/device-config-interaction/src/catchpower-device-config-interaction.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport {\n IConfig,\n IDevicesList,\n IDisplay,\n IOtherDataObj,\n IRawDataObj,\n} from '../public-api';\nimport { AxiosResponse } from 'axios';\nimport * as axios from 'axios';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CpDevicesListService {\n //constructor() {}\n\n async getDevicesList(\n _url: string,\n auth: string,\n listVersion = '-1'\n ): Promise<IDevicesList | Error> {\n //console.log('getDevicesList function TRIGGERED ', _url);\n const headers = {\n Authorization: 'Basic ' + btoa(auth),\n 'list-version': listVersion,\n };\n const response = await axios.default\n .request({\n method: 'get',\n url: _url,\n headers: headers,\n })\n .then(\n (res: AxiosResponse) => {\n if (res.status == 200) {\n //console.log( 'get DL function SUCCESS ', JSON.stringify(res));\n return res.data as IDevicesList;\n } else {\n return new Error(\n 'ERROR getting Devices List. ' + JSON.stringify(res)\n );\n }\n },\n (error: AxiosResponse) => {\n return new Error(\n 'ERROR getting Devices List. ' + JSON.stringify(error)\n );\n }\n );\n\n return response;\n }\n\n getValueFromObj(\n element: IDisplay | IConfig,\n name: string\n ): (string | number) | null {\n let value = null;\n let notInOther = true;\n element.otherData.forEach((other: IOtherDataObj) => {\n if (other.name == name) {\n value = other.value;\n notInOther = false;\n }\n });\n if (notInOther) {\n element.rawData.forEach((raw: IRawDataObj) => {\n if (raw.name == name) {\n value = raw.value;\n }\n });\n }\n return value;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n IBufferObj,\n IProcessDataObj,\n IProcessDataStep,\n IRawDataObj,\n IOtherDataObj,\n IConfig,\n IDisplay,\n} from '../lib/interfaces/devices-list';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DatasetProcessingService {\n //constructor() {}\n /*\n * For use with DataView\n *\n */\n getValuefromBuffer(obj: IBufferObj, buffer: DataView) {\n let value = 0;\n if (obj.signed) {\n switch (obj.length) {\n case 8:\n value = buffer.getInt8(obj.position);\n break;\n case 16:\n value = buffer.getInt16(obj.position, obj.little);\n break;\n case 32:\n value = buffer.getInt32(obj.position, obj.little);\n break;\n }\n } else {\n switch (obj.length) {\n case 8:\n value = buffer.getUint8(obj.position);\n break;\n case 16:\n value = buffer.getUint16(obj.position, obj.little);\n break;\n case 32:\n value = buffer.getUint32(obj.position, obj.little);\n break;\n }\n }\n return value;\n }\n\n /*\n * For use with DataView\n *\n *\n */\n writeValueToBuffer(obj: IBufferObj, value: number, buffer: DataView) {\n if (obj.signed) {\n switch (obj.length) {\n case 8:\n buffer.setInt8(obj.position, value);\n break;\n case 16:\n buffer.setInt16(obj.position, value, obj.little);\n break;\n case 32:\n buffer.setInt32(obj.position, value, obj.little);\n break;\n }\n } else {\n switch (obj.length) {\n case 8:\n buffer.setUint8(obj.position, value);\n break;\n case 16:\n buffer.setUint16(obj.position, value, obj.little);\n break;\n case 32:\n buffer.setUint32(obj.position, value, obj.little);\n break;\n }\n }\n }\n\n runProcess(\n process: IProcessDataObj,\n rawData: IRawDataObj[],\n otherData: IOtherDataObj[]\n ) {\n const values: (string | number)[] = this.getChunkValues(\n process.data,\n rawData,\n otherData\n );\n //console.log('process values ', values);\n let pVal: string | number | boolean = 0;\n switch (process.type) {\n case 'ass':\n pVal = this.assembleProcess(values);\n process.value = pVal;\n return;\n case 'com':\n pVal = this.compareProcess(\n values as [number, '<' | '<=' | '==' | '>=' | '>', number],\n process\n );\n process.value = pVal;\n return;\n case 'cal':\n pVal = this.calculateProcess(\n values as [number, '+' | '-' | '/' | '*', number]\n );\n process.value = pVal;\n return;\n case 'tfm':\n pVal = this.tfmProcess(values as number[]);\n process.value = pVal;\n return;\n case 'cdt':\n pVal = this.cdtProcess(values as string[]);\n process.value = pVal;\n return;\n case 'itd':\n pVal = this.itdProcess(values as number[]);\n process.value = pVal;\n return;\n case 'its':\n pVal = this.itsProcess(values as number[]);\n process.value = pVal;\n return;\n case 'bsv':\n pVal = this.bsvProcess(values);\n process.value = pVal;\n return;\n case 'vfa':\n pVal = this.vfaProcess(values as number[], process);\n process.value = pVal;\n return;\n case 'cts':\n pVal = this.ctsProcess(values as number[]);\n process.value = pVal;\n return;\n }\n }\n\n assembleProcess(values: (string | number)[]) {\n let result = '';\n values.forEach((v) => {\n result += v;\n });\n return result;\n }\n\n disassembleProcess(string: string, values: IProcessDataStep[]) {\n const result: { [key: string]: number } = {};\n let i = 0;\n let length = 0;\n values.forEach((val) => {\n if (Object.prototype.hasOwnProperty.call(val, 'strLength')) {\n length = val.strLength as number;\n } else {\n const str = val.value as string;\n length = str.length;\n }\n if (val.fromData == 'raw') {\n result[val.value] = Number(string.substring(i, i + length));\n }\n i = i + length;\n });\n //console.log('Disassemble Result ', JSON.stringify(result));\n return result;\n }\n\n compareProcess(\n values: [number, '<' | '<=' | '==' | '>=' | '>', number],\n process: IProcessDataObj\n ) {\n const result: boolean = this.compareValues(values[0], values[1], values[2]);\n let text = 'N/A';\n if ('comTxt' in process) {\n if (process.comTxt !== undefined) {\n if (result) {\n text = process.comTxt[0];\n } else {\n return process.comTxt[1];\n }\n }\n }\n return text;\n }\n\n compareValues(v1: number, op: '<' | '<=' | '==' | '>=' | '>', v2: number) {\n switch (op) {\n case '<':\n return v1 < v2;\n case '<=':\n return v1 <= v2;\n case '==':\n return v1 == v2;\n case '>=':\n return v1 >= v2;\n case '>':\n return v1 > v2;\n default:\n return false;\n }\n }\n\n calculateProcess(values: [number, '+' | '-' | '/' | '*', number]) {\n return this.calculateValues(values[0], values[1], values[2]);\n }\n\n calculateValues(v1: number, op: '+' | '-' | '/' | '*', v2: number) {\n switch (op) {\n case '+':\n return v1 + v2;\n case '-':\n return v1 - v2;\n case '/':\n return v1 / v2;\n case '*':\n return v1 * v2;\n default:\n return 0;\n }\n }\n\n tfmProcess(values: number[]) {\n const hours: number = Math.floor((values[0] * 60) / 3600);\n const mins: number = Math.floor((values[0] * 60 - hours * 3600) / 60);\n return this.displayTime(hours, mins);\n }\n\n cdtProcess(values: string[]) {\n const hours: number = parseInt(values[0].substring(11, 13));\n const mins: number = parseInt(values[0].substring(14, 16));\n return this.displayTime(hours, mins);\n }\n\n //New process to pick value from array based on interger value\n vfaProcess(values: number[], process: IProcessDataObj) {\n const value = values[0];\n if (process.valuesList !== undefined) {\n if (value < process.valuesList.length) {\n return process.valuesList[value];\n } else {\n return 'nip';\n }\n } else {\n return 'n/a';\n }\n }\n\n itdProcess(values: number[]) {\n let hours: number = Math.floor((values[0] * 60) / 3600);\n //console.log(\"hours \", hours);\n const mins: number = Math.floor((values[0] * 60 - hours * 3600) / 60);\n //console.log(\"mins \", mins);\n let h: number | string;\n let m: number | string;\n if (hours > 23) {\n hours = hours - 24;\n }\n if (hours < 10) {\n h = '0' + hours;\n } else {\n h = hours;\n }\n if (mins < 10) {\n m = '0' + mins;\n } else {\n m = mins;\n }\n const string: string = '0000-00-00T' + h + ':' + m;\n //console.log(\"$%^&&^%%$$%^&&&^%%%%^^^&&&^^%^%%%^^^& dt string \", string);\n return string;\n }\n\n dtiProcess(string: string, values: IProcessDataStep[]) {\n //console.log(\"dtiProcess inputs string: \", string, \" Values: \", values);\n const result: { [key: string | number]: number } = {};\n let h: number;\n let m: number;\n values.forEach((val) => {\n // h = Number(string.substr(11, 2));\n // m = Number(string.substr(14, 2));\n h = Number(string.substring(11, 13));\n m = Number(string.substring(14, 16));\n result[val.value] = h * 60 + m;\n });\n //console.log(\"date to integer Result \", JSON.stringify(result));\n return result;\n }\n\n itsProcess(values: number[]) {\n //console.log('itsProcess values', JSON.stringify(values));\n const str: string = values[0].toString();\n return str;\n }\n\n stiProcess(string: string, values: IProcessDataStep[]) {\n const result: { [key: string | number]: number } = {};\n values.forEach((val) => {\n result[val.value] = Number(string);\n });\n //console.log(\"string to integer Result \", JSON.stringify(result));\n return result;\n }\n\n bsvProcess(values: (number | string)[]) {\n const startValue: string = values[0] as string;\n const pos1: number = values[1] as number;\n const pos2: number = pos1 + 1;\n const binaryStr: string = parseInt(startValue, 10)\n .toString(2)\n .padStart(4, '0');\n return binaryStr.substring(pos1, pos2);\n }\n\n bsvRevert(\n string: string,\n values: IProcessDataStep[],\n bssObj: { [key: string]: string | number }\n ) {\n if (Object.prototype.hasOwnProperty.call(bssObj, values[0].value)) {\n bssObj[values[0].value] = this.replaceCharAt(\n bssObj[values[0].value] as string,\n values[1].value as number,\n string\n );\n } else {\n bssObj[values[0].value] = '0000';\n bssObj[values[0].value] = this.replaceCharAt(\n bssObj[values[0].value] as string,\n values[1].value as number,\n string\n );\n }\n return bssObj;\n }\n\n stcProcess(value: string) {\n const initArray = value.split('');\n const resultArray: number[] = [];\n initArray.forEach((v) => {\n resultArray.push(v.charCodeAt(0));\n });\n return resultArray;\n }\n\n ctsProcess(values: number[]) {\n // let result: string = \"\";\n const ary: number[] = [];\n values.forEach((v) => {\n if (v >= 0) {\n ary.push(v);\n } else {\n ary.push(0);\n }\n });\n //console.log(\"CTS PROCESS INPUT VALUES \", values);\n let str = String.fromCharCode(...ary);\n // eslint-disable-next-line no-control-regex\n str = str.replace(/[\\u0000]/g, '');\n //str = str.replace(/[^\\x20-\\x7E]/g, \"\");\n return str;\n }\n\n ctsRevert(\n otherObj: IOtherDataObj,\n results: { [key: string | number]: string | number }\n ) {\n const valAry = this.stcProcess(<string>otherObj.value);\n //console.log(\"VAL ARRAY\", valAry);\n //console.log(\"PROCESS DATA\", JSON.stringify(otherObj.processData));\n let progress = 0;\n otherObj.processData[0].data.forEach((process) => {\n const res: { [key: string | number]: string | number } = {};\n\n if (valAry.length >= progress) {\n res[process.value] = valAry[progress];\n } else {\n res[process.value] = 0;\n }\n results = Object.assign(results, res);\n ++progress;\n });\n return results;\n }\n\n binaryStrToDecimal(str: string) {\n return parseInt(str, 2);\n }\n\n replaceCharAt(string: string, index: number, char: string) {\n return (\n string.substring(0, index) + char + string.substring(index + char.length)\n );\n //return string.substr(0, index) + char + string.substr(index + char.length);\n }\n\n writeFormValuesToRawObj(\n formValues: { [key: string]: string | number },\n rawObj: IRawDataObj[]\n ) {\n // rawObj.forEach((raw) => {\n // if (formValues.hasOwnProperty(raw.name)) {\n // raw.value = Math.round(formValues[raw.name] / raw.multi);\n // }\n // });\n for (let i = 0; i < rawObj.length; i++) {\n if (Object.prototype.hasOwnProperty.call(formValues, rawObj[i].name)) {\n rawObj[i].value = Math.round(\n (formValues[rawObj[i].name] as number) / rawObj[i].multi\n );\n }\n }\n return rawObj;\n }\n\n getPwd(rawValues: IRawDataObj[]) {\n const pwdArray: number[] = [];\n let i: number;\n let name: string;\n\n for (i = 0; i < 16; i++) {\n if (i < 10) {\n name = 'pass_0' + i;\n } else {\n name = 'pass_' + i;\n }\n rawValues.forEach((v) => {\n if (v.name == name) {\n pwdArray.push(v.value);\n }\n });\n }\n\n return pwdArray;\n }\n\n strToPwd(string: string) {\n const pwdArray: number[] = [];\n let i: number;\n\n if (string == null) {\n string = '';\n }\n\n for (i = 0; i < 16; i++) {\n if (i < string.length) {\n pwdArray.push(string.charCodeAt(i));\n } else {\n pwdArray.push(0);\n }\n }\n\n return pwdArray;\n }\n\n chkPwd(arr1: number[], arr2: number[]) {\n if (\n !Array.isArray(arr1) ||\n !Array.isArray(arr2) ||\n arr1.length !== arr2.length\n )\n return false;\n\n for (let i = 0; i < arr1.length; i++) {\n if (arr1[i] !== arr2[i]) return false;\n }\n\n return true;\n }\n\n writePwdToConfig(passArray: number[], rawObj: IRawDataObj[]) {\n let i: number;\n let name: string;\n\n //console.log(\"Before write password \", JSON.stringify(rawObj));\n\n for (i = 0; i < 16; i++) {\n if (i < 10) {\n name = 'pass_0' + i;\n } else {\n name = 'pass_' + i;\n }\n rawObj.forEach((v) => {\n if (v.name == name) {\n v.value = passArray[i];\n }\n });\n }\n\n //console.log(\"After write password \", JSON.stringify(rawObj));\n\n return rawObj;\n }\n\n displayTime(hours: number, mins: number) {\n //console.log(\"hours = \", hours, \" mins = \", mins);\n let m: number | string = mins;\n let p = 'am';\n if (mins < 10) {\n m = '0' + mins;\n }\n if (hours > 11) {\n p = 'pm';\n }\n if (hours == 0) {\n hours = 12;\n }\n if (hours > 12) {\n hours -= 12;\n }\n return hours + ':' + m + ' ' + p;\n }\n\n getChunkValues(\n processData: IProcessDataStep[],\n rawData: IRawDataObj[],\n otherData: IOtherDataObj[]\n ) {\n // console.log(\n // 'GET CHUNK VALUES ',\n // JSON.stringify(rawData),\n // ' ',\n // JSON.stringify(otherData)\n // );\n let v: string | number;\n const values: (string | number)[] = [];\n processData.forEach((chunk) => {\n //console.log('Process Raw chunk ', JSON.stringify(chunk));\n switch (chunk.fromData) {\n case 'raw':\n rawData.forEach((rd) => {\n if (rd.name == chunk.value) {\n //console.log('RAW chunk name: ', rd.name);\n v = rd.value;\n }\n });\n break;\n case 'other':\n otherData.forEach((od) => {\n if (od.name == chunk.value) {\n v = od.value;\n }\n });\n break;\n case 'no':\n v = chunk.value;\n break;\n }\n\n if (typeof chunk.strLength === 'undefined') {\n values.push(v);\n } else {\n const pad = v.toString().padStart(chunk.strLength, '0');\n values.push(pad);\n }\n });\n return values;\n }\n\n uint8ArrayToArray(uint8: Uint8Array): number[] {\n return Array.from(uint8);\n }\n\n arrayToUint8Array(array: number[]): Uint8Array {\n return Uint8Array.from(array);\n }\n\n isUint8Array(v: number[] | Uint8Array) {\n const isStr = Object.prototype.toString;\n return isStr.call(v) === '[object Uint8Array]';\n }\n\n processRaw(input: number[] | Uint8Array, configObj: IConfig | IDisplay) {\n let buffer: Uint8Array;\n if (this.isUint8Array(input)) {\n buffer = input as Uint8Array;\n } else {\n buffer = this.arrayToUint8Array(input as number[]);\n }\n const rawDataBuffer = new DataView(buffer.buffer, 0, 254);\n //console.log('PROCESS RAW CONFIG ', rawDataBuffer);\n configObj.rawData.forEach((datapoint) => {\n datapoint.value =\n this.getValuefromBuffer(datapoint.buffer, rawDataBuffer) *\n datapoint.multi;\n });\n }\n\n processOther(configObj: IConfig | IDisplay) {\n configObj.otherData.forEach((dataPoint) => {\n dataPoint.processData.forEach((process) => {\n this.runProcess(process, configObj.rawData, configObj.otherData);\n dataPoint.value = process.value;\n });\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ICommandData } from '../public-api';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CrcCheckService {\n // checksum arrays\n auchCRCHi = [\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x00, 0xc1, 0x81, 0x40,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x00, 0xc1, 0x81, 0x40,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x00, 0xc1, 0x81, 0x40,\n 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41, 0x00, 0xc1, 0x81, 0x40,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x00, 0xc1, 0x81, 0x40,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41,\n 0x01, 0xc0, 0x80, 0x41, 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x00, 0xc1, 0x81, 0x40,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40,\n ];\n auchCRCLo = [\n 0x00, 0xc0, 0xc1, 0x01, 0xc3, 0x03, 0x02, 0xc2, 0xc6, 0x06, 0x07, 0xc7,\n 0x05, 0xc5, 0xc4, 0x04, 0xcc, 0x0c, 0x0d, 0xcd, 0x0f, 0xcf, 0xce, 0x0e,\n 0x0a, 0xca, 0xcb, 0x0b, 0xc9, 0x09, 0x08, 0xc8, 0xd8, 0x18, 0x19, 0xd9,\n 0x1b, 0xdb, 0xda, 0x1a, 0x1e, 0xde, 0xdf, 0x1f, 0xdd, 0x1d, 0x1c, 0xdc,\n 0x14, 0xd4, 0xd5, 0x15, 0xd7, 0x17, 0x16, 0xd6, 0xd2, 0x12, 0x13, 0xd3,\n 0x11, 0xd1, 0xd0, 0x10, 0xf0, 0x30, 0x31, 0xf1, 0x33, 0xf3, 0xf2, 0x32,\n 0x36, 0xf6, 0xf7, 0x37, 0xf5, 0x35, 0x34, 0xf4, 0x3c, 0xfc, 0xfd, 0x3d,\n 0xff, 0x3f, 0x3e, 0xfe, 0xfa, 0x3a, 0x3b, 0xfb, 0x39, 0xf9, 0xf8, 0x38,\n 0x28, 0xe8, 0xe9, 0x29, 0xeb, 0x2b, 0x2a, 0xea, 0xee, 0x2e, 0x2f, 0xef,\n 0x2d, 0xed, 0xec, 0x2c, 0xe4, 0x24, 0x25, 0xe5, 0x27, 0xe7, 0xe6, 0x26,\n 0x22, 0xe2, 0xe3, 0x23, 0xe1, 0x21, 0x20, 0xe0, 0xa0, 0x60, 0x61, 0xa1,\n 0x63, 0xa3, 0xa2, 0x62, 0x66, 0xa6, 0xa7, 0x67, 0xa5, 0x65, 0x64, 0xa4,\n 0x6c, 0xac, 0xad, 0x6d, 0xaf, 0x6f, 0x6e, 0xae, 0xaa, 0x6a, 0x6b, 0xab,\n 0x69, 0xa9, 0xa8, 0x68, 0x78, 0xb8, 0xb9, 0x79, 0xbb, 0x7b, 0x7a, 0xba,\n 0xbe, 0x7e, 0x7f, 0xbf, 0x7d, 0xbd, 0xbc, 0x7c, 0xb4, 0x74, 0x75, 0xb5,\n 0x77, 0xb7, 0xb6, 0x76, 0x72, 0xb2, 0xb3, 0x73, 0xb1, 0x71, 0x70, 0xb0,\n 0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97,\n 0x55, 0x95, 0x94, 0x54, 0x9c, 0x5c, 0x5d, 0x9d, 0x5f, 0x9f, 0x9e, 0x5e,\n 0x5a, 0x9a, 0x9b, 0x5b, 0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89,\n 0x4b, 0x8b, 0x8a, 0x4a, 0x4e, 0x8e, 0x8f, 0x4f, 0x8d, 0x4d, 0x4c, 0x8c,\n 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83,\n 0x41, 0x81, 0x80, 0x40,\n ];\n\n //constructor() {}\n\n _buildCRC(\n puchMsg: Uint8Array,\n usDataLen: number,\n startIndex = 0\n ): [number, number] {\n console.log('Start of CRC check generation.');\n let uchCRCHi = 0xff; /* high byte of CRC initialized */\n let uchCRCLo = 0xff; /* low byte of CRC initialized */\n let uIndex; /* will index into CRC lookup table */\n let bufferIndex = startIndex;\n\n while (usDataLen--) {\n uIndex = uchCRCLo ^ puchMsg[bufferIndex]; /* calculate the CRC */\n\n bufferIndex++;\n uchCRCLo = uchCRCHi ^ this.auchCRCHi[uIndex];\n uchCRCHi = this.auchCRCLo[uIndex];\n }\n\n return [uchCRCHi, uchCRCLo];\n }\n\n /**\n *\n * @param sentValuePair\n * @param receivedValuePair\n * @returns\n */\n saveCheck(\n sentValuePair: [number, number],\n receivedValuePair: [number, number]\n ): boolean {\n console.log(\n 'CRC save check sent ',\n sentValuePair,\n ' recieved ',\n receivedValuePair\n );\n if (\n sentValuePair[0] === receivedValuePair[0] &&\n sentValuePair[1] === receivedValuePair[1]\n ) {\n console.log('CRC compare check TRUE');\n return true;\n } else {\n console.log('CRC compare check FALSE');\n return false;\n }\n }\n\n async writeCrcToCommand(commandData: ICommandData) {\n console.log('WRITE CRC TO COMMAND TRIGGERED ');\n const checkSum = this._buildCRC(\n commandData.byteData,\n commandData.byteData.length - 2\n );\n\n console.log('###### ####### CRC16 values ', checkSum);\n\n commandData.byteData[253] = checkSum[0];\n commandData.byteData[254] = checkSum[1];\n\n return commandData;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ICommandDataApi, IDevice, IRawDataObj } from '../public-api';\nimport { DatasetProcessingService } from './dataset-processing.service';\nimport { CrcCheckService } from './crc-check.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CommandService {\n constructor(\n private dps: DatasetProcessingService,\n private crcService: CrcCheckService\n ) {}\n\n /**\n * For Bluetooth command send\n * @param currentDevice\n * @param command\n * @param rawDataObj\n * @returns\n */\n async createCommandData(\n currentDevice: IDevice,\n command: string,\n rawDataObj?: IRawDataObj[]\n ) {\n let opCode = 0;\n const comandBuffer = new ArrayBuffer(currentDevice.write.bufferSize);\n\n currentDevice.commands.forEach((commandObj) => {\n //console.log('Command Name', commandObj.name);\n if (command == commandObj.name) {\n opCode = parseInt(commandObj.opCode);\n }\n });\n\n //console.log('########### $$$$$$$$$$$$ Op Code ', opCode);\n if (rawDataObj !== undefined) {\n //console.log('create Command Data, Raw Data Object is present.');\n const dataView = new DataView(comandBuffer);\n rawDataObj.forEach((raw) => {\n this.dps.writeValueToBuffer(raw.buffer, raw.value, dataView);\n });\n }\n\n let commandData = {\n opCode: opCode,\n service: currentDevice.write.service,\n characteristic: currentDevice.write.characteristic,\n byteData: new Uint8Array(comandBuffer),\n };\n commandData.byteData[0] = commandData.opCode;\n\n commandData = await this.crcService.writeCrcToCommand(commandData);\n\n return commandData;\n }\n\n async createCommandDataForApi(\n currentDevice: IDevice,\n command: string,\n rawDataObj?: IRawDataObj[]\n ): Promise<ICommandDataApi> {\n let raw = undefined;\n if (rawDataObj !== undefined) {\n raw = rawDataObj;\n }\n const commandBt = this.createCommandData(currentDevice, command, raw);\n const send = {\n serialNumber: currentDevice.serial.toString(),\n data: this.dps.uint8ArrayToArray((await commandBt).byteData),\n };\n //console.log(JSON.stringify(send));\n return send;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n UntypedFormGroup,\n UntypedFormBuilder,\n UntypedFormControl,\n Validators,\n} from '@angular/forms';\nimport { DatasetProcessingService } from './dataset-processing.service';\n\nimport { IConfig, IFormDataObj } from '../lib/interfaces/devices-list';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DeviceConfigDatasetService {\n constructor(\n private dps: DatasetProcessingService,\n public formBuilder: UntypedFormBuilder\n ) {}\n\n processConfig(buffer: number[] | Uint8Array, config: IConfig) {\n this.dps.processRaw(buffer, config);\n this.dps.processOther(config);\n this.processForm(config);\n return config;\n }\n\n processForm(config: IConfig) {\n //console.log(\"Starting to process form data\");\n config.formData.forEach((formSection) => {\n formSection.dataObjs.forEach((formControl) => {\n config.rawData.forEach((dp) => {\n if (formControl.dataId == dp.name) {\n formControl.value = dp.value;\n }\n });\n config.otherData.forEach((dp) => {\n if (formControl.dataId == dp.name) {\n formControl.value = dp.value;\n }\n });\n });\n });\n }\n\n processResultsToFormData(\n formResults: { [key: string]: string | number },\n config: IConfig\n ) {\n for (let i = 0; i < config.formData.length; i++) {\n for (let x = 0; x < config.formData[i].dataObjs.length; x++) {\n if (\n Object.prototype.hasOwnProperty.call(\n formResults,\n config.formData[i].dataObjs[x].dataId\n )\n ) {\n config.formData[i].dataObjs[x].value =\n formResults[config.formData[i].dataObjs[x].dataId];\n }\n\n if (\n Object.prototype.hasOwnProperty.call(\n config.formData[i].dataObjs[x],\n 'autoInput'\n )\n ) {\n if (config.formData[i].dataObjs[x].autoInput == true) {\n //console.log(\"auto date condition met\");\n config.formData[i].dataObjs[x].value = this.currentDateTimeStr();\n }\n }\n }\n }\n\n //console.log(\"formdata object updated\", JSON.stringify(config.formData));\n return config;\n }\n\n currentDateTimeStr() {\n const date = new Date();\n const str =\n date.getFullYear() +\n '-' +\n (date.getMonth() + 1).toString().padStart(2, '0') +\n '-' +\n date.getDate().toString().padStart(2, '0') +\n 'T' +\n date.getHours().toString().padStart(2, '0') +\n ':' +\n date.getMinutes().toString().padStart(2, '0');\n return str;\n }\n\n extractBackToRaw(config: IConfig): IConfig {\n const otherToProcess: { [key: string]: number | string } = {};\n let valuesToRaw: { [key: string]: number | string } = {};\n let bss: { [key: string]: number | string } = {};\n\n if (Object.prototype.hasOwnProperty.call(config, 'formData')) {\n for (let i = 0; i < config.formData.length; i++) {\n for (let x = 0; x < config.formData[i].dataObjs.length; x++) {\n let isRawData = false;\n for (let z = 0; z < config.rawData.length; z++) {\n if (\n config.rawData[z].name == config.formData[i].dataObjs[x].dataId\n ) {\n valuesToRaw[config.formData[i].dataObjs[x].dataId] =\n config.formData[i].dataObjs[x].value;\n isRawData = true;\n }\n }\n if (isRawData == false) {\n otherToProcess[config.formData[i].dataObjs[x].dataId] =\n config.formData[i].dataObjs[x].value;\n }\n }\n }\n } else {\n config.otherData.forEach((otherObj) => {\n otherToProcess[otherObj.name] = otherObj.value;\n });\n }\n\n //console.log('Other to Process ', JSON.stringify(otherToProcess));\n\n config.otherData.forEach((otherObj) => {\n const value = otherToProcess[otherObj.name];\n // console.log(\n // 'EXTRACT BACK TO RAW ',\n // ' ',\n // otherObj.name,\n // ' ',\n // JSON.stringify(value)\n // );\n otherObj.processData.forEach((pdo) => {\n switch (pdo.type) {\n case 'ass':\n valuesToRaw = Object.assign(\n valuesToRaw,\n this.dps.disassembleProcess(value as string, pdo.data)\n );\n return;\n case 'itd':\n valuesToRaw = Object.assign(\n valuesToRaw,\n this.dps.dtiProcess(value as string, pdo.data)\n );\n return;\n case 'its':\n valuesToRaw = Object.assign(\n valuesToRaw,\n this.dps.stiProcess(value as string, pdo.data)\n );\n return;\n case 'bsv':\n bss = this.dps.bsvRevert(value as string, pdo.data, bss);\n return;\n }\n });\n });\n\n if (Object.keys(bss).length > 0) {\n for (const str in bss) {\n valuesToRaw[str] = this.dps.binaryStrToDecimal(bss[str] as string);\n }\n }\n config.rawData = this.dps.writeFormValuesToRawObj(\n valuesToRaw,\n config.rawData\n );\n //console.log(\"rawData Obj \", JSON.stringify(config.rawData));\n return config;\n }\n\n generateValidationRules(formField: IFormDataObj) {\n const validators = [];\n\n if (formField.required == true) {\n validators.push(Validators.required);\n }\n if (Object.prototype.hasOwnProperty.call(formField, 'min')) {\n if (formField.min !== undefined)\n validators.push(Validators.min(formField.min));\n }\n if (Object.prototype.hasOwnProperty.call(formField, 'max')) {\n if (formField.max !== undefined)\n validators.push(Validators.max(formField.max));\n }\n if (Object.prototype.hasOwnProperty.call(formField, 'minLength')) {\n if (formField.minLength !== undefined)\n validators.push(Validators.minLength(formField.minLength));\n }\n if (Object.prototype.hasOwnProperty.call(formField, 'maxLength')) {\n if (formField.maxLength !== undefined)\n validators.push(Validators.maxLength(formField.maxLength));\n }\n if (Object.prototype.hasOwnProperty.call(formField, 'rex')) {\n if (formField.rex !== undefined)\n validators.push(Validators.pattern(formField.rex));\n }\n return validators;\n }\n\n generateFormGroup(config: IConfig, blackList: string[]) {\n //console.log('Generate form group TRIGGERED');\n const configForm = new UntypedFormGroup({});\n\n for (let i = 0; i < config.formData.length; i++) {\n //console.log(\"FORM SECTION \", JSON.stringify(config.formData[i]));\n for (let x = 0; x < config.formData[i].dataObjs.length; x++) {\n if (!blackList.includes(config.formData[i].title)) {\n let fieldDisable = false;\n const validators = this.generateValidationRules(\n config.formData[i].dataObjs[x]\n );\n if (!config.formData[i].dataObjs[x].active) {\n fieldDisable = true;\n }\n //console.log('ADD CONTROL');\n configForm.addControl(\n config.formData[i].dataObjs[x].dataId,\n new UntypedFormControl(\n {\n value: config.formData[i].dataObjs[x].value,\n disabled: fieldDisable,\n },\n validators\n )\n );\n }\n }\n }\n //console.log('END OF GENERATE FORMGROUP');\n return configForm;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { DatasetProcessingService } from './dataset-processing.service';\n\nimport { IDisplay, IDevice } from '../lib/interfaces/devices-list';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DeviceLiveDatasetService {\n constructor(private dps: DatasetProcessingService) {}\n\n processDisplay(buffer: number[] | Uint8Array, display: IDisplay) {\n this.dps.processRaw(buffer, display);\n this.dps.processOther(display);\n this.processLayout(display);\n return display;\n }\n\n processLayout(display: IDisplay) {\n display.layout.forEach((section) => {\n section.rows.forEach((row) => {\n row.cols.forEach((col) => {\n let wv: string | number = '';\n if (typeof col.refData !== 'undefined') {\n display.rawData.forEach((raw) => {\n if (raw.name == col.refData) {\n if (typeof col.round !== 'undefined') {\n wv = raw.value.toFixed(col.round);\n } else {\n wv = raw.value;\n }\n }\n });\n display.otherData.forEach((other) => {\n if (other.name == col.refData) {\n wv = other.value;\n }\n });\n if (typeof col.prepend !== 'undefined') {\n wv = col.prepend + wv;\n }\n if (typeof col.append !== 'undefined') {\n wv = wv + col.append;\n }\n col.value = <string>wv;\n }\n });\n });\n });\n }\n\n async rssiData(\n device: IDevice,\n rssiSignal: () => Promise<number>\n ): Promise<{ deviceName: string; rssi: string }> {\n const result = { deviceName: 'N/A', rssi: 'N/A' };\n\n if (device != null) {\n result.deviceName = device.name;\n const rssi = await rssiSignal();\n if (rssi <= 0) {\n result.rssi = rssi.toString() + ' dBa';\n }\n }\n return result;\n }\n}\n","import { NgModule } from '@angular/core';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n})\nexport class CpDevicesListModule {}\n","/*\n * Public API Surface of device-config-interaction\n */\n\nexport * from './lib/device-config-interaction.service';\nexport * from './lib/command.service';\nexport * from './lib/crc-check.service';\nexport * from './lib/dataset-processing.service';\nexport * from './lib/device-config-dataset.service';\nexport * from './lib/device-live-dataset.service';\n\nexport * from './lib/device-config-interaction.module';\n\nexport * from './lib/interfaces/devices-list';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.DatasetProcessingService","i2.CrcCheckService"],"mappings":"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E,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;AACtE,YAAA,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;SACvB,CAAC;AACF,QAAA,IAAA,CAAA,SAAS,GAAG;YACV,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAA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"}
|
|
1
|
+
{"version":3,"file":"catchpower-device-config-interaction.mjs","sources":["../../../projects/device-config-interaction/src/lib/device-config-interaction.service.ts","../../../projects/device-config-interaction/src/lib/dataset-processing.service.ts","../../../projects/device-config-interaction/src/lib/crc-check.service.ts","../../../projects/device-config-interaction/src/lib/command.service.ts","../../../projects/device-config-interaction/src/lib/device-config-dataset.service.ts","../../../projects/device-config-interaction/src/lib/device-live-dataset.service.ts","../../../projects/device-config-interaction/src/lib/device-config-interaction.module.ts","../../../projects/device-config-interaction/src/public-api.ts","../../../projects/device-config-interaction/src/catchpower-device-config-interaction.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport {\n IConfig,\n IDevicesList,\n IDisplay,\n IOtherDataObj,\n IRawDataObj,\n} from '../public-api';\nimport { AxiosResponse } from 'axios';\nimport * as axios from 'axios';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CpDevicesListService {\n //constructor() {}\n\n async getDevicesList(\n _url: string,\n auth: string,\n listVersion = '-1'\n ): Promise<IDevicesList | Error> {\n //console.log('getDevicesList function TRIGGERED ', _url);\n const headers = {\n Authorization: 'Basic ' + btoa(auth),\n 'list-version': listVersion,\n };\n const response = await axios.default\n .request({\n method: 'get',\n url: _url,\n headers: headers,\n })\n .then(\n (res: AxiosResponse) => {\n if (res.status == 200) {\n //console.log( 'get DL function SUCCESS ', JSON.stringify(res));\n return res.data as IDevicesList;\n } else {\n return new Error(\n 'ERROR getting Devices List. ' + JSON.stringify(res)\n );\n }\n },\n (error: AxiosResponse) => {\n return new Error(\n 'ERROR getting Devices List. ' + JSON.stringify(error)\n );\n }\n );\n\n return response;\n }\n\n getValueFromObj(\n element: IDisplay | IConfig,\n name: string\n ): (string | number) | null {\n let value = null;\n let notInOther = true;\n element.otherData.forEach((other: IOtherDataObj) => {\n if (other.name == name) {\n value = other.value;\n notInOther = false;\n }\n });\n if (notInOther) {\n element.rawData.forEach((raw: IRawDataObj) => {\n if (raw.name == name) {\n value = raw.value;\n }\n });\n }\n return value;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n IBufferObj,\n IProcessDataObj,\n IProcessDataStep,\n IRawDataObj,\n IOtherDataObj,\n IConfig,\n IDisplay,\n} from '../lib/interfaces/devices-list';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DatasetProcessingService {\n //constructor() {}\n /*\n * For use with DataView\n *\n */\n getValuefromBuffer(obj: IBufferObj, buffer: DataView) {\n let value = 0;\n if (obj.signed) {\n switch (obj.length) {\n case 8:\n value = buffer.getInt8(obj.position);\n break;\n case 16:\n value = buffer.getInt16(obj.position, obj.little);\n break;\n case 32:\n value = buffer.getInt32(obj.position, obj.little);\n break;\n }\n } else {\n switch (obj.length) {\n case 8:\n value = buffer.getUint8(obj.position);\n break;\n case 16:\n value = buffer.getUint16(obj.position, obj.little);\n break;\n case 32:\n value = buffer.getUint32(obj.position, obj.little);\n break;\n }\n }\n return value;\n }\n\n /*\n * For use with DataView\n *\n *\n */\n writeValueToBuffer(obj: IBufferObj, value: number, buffer: DataView) {\n if (obj.signed) {\n switch (obj.length) {\n case 8:\n buffer.setInt8(obj.position, value);\n break;\n case 16:\n buffer.setInt16(obj.position, value, obj.little);\n break;\n case 32:\n buffer.setInt32(obj.position, value, obj.little);\n break;\n }\n } else {\n switch (obj.length) {\n case 8:\n buffer.setUint8(obj.position, value);\n break;\n case 16:\n buffer.setUint16(obj.position, value, obj.little);\n break;\n case 32:\n buffer.setUint32(obj.position, value, obj.little);\n break;\n }\n }\n }\n\n runProcess(\n process: IProcessDataObj,\n rawData: IRawDataObj[],\n otherData: IOtherDataObj[]\n ) {\n const values: (string | number)[] = this.getChunkValues(\n process.data,\n rawData,\n otherData\n );\n //console.log('process values ', values);\n let pVal: string | number | boolean = 0;\n switch (process.type) {\n case 'ass':\n pVal = this.assembleProcess(values);\n process.value = pVal;\n return;\n case 'com':\n pVal = this.compareProcess(\n values as [number, '<' | '<=' | '==' | '>=' | '>', number],\n process\n );\n process.value = pVal;\n return;\n case 'cal':\n pVal = this.calculateProcess(\n values as [number, '+' | '-' | '/' | '*', number]\n );\n process.value = pVal;\n return;\n case 'tfm':\n pVal = this.tfmProcess(values as number[]);\n process.value = pVal;\n return;\n case 'cdt':\n pVal = this.cdtProcess(values as string[]);\n process.value = pVal;\n return;\n case 'itd':\n pVal = this.itdProcess(values as number[]);\n process.value = pVal;\n return;\n case 'its':\n pVal = this.itsProcess(values as number[]);\n process.value = pVal;\n return;\n case 'bsv':\n pVal = this.bsvProcess(values);\n process.value = pVal;\n return;\n case 'vfa':\n pVal = this.vfaProcess(values as number[], process);\n process.value = pVal;\n return;\n case 'cts':\n pVal = this.ctsProcess(values as number[]);\n process.value = pVal;\n return;\n }\n }\n\n assembleProcess(values: (string | number)[]) {\n let result = '';\n values.forEach((v) => {\n result += v;\n });\n return result;\n }\n\n disassembleProcess(string: string, values: IProcessDataStep[]) {\n const result: { [key: string]: number } = {};\n let i = 0;\n let length = 0;\n values.forEach((val) => {\n if (Object.prototype.hasOwnProperty.call(val, 'strLength')) {\n length = val.strLength as number;\n } else {\n const str = val.value as string;\n length = str.length;\n }\n if (val.fromData == 'raw') {\n result[val.value] = Number(string.substring(i, i + length));\n }\n i = i + length;\n });\n //console.log('Disassemble Result ', JSON.stringify(result));\n return result;\n }\n\n compareProcess(\n values: [number, '<' | '<=' | '==' | '>=' | '>', number],\n process: IProcessDataObj\n ) {\n const result: boolean = this.compareValues(values[0], values[1], values[2]);\n let text = 'N/A';\n if ('comTxt' in process) {\n if (process.comTxt !== undefined) {\n if (result) {\n text = process.comTxt[0];\n } else {\n return process.comTxt[1];\n }\n }\n }\n return text;\n }\n\n compareValues(v1: number, op: '<' | '<=' | '==' | '>=' | '>', v2: number) {\n switch (op) {\n case '<':\n return v1 < v2;\n case '<=':\n return v1 <= v2;\n case '==':\n return v1 == v2;\n case '>=':\n return v1 >= v2;\n case '>':\n return v1 > v2;\n default:\n return false;\n }\n }\n\n calculateProcess(values: [number, '+' | '-' | '/' | '*', number]) {\n return this.calculateValues(values[0], values[1], values[2]);\n }\n\n calculateValues(v1: number, op: '+' | '-' | '/' | '*', v2: number) {\n switch (op) {\n case '+':\n return v1 + v2;\n case '-':\n return v1 - v2;\n case '/':\n return v1 / v2;\n case '*':\n return v1 * v2;\n default:\n return 0;\n }\n }\n\n tfmProcess(values: number[]) {\n const hours: number = Math.floor((values[0] * 60) / 3600);\n const mins: number = Math.floor((values[0] * 60 - hours * 3600) / 60);\n return this.displayTime(hours, mins);\n }\n\n cdtProcess(values: string[]) {\n const hours: number = parseInt(values[0].substring(11, 13));\n const mins: number = parseInt(values[0].substring(14, 16));\n return this.displayTime(hours, mins);\n }\n\n //New process to pick value from array based on interger value\n vfaProcess(values: number[], process: IProcessDataObj) {\n const value = values[0];\n if (process.valuesList !== undefined) {\n if (value < process.valuesList.length) {\n return process.valuesList[value];\n } else {\n return 'nip';\n }\n } else {\n return 'n/a';\n }\n }\n\n itdProcess(values: number[]) {\n let hours: number = Math.floor((values[0] * 60) / 3600);\n //console.log(\"hours \", hours);\n const mins: number = Math.floor((values[0] * 60 - hours * 3600) / 60);\n //console.log(\"mins \", mins);\n let h: number | string;\n let m: number | string;\n if (hours > 23) {\n hours = hours - 24;\n }\n if (hours < 10) {\n h = '0' + hours;\n } else {\n h = hours;\n }\n if (mins < 10) {\n m = '0' + mins;\n } else {\n m = mins;\n }\n const string: string = '0000-00-00T' + h + ':' + m;\n //console.log(\"$%^&&^%%$$%^&&&^%%%%^^^&&&^^%^%%%^^^& dt string \", string);\n return string;\n }\n\n dtiProcess(string: string, values: IProcessDataStep[]) {\n //console.log(\"dtiProcess inputs string: \", string, \" Values: \", values);\n const result: { [key: string | number]: number } = {};\n let h: number;\n let m: number;\n values.forEach((val) => {\n // h = Number(string.substr(11, 2));\n // m = Number(string.substr(14, 2));\n h = Number(string.substring(11, 13));\n m = Number(string.substring(14, 16));\n result[val.value] = h * 60 + m;\n });\n //console.log(\"date to integer Result \", JSON.stringify(result));\n return result;\n }\n\n itsProcess(values: number[]) {\n //console.log('itsProcess values', JSON.stringify(values));\n const str: string = values[0].toString();\n return str;\n }\n\n stiProcess(string: string, values: IProcessDataStep[]) {\n const result: { [key: string | number]: number } = {};\n values.forEach((val) => {\n result[val.value] = Number(string);\n });\n //console.log(\"string to integer Result \", JSON.stringify(result));\n return result;\n }\n\n bsvProcess(values: (number | string)[]) {\n const startValue: string = values[0] as string;\n const pos1: number = values[1] as number;\n const pos2: number = pos1 + 1;\n const binaryStr: string = parseInt(startValue, 10)\n .toString(2)\n .padStart(4, '0');\n return binaryStr.substring(pos1, pos2);\n }\n\n bsvRevert(\n string: string,\n values: IProcessDataStep[],\n bssObj: { [key: string]: string | number }\n ) {\n if (Object.prototype.hasOwnProperty.call(bssObj, values[0].value)) {\n bssObj[values[0].value] = this.replaceCharAt(\n bssObj[values[0].value] as string,\n values[1].value as number,\n string\n );\n } else {\n bssObj[values[0].value] = '0000';\n bssObj[values[0].value] = this.replaceCharAt(\n bssObj[values[0].value] as string,\n values[1].value as number,\n string\n );\n }\n return bssObj;\n }\n\n stcProcess(value: string) {\n const initArray = value.split('');\n const resultArray: number[] = [];\n initArray.forEach((v) => {\n resultArray.push(v.charCodeAt(0));\n });\n return resultArray;\n }\n\n ctsProcess(values: number[]) {\n // let result: string = \"\";\n const ary: number[] = [];\n values.forEach((v) => {\n if (v >= 0) {\n ary.push(v);\n } else {\n ary.push(0);\n }\n });\n //console.log(\"CTS PROCESS INPUT VALUES \", values);\n let str = String.fromCharCode(...ary);\n // eslint-disable-next-line no-control-regex\n str = str.replace(/[\\u0000]/g, '');\n //str = str.replace(/[^\\x20-\\x7E]/g, \"\");\n return str;\n }\n\n ctsRevert(\n otherObj: IOtherDataObj,\n results: { [key: string | number]: string | number }\n ) {\n const valAry = this.stcProcess(<string>otherObj.value);\n //console.log(\"VAL ARRAY\", valAry);\n //console.log(\"PROCESS DATA\", JSON.stringify(otherObj.processData));\n let progress = 0;\n otherObj.processData[0].data.forEach((process) => {\n const res: { [key: string | number]: string | number } = {};\n\n if (valAry.length >= progress) {\n res[process.value] = valAry[progress];\n } else {\n res[process.value] = 0;\n }\n results = Object.assign(results, res);\n ++progress;\n });\n return results;\n }\n\n binaryStrToDecimal(str: string) {\n return parseInt(str, 2);\n }\n\n replaceCharAt(string: string, index: number, char: string) {\n return (\n string.substring(0, index) + char + string.substring(index + char.length)\n );\n //return string.substr(0, index) + char + string.substr(index + char.length);\n }\n\n writeFormValuesToRawObj(\n formValues: { [key: string]: string | number },\n rawObj: IRawDataObj[]\n ) {\n // rawObj.forEach((raw) => {\n // if (formValues.hasOwnProperty(raw.name)) {\n // raw.value = Math.round(formValues[raw.name] / raw.multi);\n // }\n // });\n for (let i = 0; i < rawObj.length; i++) {\n if (Object.prototype.hasOwnProperty.call(formValues, rawObj[i].name)) {\n rawObj[i].value = Math.round(\n (formValues[rawObj[i].name] as number) / rawObj[i].multi\n );\n }\n }\n return rawObj;\n }\n\n getPwd(rawValues: IRawDataObj[]) {\n const pwdArray: number[] = [];\n let i: number;\n let name: string;\n\n for (i = 0; i < 16; i++) {\n if (i < 10) {\n name = 'pass_0' + i;\n } else {\n name = 'pass_' + i;\n }\n rawValues.forEach((v) => {\n if (v.name == name) {\n pwdArray.push(v.value);\n }\n });\n }\n\n return pwdArray;\n }\n\n strToPwd(string: string) {\n const pwdArray: number[] = [];\n let i: number;\n\n if (string == null) {\n string = '';\n }\n\n for (i = 0; i < 16; i++) {\n if (i < string.length) {\n pwdArray.push(string.charCodeAt(i));\n } else {\n pwdArray.push(0);\n }\n }\n\n return pwdArray;\n }\n\n chkPwd(arr1: number[], arr2: number[]) {\n if (\n !Array.isArray(arr1) ||\n !Array.isArray(arr2) ||\n arr1.length !== arr2.length\n )\n return false;\n\n for (let i = 0; i < arr1.length; i++) {\n if (arr1[i] !== arr2[i]) return false;\n }\n\n return true;\n }\n\n writePwdToConfig(passArray: number[], rawObj: IRawDataObj[]) {\n let i: number;\n let name: string;\n\n //console.log(\"Before write password \", JSON.stringify(rawObj));\n\n for (i = 0; i < 16; i++) {\n if (i < 10) {\n name = 'pass_0' + i;\n } else {\n name = 'pass_' + i;\n }\n rawObj.forEach((v) => {\n if (v.name == name) {\n v.value = passArray[i];\n }\n });\n }\n\n //console.log(\"After write password \", JSON.stringify(rawObj));\n\n return rawObj;\n }\n\n displayTime(hours: number, mins: number) {\n //console.log(\"hours = \", hours, \" mins = \", mins);\n let m: number | string = mins;\n let p = 'am';\n if (mins < 10) {\n m = '0' + mins;\n }\n if (hours > 11) {\n p = 'pm';\n }\n if (hours == 0) {\n hours = 12;\n }\n if (hours > 12) {\n hours -= 12;\n }\n return hours + ':' + m + ' ' + p;\n }\n\n getChunkValues(\n processData: IProcessDataStep[],\n rawData: IRawDataObj[],\n otherData: IOtherDataObj[]\n ) {\n // console.log(\n // 'GET CHUNK VALUES ',\n // JSON.stringify(rawData),\n // ' ',\n // JSON.stringify(otherData)\n // );\n let v: string | number;\n const values: (string | number)[] = [];\n processData.forEach((chunk) => {\n //console.log('Process Raw chunk ', JSON.stringify(chunk));\n switch (chunk.fromData) {\n case 'raw':\n rawData.forEach((rd) => {\n if (rd.name == chunk.value) {\n //console.log('RAW chunk name: ', rd.name);\n v = rd.value;\n }\n });\n break;\n case 'other':\n otherData.forEach((od) => {\n if (od.name == chunk.value) {\n v = od.value;\n }\n });\n break;\n case 'no':\n v = chunk.value;\n break;\n }\n\n if (typeof chunk.strLength === 'undefined') {\n values.push(v);\n } else {\n const pad = v.toString().padStart(chunk.strLength, '0');\n values.push(pad);\n }\n });\n return values;\n }\n\n uint8ArrayToArray(uint8: Uint8Array): number[] {\n return Array.from(uint8);\n }\n\n arrayToUint8Array(array: number[]): Uint8Array {\n return Uint8Array.from(array);\n }\n\n isUint8Array(v: number[] | Uint8Array) {\n const isStr = Object.prototype.toString;\n return isStr.call(v) === '[object Uint8Array]';\n }\n\n processRaw(input: number[] | Uint8Array, configObj: IConfig | IDisplay) {\n let buffer: Uint8Array;\n if (this.isUint8Array(input)) {\n buffer = input as Uint8Array;\n } else {\n buffer = this.arrayToUint8Array(input as number[]);\n }\n const rawDataBuffer = new DataView(buffer.buffer, 0, 254);\n //console.log('PROCESS RAW CONFIG ', rawDataBuffer);\n configObj.rawData.forEach((datapoint) => {\n datapoint.value =\n this.getValuefromBuffer(datapoint.buffer, rawDataBuffer) *\n datapoint.multi;\n });\n }\n\n processOther(configObj: IConfig | IDisplay) {\n configObj.otherData.forEach((dataPoint) => {\n dataPoint.processData.forEach((process) => {\n this.runProcess(process, configObj.rawData, configObj.otherData);\n dataPoint.value = process.value;\n });\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ICommandData } from '../public-api';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CrcCheckService {\n // checksum arrays\n auchCRCHi = [\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x00, 0xc1, 0x81, 0x40,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x00, 0xc1, 0x81, 0x40,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x00, 0xc1, 0x81, 0x40,\n 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41, 0x00, 0xc1, 0x81, 0x40,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x00, 0xc1, 0x81, 0x40,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41,\n 0x01, 0xc0, 0x80, 0x41, 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x00, 0xc1, 0x81, 0x40,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40,\n ];\n auchCRCLo = [\n 0x00, 0xc0, 0xc1, 0x01, 0xc3, 0x03, 0x02, 0xc2, 0xc6, 0x06, 0x07, 0xc7,\n 0x05, 0xc5, 0xc4, 0x04, 0xcc, 0x0c, 0x0d, 0xcd, 0x0f, 0xcf, 0xce, 0x0e,\n 0x0a, 0xca, 0xcb, 0x0b, 0xc9, 0x09, 0x08, 0xc8, 0xd8, 0x18, 0x19, 0xd9,\n 0x1b, 0xdb, 0xda, 0x1a, 0x1e, 0xde, 0xdf, 0x1f, 0xdd, 0x1d, 0x1c, 0xdc,\n 0x14, 0xd4, 0xd5, 0x15, 0xd7, 0x17, 0x16, 0xd6, 0xd2, 0x12, 0x13, 0xd3,\n 0x11, 0xd1, 0xd0, 0x10, 0xf0, 0x30, 0x31, 0xf1, 0x33, 0xf3, 0xf2, 0x32,\n 0x36, 0xf6, 0xf7, 0x37, 0xf5, 0x35, 0x34, 0xf4, 0x3c, 0xfc, 0xfd, 0x3d,\n 0xff, 0x3f, 0x3e, 0xfe, 0xfa, 0x3a, 0x3b, 0xfb, 0x39, 0xf9, 0xf8, 0x38,\n 0x28, 0xe8, 0xe9, 0x29, 0xeb, 0x2b, 0x2a, 0xea, 0xee, 0x2e, 0x2f, 0xef,\n 0x2d, 0xed, 0xec, 0x2c, 0xe4, 0x24, 0x25, 0xe5, 0x27, 0xe7, 0xe6, 0x26,\n 0x22, 0xe2, 0xe3, 0x23, 0xe1, 0x21, 0x20, 0xe0, 0xa0, 0x60, 0x61, 0xa1,\n 0x63, 0xa3, 0xa2, 0x62, 0x66, 0xa6, 0xa7, 0x67, 0xa5, 0x65, 0x64, 0xa4,\n 0x6c, 0xac, 0xad, 0x6d, 0xaf, 0x6f, 0x6e, 0xae, 0xaa, 0x6a, 0x6b, 0xab,\n 0x69, 0xa9, 0xa8, 0x68, 0x78, 0xb8, 0xb9, 0x79, 0xbb, 0x7b, 0x7a, 0xba,\n 0xbe, 0x7e, 0x7f, 0xbf, 0x7d, 0xbd, 0xbc, 0x7c, 0xb4, 0x74, 0x75, 0xb5,\n 0x77, 0xb7, 0xb6, 0x76, 0x72, 0xb2, 0xb3, 0x73, 0xb1, 0x71, 0x70, 0xb0,\n 0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97,\n 0x55, 0x95, 0x94, 0x54, 0x9c, 0x5c, 0x5d, 0x9d, 0x5f, 0x9f, 0x9e, 0x5e,\n 0x5a, 0x9a, 0x9b, 0x5b, 0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89,\n 0x4b, 0x8b, 0x8a, 0x4a, 0x4e, 0x8e, 0x8f, 0x4f, 0x8d, 0x4d, 0x4c, 0x8c,\n 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83,\n 0x41, 0x81, 0x80, 0x40,\n ];\n\n //constructor() {}\n\n _buildCRC(\n puchMsg: Uint8Array,\n usDataLen: number,\n startIndex = 0\n ): [number, number] {\n console.log('Start of CRC check generation.');\n let uchCRCHi = 0xff; /* high byte of CRC initialized */\n let uchCRCLo = 0xff; /* low byte of CRC initialized */\n let uIndex; /* will index into CRC lookup table */\n let bufferIndex = startIndex;\n\n while (usDataLen--) {\n uIndex = uchCRCLo ^ puchMsg[bufferIndex]; /* calculate the CRC */\n\n bufferIndex++;\n uchCRCLo = uchCRCHi ^ this.auchCRCHi[uIndex];\n uchCRCHi = this.auchCRCLo[uIndex];\n }\n\n return [uchCRCHi, uchCRCLo];\n }\n\n /**\n *\n * @param sentValuePair\n * @param receivedValuePair\n * @returns\n */\n saveCheck(\n sentValuePair: [number, number],\n receivedValuePair: [number, number]\n ): boolean {\n console.log(\n 'CRC save check sent ',\n sentValuePair,\n ' recieved ',\n receivedValuePair\n );\n if (\n sentValuePair[0] === receivedValuePair[0] &&\n sentValuePair[1] === receivedValuePair[1]\n ) {\n console.log('CRC compare check TRUE');\n return true;\n } else {\n console.log('CRC compare check FALSE');\n return false;\n }\n }\n\n async writeCrcToCommand(commandData: ICommandData) {\n console.log('WRITE CRC TO COMMAND TRIGGERED ');\n const checkSum = this._buildCRC(\n commandData.byteData,\n commandData.byteData.length - 2\n );\n\n console.log('###### ####### CRC16 values ', checkSum);\n\n commandData.byteData[253] = checkSum[0];\n commandData.byteData[254] = checkSum[1];\n\n return commandData;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n ICommandData,\n ICommandDataApi,\n IDevice,\n IRawDataObj,\n} from '../public-api';\nimport { DatasetProcessingService } from './dataset-processing.service';\nimport { CrcCheckService } from './crc-check.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CommandService {\n constructor(\n private dps: DatasetProcessingService,\n private crcService: CrcCheckService\n ) {}\n\n /**\n * For Bluetooth command send\n * @param currentDevice\n * @param command\n * @param rawDataObj\n * @returns\n */\n async createCommandData(\n currentDevice: IDevice,\n command: string,\n rawDataObj?: IRawDataObj[]\n ) {\n let opCode = 0;\n const comandBuffer = new ArrayBuffer(currentDevice.write.bufferSize);\n\n currentDevice.commands.forEach((commandObj) => {\n //console.log('Command Name', commandObj.name);\n if (command == commandObj.name) {\n opCode = parseInt(commandObj.opCode);\n }\n });\n\n //console.log('########### $$$$$$$$$$$$ Op Code ', opCode);\n if (rawDataObj !== undefined) {\n //console.log('create Command Data, Raw Data Object is present.');\n const dataView = new DataView(comandBuffer);\n rawDataObj.forEach((raw) => {\n this.dps.writeValueToBuffer(raw.buffer, raw.value, dataView);\n });\n }\n\n let commandData: ICommandData = {\n opCode: opCode,\n service: currentDevice.write.service,\n characteristic: currentDevice.write.characteristic,\n byteData: new Uint8Array(comandBuffer),\n };\n commandData.byteData[0] = commandData.opCode;\n\n commandData = await this.crcService.writeCrcToCommand(commandData);\n\n return commandData;\n }\n\n async createCommandDataForApi(\n currentDevice: IDevice,\n command: string,\n rawDataObj?: IRawDataObj[]\n ): Promise<ICommandDataApi> {\n let raw = undefined;\n if (rawDataObj !== undefined) {\n raw = rawDataObj;\n }\n const commandBt = this.createCommandData(currentDevice, command, raw);\n const send = {\n serialNumber: currentDevice.serial.toString(),\n data: this.dps.uint8ArrayToArray((await commandBt).byteData),\n };\n //console.log(JSON.stringify(send));\n return send;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n UntypedFormGroup,\n UntypedFormBuilder,\n UntypedFormControl,\n Validators,\n} from '@angular/forms';\nimport { DatasetProcessingService } from './dataset-processing.service';\n\nimport { IConfig, IFormDataObj } from '../lib/interfaces/devices-list';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DeviceConfigDatasetService {\n constructor(\n private dps: DatasetProcessingService,\n public formBuilder: UntypedFormBuilder\n ) {}\n\n processConfig(buffer: number[] | Uint8Array, config: IConfig) {\n this.dps.processRaw(buffer, config);\n this.dps.processOther(config);\n this.processForm(config);\n return config;\n }\n\n processForm(config: IConfig) {\n //console.log(\"Starting to process form data\");\n config.formData.forEach((formSection) => {\n formSection.dataObjs.forEach((formControl) => {\n config.rawData.forEach((dp) => {\n if (formControl.dataId == dp.name) {\n formControl.value = dp.value;\n }\n });\n config.otherData.forEach((dp) => {\n if (formControl.dataId == dp.name) {\n formControl.value = dp.value;\n }\n });\n });\n });\n }\n\n processResultsToFormData(\n formResults: { [key: string]: string | number },\n config: IConfig\n ) {\n for (let i = 0; i < config.formData.length; i++) {\n for (let x = 0; x < config.formData[i].dataObjs.length; x++) {\n if (\n Object.prototype.hasOwnProperty.call(\n formResults,\n config.formData[i].dataObjs[x].dataId\n )\n ) {\n config.formData[i].dataObjs[x].value =\n formResults[config.formData[i].dataObjs[x].dataId];\n }\n\n if (\n Object.prototype.hasOwnProperty.call(\n config.formData[i].dataObjs[x],\n 'autoInput'\n )\n ) {\n if (config.formData[i].dataObjs[x].autoInput == true) {\n //console.log(\"auto date condition met\");\n config.formData[i].dataObjs[x].value = this.currentDateTimeStr();\n }\n }\n }\n }\n\n //console.log(\"formdata object updated\", JSON.stringify(config.formData));\n return config;\n }\n\n currentDateTimeStr() {\n const date = new Date();\n const str =\n date.getFullYear() +\n '-' +\n (date.getMonth() + 1).toString().padStart(2, '0') +\n '-' +\n date.getDate().toString().padStart(2, '0') +\n 'T' +\n date.getHours().toString().padStart(2, '0') +\n ':' +\n date.getMinutes().toString().padStart(2, '0');\n return str;\n }\n\n extractBackToRaw(config: IConfig): IConfig {\n const otherToProcess: { [key: string]: number | string } = {};\n let valuesToRaw: { [key: string]: number | string } = {};\n let bss: { [key: string]: number | string } = {};\n\n if (Object.prototype.hasOwnProperty.call(config, 'formData')) {\n for (let i = 0; i < config.formData.length; i++) {\n for (let x = 0; x < config.formData[i].dataObjs.length; x++) {\n let isRawData = false;\n for (let z = 0; z < config.rawData.length; z++) {\n if (\n config.rawData[z].name == config.formData[i].dataObjs[x].dataId\n ) {\n valuesToRaw[config.formData[i].dataObjs[x].dataId] =\n config.formData[i].dataObjs[x].value;\n isRawData = true;\n }\n }\n if (isRawData == false) {\n otherToProcess[config.formData[i].dataObjs[x].dataId] =\n config.formData[i].dataObjs[x].value;\n }\n }\n }\n } else {\n config.otherData.forEach((otherObj) => {\n otherToProcess[otherObj.name] = otherObj.value;\n });\n }\n\n //console.log('Other to Process ', JSON.stringify(otherToProcess));\n\n config.otherData.forEach((otherObj) => {\n const value = otherToProcess[otherObj.name];\n // console.log(\n // 'EXTRACT BACK TO RAW ',\n // ' ',\n // otherObj.name,\n // ' ',\n // JSON.stringify(value)\n // );\n otherObj.processData.forEach((pdo) => {\n switch (pdo.type) {\n case 'ass':\n valuesToRaw = Object.assign(\n valuesToRaw,\n this.dps.disassembleProcess(value as string, pdo.data)\n );\n return;\n case 'itd':\n valuesToRaw = Object.assign(\n valuesToRaw,\n this.dps.dtiProcess(value as string, pdo.data)\n );\n return;\n case 'its':\n valuesToRaw = Object.assign(\n valuesToRaw,\n this.dps.stiProcess(value as string, pdo.data)\n );\n return;\n case 'bsv':\n bss = this.dps.bsvRevert(value as string, pdo.data, bss);\n return;\n }\n });\n });\n\n if (Object.keys(bss).length > 0) {\n for (const str in bss) {\n valuesToRaw[str] = this.dps.binaryStrToDecimal(bss[str] as string);\n }\n }\n config.rawData = this.dps.writeFormValuesToRawObj(\n valuesToRaw,\n config.rawData\n );\n //console.log(\"rawData Obj \", JSON.stringify(config.rawData));\n return config;\n }\n\n generateValidationRules(formField: IFormDataObj) {\n const validators = [];\n\n if (formField.required == true) {\n validators.push(Validators.required);\n }\n if (Object.prototype.hasOwnProperty.call(formField, 'min')) {\n if (formField.min !== undefined)\n validators.push(Validators.min(formField.min));\n }\n if (Object.prototype.hasOwnProperty.call(formField, 'max')) {\n if (formField.max !== undefined)\n validators.push(Validators.max(formField.max));\n }\n if (Object.prototype.hasOwnProperty.call(formField, 'minLength')) {\n if (formField.minLength !== undefined)\n validators.push(Validators.minLength(formField.minLength));\n }\n if (Object.prototype.hasOwnProperty.call(formField, 'maxLength')) {\n if (formField.maxLength !== undefined)\n validators.push(Validators.maxLength(formField.maxLength));\n }\n if (Object.prototype.hasOwnProperty.call(formField, 'rex')) {\n if (formField.rex !== undefined)\n validators.push(Validators.pattern(formField.rex));\n }\n return validators;\n }\n\n generateFormGroup(config: IConfig, blackList: string[]) {\n //console.log('Generate form group TRIGGERED');\n const configForm = new UntypedFormGroup({});\n\n for (let i = 0; i < config.formData.length; i++) {\n //console.log(\"FORM SECTION \", JSON.stringify(config.formData[i]));\n for (let x = 0; x < config.formData[i].dataObjs.length; x++) {\n if (!blackList.includes(config.formData[i].title)) {\n let fieldDisable = false;\n const validators = this.generateValidationRules(\n config.formData[i].dataObjs[x]\n );\n if (!config.formData[i].dataObjs[x].active) {\n fieldDisable = true;\n }\n //console.log('ADD CONTROL');\n configForm.addControl(\n config.formData[i].dataObjs[x].dataId,\n new UntypedFormControl(\n {\n value: config.formData[i].dataObjs[x].value,\n disabled: fieldDisable,\n },\n validators\n )\n );\n }\n }\n }\n //console.log('END OF GENERATE FORMGROUP');\n return configForm;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { DatasetProcessingService } from './dataset-processing.service';\n\nimport { IDisplay, IDevice } from '../lib/interfaces/devices-list';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DeviceLiveDatasetService {\n constructor(private dps: DatasetProcessingService) {}\n\n processDisplay(buffer: number[] | Uint8Array, display: IDisplay) {\n this.dps.processRaw(buffer, display);\n this.dps.processOther(display);\n this.processLayout(display);\n return display;\n }\n\n processLayout(display: IDisplay) {\n display.layout.forEach((section) => {\n section.rows.forEach((row) => {\n row.cols.forEach((col) => {\n let wv: string | number = '';\n if (typeof col.refData !== 'undefined') {\n display.rawData.forEach((raw) => {\n if (raw.name == col.refData) {\n if (typeof col.round !== 'undefined') {\n wv = raw.value.toFixed(col.round);\n } else {\n wv = raw.value;\n }\n }\n });\n display.otherData.forEach((other) => {\n if (other.name == col.refData) {\n wv = other.value;\n }\n });\n if (typeof col.prepend !== 'undefined') {\n wv = col.prepend + wv;\n }\n if (typeof col.append !== 'undefined') {\n wv = wv + col.append;\n }\n col.value = <string>wv;\n }\n });\n });\n });\n }\n\n async rssiData(\n device: IDevice,\n rssiSignal: () => Promise<number>\n ): Promise<{ deviceName: string; rssi: string }> {\n const result = { deviceName: 'N/A', rssi: 'N/A' };\n\n if (device != null) {\n result.deviceName = device.name;\n const rssi = await rssiSignal();\n if (rssi <= 0) {\n result.rssi = rssi.toString() + ' dBa';\n }\n }\n return result;\n }\n}\n","import { NgModule } from '@angular/core';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n})\nexport class CpDevicesListModule {}\n","/*\n * Public API Surface of device-config-interaction\n */\n\nexport * from './lib/device-config-interaction.service';\nexport * from './lib/command.service';\nexport * from './lib/crc-check.service';\nexport * from './lib/dataset-processing.service';\nexport * from './lib/device-config-dataset.service';\nexport * from './lib/device-live-dataset.service';\n\nexport * from './lib/device-config-interaction.module';\n\nexport * from './lib/interfaces/devices-list';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.DatasetProcessingService","i2.CrcCheckService"],"mappings":"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E,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;AACtE,YAAA,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;SACvB,CAAC;AACF,QAAA,IAAA,CAAA,SAAS,GAAG;YACV,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAA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"}
|
package/lib/command.service.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ICommandDataApi, IDevice, IRawDataObj } from '../public-api';
|
|
1
|
+
import { ICommandData, ICommandDataApi, IDevice, IRawDataObj } from '../public-api';
|
|
2
2
|
import { DatasetProcessingService } from './dataset-processing.service';
|
|
3
3
|
import { CrcCheckService } from './crc-check.service';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
@@ -13,12 +13,7 @@ export declare class CommandService {
|
|
|
13
13
|
* @param rawDataObj
|
|
14
14
|
* @returns
|
|
15
15
|
*/
|
|
16
|
-
createCommandData(currentDevice: IDevice, command: string, rawDataObj?: IRawDataObj[]): Promise<
|
|
17
|
-
opCode: number;
|
|
18
|
-
service: string;
|
|
19
|
-
characteristic: string;
|
|
20
|
-
byteData: Uint8Array;
|
|
21
|
-
}>;
|
|
16
|
+
createCommandData(currentDevice: IDevice, command: string, rawDataObj?: IRawDataObj[]): Promise<ICommandData>;
|
|
22
17
|
createCommandDataForApi(currentDevice: IDevice, command: string, rawDataObj?: IRawDataObj[]): Promise<ICommandDataApi>;
|
|
23
18
|
static ɵfac: i0.ɵɵFactoryDeclaration<CommandService, never>;
|
|
24
19
|
static ɵprov: i0.ɵɵInjectableDeclaration<CommandService>;
|
|
@@ -10,6 +10,7 @@ export interface IDevicesList {
|
|
|
10
10
|
/** Current key options are wifi, tetherData, tetherConfig, sunspecState, sunspecConfig, sunspecScan, sunspecList, sunspecsetDevices */
|
|
11
11
|
[key: string]: IExtraConfigOption;
|
|
12
12
|
};
|
|
13
|
+
verHistory: IVersionHistoryObj[];
|
|
13
14
|
}
|
|
14
15
|
/** All the relevant information for a device model. */
|
|
15
16
|
export interface IDevice {
|
|
@@ -181,3 +182,13 @@ export interface ICommandDataApi {
|
|
|
181
182
|
serialNumber: string;
|
|
182
183
|
data: number[];
|
|
183
184
|
}
|
|
185
|
+
export interface IVersionHistoryObj {
|
|
186
|
+
modelId: number;
|
|
187
|
+
minVersion: number;
|
|
188
|
+
baseVersion: number;
|
|
189
|
+
features: IVersionHistoryFeature[];
|
|
190
|
+
}
|
|
191
|
+
export interface IVersionHistoryFeature {
|
|
192
|
+
verFeature: string;
|
|
193
|
+
minVersion: number;
|
|
194
|
+
}
|