@catchpower/device-config-interaction 0.0.13 → 0.0.15

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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZGV2aWNlLWNvbmZpZy1pbnRlcmFjdGlvbi9zcmMvbGliL2NvbW1hbmQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBUTNDLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFlBQ1UsR0FBNkIsRUFDN0IsVUFBMkI7UUFEM0IsUUFBRyxHQUFILEdBQUcsQ0FBMEI7UUFDN0IsZUFBVSxHQUFWLFVBQVUsQ0FBaUI7SUFDbEMsQ0FBQztJQUVKOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxpQkFBaUIsQ0FDckIsYUFBc0IsRUFDdEIsT0FBZSxFQUNmLFVBQTBCO1FBRTFCLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNmLE1BQU0sWUFBWSxHQUFHLElBQUksV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFckUsYUFBYSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUM1QywrQ0FBK0M7WUFDL0MsSUFBSSxPQUFPLElBQUksVUFBVSxDQUFDLElBQUksRUFBRTtnQkFDOUIsTUFBTSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDdEM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILG9FQUFvRTtRQUNwRSxJQUFJLFVBQVUsS0FBSyxTQUFTLEVBQUU7WUFDNUIsa0VBQWtFO1lBQ2xFLE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzVDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDL0QsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUVELElBQUksV0FBVyxHQUFHO1lBQ2hCLE1BQU0sRUFBRSxNQUFNO1lBQ2QsT0FBTyxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTztZQUNwQyxjQUFjLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxjQUFjO1lBQ2xELFFBQVEsRUFBRSxJQUFJLFVBQVUsQ0FBQyxZQUFZLENBQUM7U0FDdkMsQ0FBQztRQUNGLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQztRQUU3QyxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRW5FLE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxLQUFLLENBQUMsdUJBQXVCLENBQzNCLGFBQXNCLEVBQ3RCLE9BQWUsRUFDZixVQUEwQjtRQUUxQixJQUFJLEdBQUcsR0FBRyxTQUFTLENBQUM7UUFDcEIsSUFBSSxVQUFVLEtBQUssU0FBUyxFQUFFO1lBQzVCLEdBQUcsR0FBRyxVQUFVLENBQUM7U0FDbEI7UUFDRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN0RSxNQUFNLElBQUksR0FBRztZQUNYLFlBQVksRUFBRSxhQUFhLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTtZQUM3QyxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE1BQU0sU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDO1NBQzdELENBQUM7UUFDRixvQ0FBb0M7UUFDcEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOytHQWxFVSxjQUFjO21IQUFkLGNBQWMsY0FGYixNQUFNOzs0RkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElDb21tYW5kRGF0YUFwaSwgSURldmljZSwgSVJhd0RhdGFPYmogfSBmcm9tICcuLi9wdWJsaWMtYXBpJztcbmltcG9ydCB7IERhdGFzZXRQcm9jZXNzaW5nU2VydmljZSB9IGZyb20gJy4vZGF0YXNldC1wcm9jZXNzaW5nLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ3JjQ2hlY2tTZXJ2aWNlIH0gZnJvbSAnLi9jcmMtY2hlY2suc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBDb21tYW5kU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZHBzOiBEYXRhc2V0UHJvY2Vzc2luZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBjcmNTZXJ2aWNlOiBDcmNDaGVja1NlcnZpY2VcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiAgRm9yIEJsdWV0b290aCBjb21tYW5kIHNlbmRcbiAgICogQHBhcmFtIGN1cnJlbnREZXZpY2VcbiAgICogQHBhcmFtIGNvbW1hbmRcbiAgICogQHBhcmFtIHJhd0RhdGFPYmpcbiAgICogQHJldHVybnNcbiAgICovXG4gIGFzeW5jIGNyZWF0ZUNvbW1hbmREYXRhKFxuICAgIGN1cnJlbnREZXZpY2U6IElEZXZpY2UsXG4gICAgY29tbWFuZDogc3RyaW5nLFxuICAgIHJhd0RhdGFPYmo/OiBJUmF3RGF0YU9ialtdXG4gICkge1xuICAgIGxldCBvcENvZGUgPSAwO1xuICAgIGNvbnN0IGNvbWFuZEJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihjdXJyZW50RGV2aWNlLndyaXRlLmJ1ZmZlclNpemUpO1xuXG4gICAgY3VycmVudERldmljZS5jb21tYW5kcy5mb3JFYWNoKChjb21tYW5kT2JqKSA9PiB7XG4gICAgICAvL2NvbnNvbGUubG9nKCdDb21tYW5kIE5hbWUnLCBjb21tYW5kT2JqLm5hbWUpO1xuICAgICAgaWYgKGNvbW1hbmQgPT0gY29tbWFuZE9iai5uYW1lKSB7XG4gICAgICAgIG9wQ29kZSA9IHBhcnNlSW50KGNvbW1hbmRPYmoub3BDb2RlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vY29uc29sZS5sb2coJyMjIyMjIyMjIyMjICAgICAgJCQkJCQkJCQkJCQkICAgICBPcCBDb2RlICcsIG9wQ29kZSk7XG4gICAgaWYgKHJhd0RhdGFPYmogIT09IHVuZGVmaW5lZCkge1xuICAgICAgLy9jb25zb2xlLmxvZygnY3JlYXRlIENvbW1hbmQgRGF0YSwgUmF3IERhdGEgT2JqZWN0IGlzIHByZXNlbnQuJyk7XG4gICAgICBjb25zdCBkYXRhVmlldyA9IG5ldyBEYXRhVmlldyhjb21hbmRCdWZmZXIpO1xuICAgICAgcmF3RGF0YU9iai5mb3JFYWNoKChyYXcpID0+IHtcbiAgICAgICAgdGhpcy5kcHMud3JpdGVWYWx1ZVRvQnVmZmVyKHJhdy5idWZmZXIsIHJhdy52YWx1ZSwgZGF0YVZpZXcpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgbGV0IGNvbW1hbmREYXRhID0ge1xuICAgICAgb3BDb2RlOiBvcENvZGUsXG4gICAgICBzZXJ2aWNlOiBjdXJyZW50RGV2aWNlLndyaXRlLnNlcnZpY2UsXG4gICAgICBjaGFyYWN0ZXJpc3RpYzogY3VycmVudERldmljZS53cml0ZS5jaGFyYWN0ZXJpc3RpYyxcbiAgICAgIGJ5dGVEYXRhOiBuZXcgVWludDhBcnJheShjb21hbmRCdWZmZXIpLFxuICAgIH07XG4gICAgY29tbWFuZERhdGEuYnl0ZURhdGFbMF0gPSBjb21tYW5kRGF0YS5vcENvZGU7XG5cbiAgICBjb21tYW5kRGF0YSA9IGF3YWl0IHRoaXMuY3JjU2VydmljZS53cml0ZUNyY1RvQ29tbWFuZChjb21tYW5kRGF0YSk7XG5cbiAgICByZXR1cm4gY29tbWFuZERhdGE7XG4gIH1cblxuICBhc3luYyBjcmVhdGVDb21tYW5kRGF0YUZvckFwaShcbiAgICBjdXJyZW50RGV2aWNlOiBJRGV2aWNlLFxuICAgIGNvbW1hbmQ6IHN0cmluZyxcbiAgICByYXdEYXRhT2JqPzogSVJhd0RhdGFPYmpbXVxuICApOiBQcm9taXNlPElDb21tYW5kRGF0YUFwaT4ge1xuICAgIGxldCByYXcgPSB1bmRlZmluZWQ7XG4gICAgaWYgKHJhd0RhdGFPYmogIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmF3ID0gcmF3RGF0YU9iajtcbiAgICB9XG4gICAgY29uc3QgY29tbWFuZEJ0ID0gdGhpcy5jcmVhdGVDb21tYW5kRGF0YShjdXJyZW50RGV2aWNlLCBjb21tYW5kLCByYXcpO1xuICAgIGNvbnN0IHNlbmQgPSB7XG4gICAgICBzZXJpYWxOdW1iZXI6IGN1cnJlbnREZXZpY2Uuc2VyaWFsLnRvU3RyaW5nKCksXG4gICAgICBkYXRhOiB0aGlzLmRwcy51aW50OEFycmF5VG9BcnJheSgoYXdhaXQgY29tbWFuZEJ0KS5ieXRlRGF0YSksXG4gICAgfTtcbiAgICAvL2NvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHNlbmQpKTtcbiAgICByZXR1cm4gc2VuZDtcbiAgfVxufVxuIl19
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZGV2aWNlLWNvbmZpZy1pbnRlcmFjdGlvbi9zcmMvbGliL2NvbW1hbmQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBYTNDLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFlBQ1UsR0FBNkIsRUFDN0IsVUFBMkI7UUFEM0IsUUFBRyxHQUFILEdBQUcsQ0FBMEI7UUFDN0IsZUFBVSxHQUFWLFVBQVUsQ0FBaUI7SUFDbEMsQ0FBQztJQUVKOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxpQkFBaUIsQ0FDckIsYUFBc0IsRUFDdEIsT0FBZSxFQUNmLFVBQTBCO1FBRTFCLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNmLE1BQU0sWUFBWSxHQUFHLElBQUksV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFckUsYUFBYSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUM1QywrQ0FBK0M7WUFDL0MsSUFBSSxPQUFPLElBQUksVUFBVSxDQUFDLElBQUksRUFBRTtnQkFDOUIsTUFBTSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDdEM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILG9FQUFvRTtRQUNwRSxJQUFJLFVBQVUsS0FBSyxTQUFTLEVBQUU7WUFDNUIsa0VBQWtFO1lBQ2xFLE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzVDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDL0QsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUVELElBQUksV0FBVyxHQUFpQjtZQUM5QixNQUFNLEVBQUUsTUFBTTtZQUNkLE9BQU8sRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU87WUFDcEMsY0FBYyxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsY0FBYztZQUNsRCxRQUFRLEVBQUUsSUFBSSxVQUFVLENBQUMsWUFBWSxDQUFDO1NBQ3ZDLENBQUM7UUFDRixXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUM7UUFFN0MsV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVuRSxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRUQsS0FBSyxDQUFDLHVCQUF1QixDQUMzQixhQUFzQixFQUN0QixPQUFlLEVBQ2YsVUFBMEI7UUFFMUIsSUFBSSxHQUFHLEdBQUcsU0FBUyxDQUFDO1FBQ3BCLElBQUksVUFBVSxLQUFLLFNBQVMsRUFBRTtZQUM1QixHQUFHLEdBQUcsVUFBVSxDQUFDO1NBQ2xCO1FBQ0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDdEUsTUFBTSxJQUFJLEdBQUc7WUFDWCxZQUFZLEVBQUUsYUFBYSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUU7WUFDN0MsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxNQUFNLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztTQUM3RCxDQUFDO1FBQ0Ysb0NBQW9DO1FBQ3BDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzsrR0FsRVUsY0FBYzttSEFBZCxjQUFjLGNBRmIsTUFBTTs7NEZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBJQ29tbWFuZERhdGEsXG4gIElDb21tYW5kRGF0YUFwaSxcbiAgSURldmljZSxcbiAgSVJhd0RhdGFPYmosXG59IGZyb20gJy4uL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgRGF0YXNldFByb2Nlc3NpbmdTZXJ2aWNlIH0gZnJvbSAnLi9kYXRhc2V0LXByb2Nlc3Npbmcuc2VydmljZSc7XG5pbXBvcnQgeyBDcmNDaGVja1NlcnZpY2UgfSBmcm9tICcuL2NyYy1jaGVjay5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIENvbW1hbmRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkcHM6IERhdGFzZXRQcm9jZXNzaW5nU2VydmljZSxcbiAgICBwcml2YXRlIGNyY1NlcnZpY2U6IENyY0NoZWNrU2VydmljZVxuICApIHt9XG5cbiAgLyoqXG4gICAqICBGb3IgQmx1ZXRvb3RoIGNvbW1hbmQgc2VuZFxuICAgKiBAcGFyYW0gY3VycmVudERldmljZVxuICAgKiBAcGFyYW0gY29tbWFuZFxuICAgKiBAcGFyYW0gcmF3RGF0YU9ialxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgYXN5bmMgY3JlYXRlQ29tbWFuZERhdGEoXG4gICAgY3VycmVudERldmljZTogSURldmljZSxcbiAgICBjb21tYW5kOiBzdHJpbmcsXG4gICAgcmF3RGF0YU9iaj86IElSYXdEYXRhT2JqW11cbiAgKSB7XG4gICAgbGV0IG9wQ29kZSA9IDA7XG4gICAgY29uc3QgY29tYW5kQnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKGN1cnJlbnREZXZpY2Uud3JpdGUuYnVmZmVyU2l6ZSk7XG5cbiAgICBjdXJyZW50RGV2aWNlLmNvbW1hbmRzLmZvckVhY2goKGNvbW1hbmRPYmopID0+IHtcbiAgICAgIC8vY29uc29sZS5sb2coJ0NvbW1hbmQgTmFtZScsIGNvbW1hbmRPYmoubmFtZSk7XG4gICAgICBpZiAoY29tbWFuZCA9PSBjb21tYW5kT2JqLm5hbWUpIHtcbiAgICAgICAgb3BDb2RlID0gcGFyc2VJbnQoY29tbWFuZE9iai5vcENvZGUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy9jb25zb2xlLmxvZygnIyMjIyMjIyMjIyMgICAgICAkJCQkJCQkJCQkJCQgICAgIE9wIENvZGUgJywgb3BDb2RlKTtcbiAgICBpZiAocmF3RGF0YU9iaiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAvL2NvbnNvbGUubG9nKCdjcmVhdGUgQ29tbWFuZCBEYXRhLCBSYXcgRGF0YSBPYmplY3QgaXMgcHJlc2VudC4nKTtcbiAgICAgIGNvbnN0IGRhdGFWaWV3ID0gbmV3IERhdGFWaWV3KGNvbWFuZEJ1ZmZlcik7XG4gICAgICByYXdEYXRhT2JqLmZvckVhY2goKHJhdykgPT4ge1xuICAgICAgICB0aGlzLmRwcy53cml0ZVZhbHVlVG9CdWZmZXIocmF3LmJ1ZmZlciwgcmF3LnZhbHVlLCBkYXRhVmlldyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBsZXQgY29tbWFuZERhdGE6IElDb21tYW5kRGF0YSA9IHtcbiAgICAgIG9wQ29kZTogb3BDb2RlLFxuICAgICAgc2VydmljZTogY3VycmVudERldmljZS53cml0ZS5zZXJ2aWNlLFxuICAgICAgY2hhcmFjdGVyaXN0aWM6IGN1cnJlbnREZXZpY2Uud3JpdGUuY2hhcmFjdGVyaXN0aWMsXG4gICAgICBieXRlRGF0YTogbmV3IFVpbnQ4QXJyYXkoY29tYW5kQnVmZmVyKSxcbiAgICB9O1xuICAgIGNvbW1hbmREYXRhLmJ5dGVEYXRhWzBdID0gY29tbWFuZERhdGEub3BDb2RlO1xuXG4gICAgY29tbWFuZERhdGEgPSBhd2FpdCB0aGlzLmNyY1NlcnZpY2Uud3JpdGVDcmNUb0NvbW1hbmQoY29tbWFuZERhdGEpO1xuXG4gICAgcmV0dXJuIGNvbW1hbmREYXRhO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlQ29tbWFuZERhdGFGb3JBcGkoXG4gICAgY3VycmVudERldmljZTogSURldmljZSxcbiAgICBjb21tYW5kOiBzdHJpbmcsXG4gICAgcmF3RGF0YU9iaj86IElSYXdEYXRhT2JqW11cbiAgKTogUHJvbWlzZTxJQ29tbWFuZERhdGFBcGk+IHtcbiAgICBsZXQgcmF3ID0gdW5kZWZpbmVkO1xuICAgIGlmIChyYXdEYXRhT2JqICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJhdyA9IHJhd0RhdGFPYmo7XG4gICAgfVxuICAgIGNvbnN0IGNvbW1hbmRCdCA9IHRoaXMuY3JlYXRlQ29tbWFuZERhdGEoY3VycmVudERldmljZSwgY29tbWFuZCwgcmF3KTtcbiAgICBjb25zdCBzZW5kID0ge1xuICAgICAgc2VyaWFsTnVtYmVyOiBjdXJyZW50RGV2aWNlLnNlcmlhbC50b1N0cmluZygpLFxuICAgICAgZGF0YTogdGhpcy5kcHMudWludDhBcnJheVRvQXJyYXkoKGF3YWl0IGNvbW1hbmRCdCkuYnl0ZURhdGEpLFxuICAgIH07XG4gICAgLy9jb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShzZW5kKSk7XG4gICAgcmV0dXJuIHNlbmQ7XG4gIH1cbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlcy1saXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGV2aWNlLWNvbmZpZy1pbnRlcmFjdGlvbi9zcmMvbGliL2ludGVyZmFjZXMvZGV2aWNlcy1saXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogVGhlIGNvbXBsZXRlIGRldmljZXMgbGlzdCAqL1xuZXhwb3J0IGludGVyZmFjZSBJRGV2aWNlc0xpc3Qge1xuICAvKiogVmVyc2lvbiBvZiB0aGUgZGV2aWNlcyBsaXN0ICovXG4gIGxpc3RWZXJzaW9uOiBudW1iZXI7XG4gIHRpbWVzdGFtcD86IHN0cmluZztcbiAgLyoqIExpc3Qgb2YgdGhlIGN1cnJlbnRseSBzdXBwb3J0ZWQgZGV2aWNlcyAqL1xuICBkZXZpY2VzTGlzdD86IElEZXZpY2VbXTtcbiAgLyoqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyB0aGF0IGZhbGwgb3V0c2lkZSBvZiBhIHNpbmdsZSBkZXZpY2UgKGkuZS4gU2l0ZSBjb25maWd1cmF0aW9ucykgT1IgY29uZmlndXJhdGlvbiBvcHRpb25zIHdoaWNoIGFyZSBzaGFyZWQgYWNyb3NzIG11bHRpcGxlIGRldmljZSBtb2RlbHMuICovXG4gIGV4dHJhQ29uZmlnT3B0aW9ucz86IHtcbiAgICAvKiogQ3VycmVudCBrZXkgb3B0aW9ucyBhcmUgd2lmaSwgdGV0aGVyRGF0YSwgdGV0aGVyQ29uZmlnLCBzdW5zcGVjU3RhdGUsIHN1bnNwZWNDb25maWcsIHN1bnNwZWNTY2FuLCBzdW5zcGVjTGlzdCwgc3Vuc3BlY3NldERldmljZXMgKi9cbiAgICBba2V5OiBzdHJpbmddOiBJRXh0cmFDb25maWdPcHRpb247XG4gIH07XG59XG5cbi8qKiBBbGwgdGhlIHJlbGV2YW50IGluZm9ybWF0aW9uIGZvciBhIGRldmljZSBtb2RlbC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSURldmljZSB7XG4gIC8qKiBUaGUgbW9kZWwgSUQgb2YgdGhlIGRldmljZSAqL1xuICBpZDogbnVtYmVyO1xuICAvKiogVGhlIE1vZGVsIE5hbWUgb2YgdGhlIGRldmljZSAqL1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiBUaGUgc2VyaWFsIG51bWJlciBvZiB0aGUgZGV2aWNlICovXG4gIHNlcmlhbDogbnVtYmVyO1xuICAvKiogRmlybXdhcmUgdmVyc2lvbiBpbmZvcm1hdGlvbiBmb3IgdGhlIGRldmljZSAqL1xuICBmd1ZlcnNpb246IElGd1ZlcnNpb25PYmo7XG4gIGFkZHJlc3M/OiBzdHJpbmc7XG4gIC8qKiBBIGxpc3Qgb2YgY29tbWFuZHMgZm9yIHRoZSBkZXZpY2UgKi9cbiAgY29tbWFuZHM6IElEZXZpY2VDb21tYW5kW107XG4gIC8qKiBCbHVldG9vdGggd3JpdGUgY29tbWFuZCBpbmZvcm1hdGlvbiAqL1xuICB3cml0ZTogSURldmljZVduO1xuICAvKiogQmx1ZXRvb3RoIG5vdGlmeSBjb21tYW5kIGluZm9ybWF0aW9uICovXG4gIG5vdGlmeTogSURldmljZVduO1xuICAvKiogRGV2aWNlIGNvbmZpZ3VyYXRpb24gb2JqZWN0LCBjb250YWlucyByYXcgYnl0ZSBpbmZvcm1hdGlvbiByYXcgZGF0YSB2YWx1ZSBpbmZvcm1hdGlvbiBhbmQgZm9ybSBpbmZvcm1hdGlvbiBmb3IgdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGRldmljZS4gKi9cbiAgY29uZmlnPzogSUNvbmZpZztcbiAgLyoqIERldmljZSBkaXNwbGF5IG9iamVjdCwgY29udGFpbnMgaW5mb3JtYXRpb24gZm9yIHRoZSBsaXZlIGRpc3BsYXkgb2YgdGhlIGRldmljZXMgZGF0YSAqL1xuICBkaXNwbGF5OiBJRGlzcGxheTtcbiAgLyoqIEV4dHJhIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB1c2VkIGZvciBjb25maWd1cmF0aW9uIG9wdGlvbnMgd2hpY2ggYXJlIGNvbW1vbiB0byBtdWx0aXBsZSBkZXZpY2VzIG9yIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0aGF0IGZhbGwgb3V0c2lkZSBvZiBhIGRldmljZSAoaS5lLiBBIHNpdGUgY29uZmlndXJhdGlvbiBvcHRpb24pLiAqL1xuICBleHRyYUNvbmZpZzoge1xuICAgIC8qKiBDdXJyZW50IGtleSBvcHRpb25zIGFyZSB3aWZpLCB0ZXRoZXJEYXRhLCB0ZXRoZXJDb25maWcsIHN1bnNwZWNTdGF0ZSwgc3Vuc3BlY0NvbmZpZywgc3Vuc3BlY1NjYW4sIHN1bnNwZWNMaXN0LCBzdW5zcGVjc2V0RGV2aWNlcyAqL1xuICAgIFtrZXk6IHN0cmluZ106IGJvb2xlYW47XG4gIH07XG59XG5cbi8qKiBPdXRsaW5lcyBkYXRhIHJlcXVpcmVkIGZvciBhbiBleHRyYSBjb25maWcgb3B0aW9uICovXG5leHBvcnQgaW50ZXJmYWNlIElFeHRyYUNvbmZpZ09wdGlvbiB7XG4gIHJhd0RhdGE/OiBJUmF3RGF0YU9ialtdO1xuICBvdGhlckRhdGE/OiBJT3RoZXJEYXRhT2JqW107XG4gIGV2TGlzdD86IElFdkxpc3RJdGVtW107XG59XG5cbi8qKiBBIHJhdyBkYXRhIG9iamVjdCAqL1xuZXhwb3J0IGludGVyZmFjZSBJUmF3RGF0YU9iaiB7XG4gIC8qKiBuYW1lIG9mIHRoZSBkYXRhIHBvaW50ICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIHZhbHVlIG9mIHRoZSByYXcgZGF0YSAqL1xuICB2YWx1ZTogbnVtYmVyO1xuICAvKiogZGV0YWlsIHRoZSBkYXRhcyBsb2NhdGlvbiBpbiB0aGUgcmF3IGRhdGEgYnVmZmVyICovXG4gIGJ1ZmZlcjogSUJ1ZmZlck9iajtcbiAgLyoqIE11bHRpcGxlciB0byBiZSB1c2VkIG9uIHRoZSB2YWx1ZSAqL1xuICBtdWx0aTogbnVtYmVyO1xufVxuXG4vKiogdXNlZCB0byBwcm9jZXNzIHJhdyBkYXRhIGludG8gYSB1c2FibGUgZm9ybSBhbmQgdG8gcmV0dXJuIHRoZSBkYXRhIHRvIGEgcmF3IGZvcm0gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSU90aGVyRGF0YU9iaiB7XG4gIG5hbWU6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZyB8IG51bWJlcjtcbiAgcHJvY2Vzc0RhdGE6IElQcm9jZXNzRGF0YU9ialtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElFdkxpc3RJdGVtIHtcbiAgbGlzdE5hbWU6IHN0cmluZztcbiAgZGV2aWNlTmFtZTogc3RyaW5nO1xuICBwaGFzZXM6IDEgfCAzO1xuICBjb25uZWN0b3JzOiBudW1iZXI7XG4gIGN1cnJlbnRMaW1pdDogbnVtYmVyO1xuICBpbXBsQ2xhc3M6IHN0cmluZztcbn1cblxuLyoqIENvbnRhaW5zIFJlbGV2YW50IGluZm9ybWF0aW9uIGZvciBnZXR0aW5nIGFuZCB1c2luZyBkZXZpY2VzIGZpcm13YXJlICovXG5leHBvcnQgaW50ZXJmYWNlIElGd1ZlcnNpb25PYmoge1xuICB2ZXJzaW9uOiBudW1iZXI7XG4gIHVybDogc3RyaW5nO1xuICBmaWxlczogc3RyaW5nW107XG4gIHBhY2tldDogbnVtYmVyO1xuICBkZXZJZD86IG51bWJlcjtcbiAgZGV2TmFtZT86IHN0cmluZztcbiAgZGV2U2VyaWFsPzogbnVtYmVyO1xuICBmd0F2YWlsYWJsZT86IGJvb2xlYW47XG4gIGN1cnJlbnRWZXJzaW9uPzogbnVtYmVyO1xufVxuXG4vKiogT2JqZWN0IGRlc2NyaWJpbmcgYSBibHVldG9vaCBkZXZpY2UgY29tbWFuZCAqL1xuZXhwb3J0IGludGVyZmFjZSBJRGV2aWNlQ29tbWFuZCB7XG4gIG5hbWU6IHN0cmluZztcbiAgb3BDb2RlOiBzdHJpbmc7XG4gIHJlcXVlc3REYXRhOiBib29sZWFuO1xuICByZXNwb25zZTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRGV2aWNlV24ge1xuICBzZXJ2aWNlOiBzdHJpbmc7XG4gIGNoYXJhY3RlcmlzdGljOiBzdHJpbmc7XG4gIGJ1ZmZlclNpemU6IG51bWJlcjtcbn1cblxuLyoqIEFsbCBpbmZvcm1hdGlvbiBuZWVkZWQgZm9yIGdldHRpbmcgYW5kIHVzaW5nIGNvbmZpZ3VyYXRpb24gZGF0YSAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ29uZmlnIHtcbiAgcmF3RGF0YTogSVJhd0RhdGFPYmpbXTtcbiAgb3RoZXJEYXRhOiBJT3RoZXJEYXRhT2JqW107XG4gIGZvcm1EYXRhOiBJRm9ybVNlY3Rpb25PYmpbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRGlzcGxheSB7XG4gIHJhd0RhdGE6IElSYXdEYXRhT2JqW107XG4gIG90aGVyRGF0YTogSU90aGVyRGF0YU9ialtdO1xuICBsYXlvdXQ6IElEaXNTZWN0T2JqW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUJ1ZmZlck9iaiB7XG4gIHNpZ25lZDogYm9vbGVhbjtcbiAgbGVuZ3RoOiBudW1iZXI7XG4gIHBvc2l0aW9uOiBudW1iZXI7XG4gIGxpdHRsZTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUHJvY2Vzc0RhdGFPYmoge1xuICAvKiogQ3VycmVudGx5IHVzZWQgXCJhc3NcIiA9IGFzc2VtYmxlLCBqb2luIGNoYXJhY3RlcnMgLyBzdHJpbmdzIHRvZ2V0aGVyLiBcImNvbVwiID0gY29tcGFyZSB0d28gdmFsdWVzLiBcImNhbFwiID0gY2FsY3VsYXRlIGEgdmFsdWUuIFwidGZtXCIgPSB0aW1lIGZyb20gbWludXRlcy4gXCJjZHRcIiA9IHRpbWUgZnJvbSBkYXRldGltZSBzdHJpbmcuIFwiaXRkXCIgPSBtaW51dGVzIHRvIHRpbWUgaW4gSVNPIDg2MDEgZm9ybWF0LiBcIml0c1wiID0gaW50ZWdlciB0byBzdHJpbmcuIFwiYnN2XCIgPSBub3Qgc3VyZS4gXCJ2ZmFcIiA9IHZhbHVlIGZyb20gYXJyYXkuIFwiY3RzXCIgPSBhcnJheSBvZiBjaGFyYWN0ZXIgY29kZXMgdG8gc3RyaW5nLiovXG4gIHR5cGU6XG4gICAgfCAnYXNzJ1xuICAgIHwgJ2NvbSdcbiAgICB8ICdjYWwnXG4gICAgfCAndGZtJ1xuICAgIHwgJ2NkdCdcbiAgICB8ICdpdGQnXG4gICAgfCAnaXRzJ1xuICAgIHwgJ2JzdidcbiAgICB8ICdwd2QnXG4gICAgfCAndmZhJ1xuICAgIHwgJ2N0cyc7XG4gIHZhbHVlOiBudW1iZXIgfCBzdHJpbmc7XG4gIGRhdGE6IElQcm9jZXNzRGF0YVN0ZXBbXTtcbiAgY29tVHh0PzogW3N0cmluZywgc3RyaW5nXTtcbiAgdmFsdWVzTGlzdD86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtU2VjdGlvbk9iaiB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRhdGFPYmpzOiBJRm9ybURhdGFPYmpbXTtcbiAgbWF4SGVpZ2h0Pzogc3RyaW5nO1xuICBleHBhbmRlZD86IGJvb2xlYW47XG4gIGhlYWREaXNwbGF5T2JqPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElEaXNTZWN0T2JqIHtcbiAgdGl0bGU6IHN0cmluZztcbiAgcm93czogSURpc1Jvd09ialtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQcm9jZXNzRGF0YVN0ZXAge1xuICB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyO1xuICBmcm9tRGF0YTogJ3JhdycgfCAnb3RoZXInIHwgJ25vJztcbiAgc3RyTGVuZ3RoPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtRGF0YU9iaiB7XG4gIGRhdGFJZDogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICBpbnB1dFR5cGU6ICdudW1iZXInIHwgJ3RleHQnIHwgJ3NlbGVjdCcgfCAnZGF0ZXRpbWUnIHwgJ3Bhc3N3b3JkJyB8ICdwYWdlJztcbiAgdmFsdWU6IHN0cmluZyB8IG51bWJlcjtcbiAgYWN0aXZlOiBib29sZWFuO1xuICByZXF1aXJlZDogYm9vbGVhbjtcbiAgaW5wdXRNb2RlPzogJ2RlY2ltYWwnIHwgJ251bWVyaWMnIHwgJ3RleHQnO1xuICBtaW4/OiBudW1iZXI7XG4gIG1heD86IG51bWJlcjtcbiAgbWluTGVuZ3RoPzogbnVtYmVyO1xuICBtYXhMZW5ndGg/OiBudW1iZXI7XG4gIHJleD86IHN0cmluZztcbiAgc2VsZWN0VmFsdWVzPzogSVNlbGVjdEl0ZW1PYmpbXTtcbiAgZHRGb3JtYXQ/OiBzdHJpbmc7XG4gIHZhbE1zZz86IHN0cmluZztcbiAgY29tcGFyZT86IGJvb2xlYW47XG4gIGF1dG9JbnB1dD86IGJvb2xlYW47XG4gIHBhZ2VJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRGlzUm93T2JqIHtcbiAgY29sczogSURpc1VuaXRPYmpbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRGlzVW5pdE9iaiB7XG4gIHRpdGxlOiBib29sZWFuO1xuICB2YWx1ZTogc3RyaW5nO1xuICBzaXplOiBudW1iZXI7XG4gIHJlZkRhdGE/OiBzdHJpbmc7XG4gIHByZXBlbmQ/OiBzdHJpbmc7XG4gIGFwcGVuZD86IHN0cmluZztcbiAgaXNEYXRlVGltZT86IGJvb2xlYW47XG4gIHJvdW5kPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTZWxlY3RJdGVtT2JqIHtcbiAgdmFsdWU6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ29tbWFuZERhdGEge1xuICBvcENvZGU6IG51bWJlcjtcbiAgc2VydmljZTogc3RyaW5nO1xuICBjaGFyYWN0ZXJpc3RpYzogc3RyaW5nO1xuICBieXRlRGF0YTogVWludDhBcnJheTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ29tbWFuZERhdGFBcGkge1xuICBzZXJpYWxOdW1iZXI6IHN0cmluZztcbiAgZGF0YTogbnVtYmVyW107XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlcy1saXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGV2aWNlLWNvbmZpZy1pbnRlcmFjdGlvbi9zcmMvbGliL2ludGVyZmFjZXMvZGV2aWNlcy1saXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogVGhlIGNvbXBsZXRlIGRldmljZXMgbGlzdCAqL1xuZXhwb3J0IGludGVyZmFjZSBJRGV2aWNlc0xpc3Qge1xuICAvKiogVmVyc2lvbiBvZiB0aGUgZGV2aWNlcyBsaXN0ICovXG4gIGxpc3RWZXJzaW9uOiBudW1iZXI7XG4gIHRpbWVzdGFtcD86IHN0cmluZztcbiAgLyoqIExpc3Qgb2YgdGhlIGN1cnJlbnRseSBzdXBwb3J0ZWQgZGV2aWNlcyAqL1xuICBkZXZpY2VzTGlzdD86IElEZXZpY2VbXTtcbiAgLyoqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyB0aGF0IGZhbGwgb3V0c2lkZSBvZiBhIHNpbmdsZSBkZXZpY2UgKGkuZS4gU2l0ZSBjb25maWd1cmF0aW9ucykgT1IgY29uZmlndXJhdGlvbiBvcHRpb25zIHdoaWNoIGFyZSBzaGFyZWQgYWNyb3NzIG11bHRpcGxlIGRldmljZSBtb2RlbHMuICovXG4gIGV4dHJhQ29uZmlnT3B0aW9ucz86IHtcbiAgICAvKiogQ3VycmVudCBrZXkgb3B0aW9ucyBhcmUgd2lmaSwgdGV0aGVyRGF0YSwgdGV0aGVyQ29uZmlnLCBzdW5zcGVjU3RhdGUsIHN1bnNwZWNDb25maWcsIHN1bnNwZWNTY2FuLCBzdW5zcGVjTGlzdCwgc3Vuc3BlY3NldERldmljZXMgKi9cbiAgICBba2V5OiBzdHJpbmddOiBJRXh0cmFDb25maWdPcHRpb247XG4gIH07XG4gIHZlckhpc3Rvcnk/OiBJVmVyc2lvbkhpc3RvcnlPYmpbXTtcbiAgd2l6YXJkPzoge1xuICAgIGludmVydGVycz86IElXaXphcmRJbnZlcnRlcltdO1xuICAgIGh3Pzoge1xuICAgICAgW2tleTogc3RyaW5nXTogSVdpemFyZE92ZXJyaWRlW107XG4gICAgfTtcbiAgICBhY0xvYWRUeXBlcz86IHtcbiAgICAgIFtrZXk6IHN0cmluZ106IElXaXphcmRPdmVycmlkZVtdO1xuICAgIH07XG4gICAgZHJtTG9hZFR5cGVzPzoge1xuICAgICAgW2tleTogc3RyaW5nXTogSVdpemFyZE92ZXJyaWRlW107XG4gICAgfTtcbiAgfTtcbn1cblxuLyoqIEFsbCB0aGUgcmVsZXZhbnQgaW5mb3JtYXRpb24gZm9yIGEgZGV2aWNlIG1vZGVsLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJRGV2aWNlIHtcbiAgLyoqIFRoZSBtb2RlbCBJRCBvZiB0aGUgZGV2aWNlICovXG4gIGlkOiBudW1iZXI7XG4gIC8qKiBUaGUgTW9kZWwgTmFtZSBvZiB0aGUgZGV2aWNlICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIFRoZSBzZXJpYWwgbnVtYmVyIG9mIHRoZSBkZXZpY2UgKi9cbiAgc2VyaWFsOiBudW1iZXI7XG4gIC8qKiBGaXJtd2FyZSB2ZXJzaW9uIGluZm9ybWF0aW9uIGZvciB0aGUgZGV2aWNlICovXG4gIGZ3VmVyc2lvbjogSUZ3VmVyc2lvbk9iajtcbiAgYWRkcmVzcz86IHN0cmluZztcbiAgLyoqIEEgbGlzdCBvZiBjb21tYW5kcyBmb3IgdGhlIGRldmljZSAqL1xuICBjb21tYW5kczogSURldmljZUNvbW1hbmRbXTtcbiAgLyoqIEJsdWV0b290aCB3cml0ZSBjb21tYW5kIGluZm9ybWF0aW9uICovXG4gIHdyaXRlOiBJRGV2aWNlV247XG4gIC8qKiBCbHVldG9vdGggbm90aWZ5IGNvbW1hbmQgaW5mb3JtYXRpb24gKi9cbiAgbm90aWZ5OiBJRGV2aWNlV247XG4gIC8qKiBEZXZpY2UgY29uZmlndXJhdGlvbiBvYmplY3QsIGNvbnRhaW5zIHJhdyBieXRlIGluZm9ybWF0aW9uIHJhdyBkYXRhIHZhbHVlIGluZm9ybWF0aW9uIGFuZCBmb3JtIGluZm9ybWF0aW9uIGZvciB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGUgZGV2aWNlLiAqL1xuICBjb25maWc/OiBJQ29uZmlnO1xuICAvKiogRGV2aWNlIGRpc3BsYXkgb2JqZWN0LCBjb250YWlucyBpbmZvcm1hdGlvbiBmb3IgdGhlIGxpdmUgZGlzcGxheSBvZiB0aGUgZGV2aWNlcyBkYXRhICovXG4gIGRpc3BsYXk6IElEaXNwbGF5O1xuICAvKiogRXh0cmEgY29uZmlndXJhdGlvbiBvcHRpb25zIHVzZWQgZm9yIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB3aGljaCBhcmUgY29tbW9uIHRvIG11bHRpcGxlIGRldmljZXMgb3IgY29uZmlndXJhdGlvbiBvcHRpb25zIHRoYXQgZmFsbCBvdXRzaWRlIG9mIGEgZGV2aWNlIChpLmUuIEEgc2l0ZSBjb25maWd1cmF0aW9uIG9wdGlvbikuICovXG4gIGV4dHJhQ29uZmlnOiB7XG4gICAgLyoqIEN1cnJlbnQga2V5IG9wdGlvbnMgYXJlIHdpZmksIHRldGhlckRhdGEsIHRldGhlckNvbmZpZywgc3Vuc3BlY1N0YXRlLCBzdW5zcGVjQ29uZmlnLCBzdW5zcGVjU2Nhbiwgc3Vuc3BlY0xpc3QsIHN1bnNwZWNzZXREZXZpY2VzICovXG4gICAgW2tleTogc3RyaW5nXTogYm9vbGVhbjtcbiAgfTtcbn1cblxuLyoqIE91dGxpbmVzIGRhdGEgcmVxdWlyZWQgZm9yIGFuIGV4dHJhIGNvbmZpZyBvcHRpb24gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUV4dHJhQ29uZmlnT3B0aW9uIHtcbiAgcmF3RGF0YT86IElSYXdEYXRhT2JqW107XG4gIG90aGVyRGF0YT86IElPdGhlckRhdGFPYmpbXTtcbiAgZXZMaXN0PzogSUV2TGlzdEl0ZW1bXTtcbn1cblxuLyoqIEEgcmF3IGRhdGEgb2JqZWN0ICovXG5leHBvcnQgaW50ZXJmYWNlIElSYXdEYXRhT2JqIHtcbiAgLyoqIG5hbWUgb2YgdGhlIGRhdGEgcG9pbnQgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogdmFsdWUgb2YgdGhlIHJhdyBkYXRhICovXG4gIHZhbHVlOiBudW1iZXI7XG4gIC8qKiBkZXRhaWwgdGhlIGRhdGFzIGxvY2F0aW9uIGluIHRoZSByYXcgZGF0YSBidWZmZXIgKi9cbiAgYnVmZmVyOiBJQnVmZmVyT2JqO1xuICAvKiogTXVsdGlwbGVyIHRvIGJlIHVzZWQgb24gdGhlIHZhbHVlICovXG4gIG11bHRpOiBudW1iZXI7XG59XG5cbi8qKiB1c2VkIHRvIHByb2Nlc3MgcmF3IGRhdGEgaW50byBhIHVzYWJsZSBmb3JtIGFuZCB0byByZXR1cm4gdGhlIGRhdGEgdG8gYSByYXcgZm9ybSAqL1xuZXhwb3J0IGludGVyZmFjZSBJT3RoZXJEYXRhT2JqIHtcbiAgbmFtZTogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyO1xuICBwcm9jZXNzRGF0YTogSVByb2Nlc3NEYXRhT2JqW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUV2TGlzdEl0ZW0ge1xuICBsaXN0TmFtZTogc3RyaW5nO1xuICBkZXZpY2VOYW1lOiBzdHJpbmc7XG4gIHBoYXNlczogMSB8IDM7XG4gIGNvbm5lY3RvcnM6IG51bWJlcjtcbiAgY3VycmVudExpbWl0OiBudW1iZXI7XG4gIGltcGxDbGFzczogc3RyaW5nO1xufVxuXG4vKiogQ29udGFpbnMgUmVsZXZhbnQgaW5mb3JtYXRpb24gZm9yIGdldHRpbmcgYW5kIHVzaW5nIGRldmljZXMgZmlybXdhcmUgKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUZ3VmVyc2lvbk9iaiB7XG4gIHZlcnNpb246IG51bWJlcjtcbiAgdXJsOiBzdHJpbmc7XG4gIGZpbGVzOiBzdHJpbmdbXTtcbiAgcGFja2V0OiBudW1iZXI7XG4gIGRldklkPzogbnVtYmVyO1xuICBkZXZOYW1lPzogc3RyaW5nO1xuICBkZXZTZXJpYWw/OiBudW1iZXI7XG4gIGZ3QXZhaWxhYmxlPzogYm9vbGVhbjtcbiAgY3VycmVudFZlcnNpb24/OiBudW1iZXI7XG59XG5cbi8qKiBPYmplY3QgZGVzY3JpYmluZyBhIGJsdWV0b29oIGRldmljZSBjb21tYW5kICovXG5leHBvcnQgaW50ZXJmYWNlIElEZXZpY2VDb21tYW5kIHtcbiAgbmFtZTogc3RyaW5nO1xuICBvcENvZGU6IHN0cmluZztcbiAgcmVxdWVzdERhdGE6IGJvb2xlYW47XG4gIHJlc3BvbnNlOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElEZXZpY2VXbiB7XG4gIHNlcnZpY2U6IHN0cmluZztcbiAgY2hhcmFjdGVyaXN0aWM6IHN0cmluZztcbiAgYnVmZmVyU2l6ZTogbnVtYmVyO1xufVxuXG4vKiogQWxsIGluZm9ybWF0aW9uIG5lZWRlZCBmb3IgZ2V0dGluZyBhbmQgdXNpbmcgY29uZmlndXJhdGlvbiBkYXRhICovXG5leHBvcnQgaW50ZXJmYWNlIElDb25maWcge1xuICByYXdEYXRhOiBJUmF3RGF0YU9ialtdO1xuICBvdGhlckRhdGE6IElPdGhlckRhdGFPYmpbXTtcbiAgZm9ybURhdGE6IElGb3JtU2VjdGlvbk9ialtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElEaXNwbGF5IHtcbiAgcmF3RGF0YTogSVJhd0RhdGFPYmpbXTtcbiAgb3RoZXJEYXRhOiBJT3RoZXJEYXRhT2JqW107XG4gIGxheW91dDogSURpc1NlY3RPYmpbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQnVmZmVyT2JqIHtcbiAgc2lnbmVkOiBib29sZWFuO1xuICBsZW5ndGg6IG51bWJlcjtcbiAgcG9zaXRpb246IG51bWJlcjtcbiAgbGl0dGxlOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQcm9jZXNzRGF0YU9iaiB7XG4gIC8qKiBDdXJyZW50bHkgdXNlZCBcImFzc1wiID0gYXNzZW1ibGUsIGpvaW4gY2hhcmFjdGVycyAvIHN0cmluZ3MgdG9nZXRoZXIuIFwiY29tXCIgPSBjb21wYXJlIHR3byB2YWx1ZXMuIFwiY2FsXCIgPSBjYWxjdWxhdGUgYSB2YWx1ZS4gXCJ0Zm1cIiA9IHRpbWUgZnJvbSBtaW51dGVzLiBcImNkdFwiID0gdGltZSBmcm9tIGRhdGV0aW1lIHN0cmluZy4gXCJpdGRcIiA9IG1pbnV0ZXMgdG8gdGltZSBpbiBJU08gODYwMSBmb3JtYXQuIFwiaXRzXCIgPSBpbnRlZ2VyIHRvIHN0cmluZy4gXCJic3ZcIiA9IG5vdCBzdXJlLiBcInZmYVwiID0gdmFsdWUgZnJvbSBhcnJheS4gXCJjdHNcIiA9IGFycmF5IG9mIGNoYXJhY3RlciBjb2RlcyB0byBzdHJpbmcuKi9cbiAgdHlwZTpcbiAgICB8ICdhc3MnXG4gICAgfCAnY29tJ1xuICAgIHwgJ2NhbCdcbiAgICB8ICd0Zm0nXG4gICAgfCAnY2R0J1xuICAgIHwgJ2l0ZCdcbiAgICB8ICdpdHMnXG4gICAgfCAnYnN2J1xuICAgIHwgJ3B3ZCdcbiAgICB8ICd2ZmEnXG4gICAgfCAnY3RzJztcbiAgdmFsdWU6IG51bWJlciB8IHN0cmluZztcbiAgZGF0YTogSVByb2Nlc3NEYXRhU3RlcFtdO1xuICBjb21UeHQ/OiBbc3RyaW5nLCBzdHJpbmddO1xuICB2YWx1ZXNMaXN0Pzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZvcm1TZWN0aW9uT2JqIHtcbiAgdGl0bGU6IHN0cmluZztcbiAgZGF0YU9ianM6IElGb3JtRGF0YU9ialtdO1xuICBtYXhIZWlnaHQ/OiBzdHJpbmc7XG4gIGV4cGFuZGVkPzogYm9vbGVhbjtcbiAgaGVhZERpc3BsYXlPYmo/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURpc1NlY3RPYmoge1xuICB0aXRsZTogc3RyaW5nO1xuICByb3dzOiBJRGlzUm93T2JqW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVByb2Nlc3NEYXRhU3RlcCB7XG4gIHZhbHVlOiBzdHJpbmcgfCBudW1iZXI7XG4gIGZyb21EYXRhOiAncmF3JyB8ICdvdGhlcicgfCAnbm8nO1xuICBzdHJMZW5ndGg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZvcm1EYXRhT2JqIHtcbiAgZGF0YUlkOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGlucHV0VHlwZTogJ251bWJlcicgfCAndGV4dCcgfCAnc2VsZWN0JyB8ICdkYXRldGltZScgfCAncGFzc3dvcmQnIHwgJ3BhZ2UnO1xuICB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyO1xuICBhY3RpdmU6IGJvb2xlYW47XG4gIHJlcXVpcmVkOiBib29sZWFuO1xuICBpbnB1dE1vZGU/OiAnZGVjaW1hbCcgfCAnbnVtZXJpYycgfCAndGV4dCc7XG4gIG1pbj86IG51bWJlcjtcbiAgbWF4PzogbnVtYmVyO1xuICBtaW5MZW5ndGg/OiBudW1iZXI7XG4gIG1heExlbmd0aD86IG51bWJlcjtcbiAgcmV4Pzogc3RyaW5nO1xuICBzZWxlY3RWYWx1ZXM/OiBJU2VsZWN0SXRlbU9ialtdO1xuICBkdEZvcm1hdD86IHN0cmluZztcbiAgdmFsTXNnPzogc3RyaW5nO1xuICBjb21wYXJlPzogYm9vbGVhbjtcbiAgYXV0b0lucHV0PzogYm9vbGVhbjtcbiAgcGFnZUlkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElEaXNSb3dPYmoge1xuICBjb2xzOiBJRGlzVW5pdE9ialtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElEaXNVbml0T2JqIHtcbiAgdGl0bGU6IGJvb2xlYW47XG4gIHZhbHVlOiBzdHJpbmc7XG4gIHNpemU6IG51bWJlcjtcbiAgcmVmRGF0YT86IHN0cmluZztcbiAgcHJlcGVuZD86IHN0cmluZztcbiAgYXBwZW5kPzogc3RyaW5nO1xuICBpc0RhdGVUaW1lPzogYm9vbGVhbjtcbiAgcm91bmQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNlbGVjdEl0ZW1PYmoge1xuICB2YWx1ZTogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb21tYW5kRGF0YSB7XG4gIG9wQ29kZTogbnVtYmVyO1xuICBzZXJ2aWNlOiBzdHJpbmc7XG4gIGNoYXJhY3RlcmlzdGljOiBzdHJpbmc7XG4gIGJ5dGVEYXRhOiBVaW50OEFycmF5O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb21tYW5kRGF0YUFwaSB7XG4gIHNlcmlhbE51bWJlcjogc3RyaW5nO1xuICBkYXRhOiBudW1iZXJbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVmVyc2lvbkhpc3RvcnlPYmoge1xuICBtb2RlbElkOiBudW1iZXI7XG4gIG1pblZlcnNpb246IG51bWJlcjtcbiAgYmFzZVZlcnNpb246IG51bWJlcjtcbiAgZmVhdHVyZXM6IElWZXJzaW9uSGlzdG9yeUZlYXR1cmVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVmVyc2lvbkhpc3RvcnlGZWF0dXJlIHtcbiAgdmVyRmVhdHVyZTogc3RyaW5nO1xuICBtaW5WZXJzaW9uOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVdpemFyZEludmVydGVyIHtcbiAgbmFtZTogc3RyaW5nO1xuICBtZXRlcklkOiBudW1iZXI7XG4gIGRldmljZU1vZGVsczogbnVtYmVyW107XG4gIGNvbnRyb2xNb2RlOiBzdHJpbmc7XG4gIHBoYXNlQ291bnQ6IDEgfCAzO1xuICBkb2NSZWY6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJV2l6YXJkT3ZlcnJpZGUge1xuICBvdmVycmlkZU51bWJlcjogbnVtYmVyO1xuICBvdmVycmlkZVR5cGU6IG51bWJlcjtcbiAgc3RhcnRUaW1lOiBudW1iZXI7XG4gIGVuZFRpbWU6IG51bWJlcjtcbiAgYWJvdmVXYXR0czogbnVtYmVyO1xuICBiZWxvd1dhdHRzOiBudW1iZXI7XG4gIGFib3ZlVGltZTogbnVtYmVyO1xuICBiZWxvd1RpbWU6IG51bWJlcjtcbiAgbWluT25UaW1lOiBudW1iZXI7XG59XG4iXX0=
@@ -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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"}
@@ -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,19 @@ 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[];
14
+ wizard?: {
15
+ inverters?: IWizardInverter[];
16
+ hw?: {
17
+ [key: string]: IWizardOverride[];
18
+ };
19
+ acLoadTypes?: {
20
+ [key: string]: IWizardOverride[];
21
+ };
22
+ drmLoadTypes?: {
23
+ [key: string]: IWizardOverride[];
24
+ };
25
+ };
13
26
  }
14
27
  /** All the relevant information for a device model. */
15
28
  export interface IDevice {
@@ -181,3 +194,32 @@ export interface ICommandDataApi {
181
194
  serialNumber: string;
182
195
  data: number[];
183
196
  }
197
+ export interface IVersionHistoryObj {
198
+ modelId: number;
199
+ minVersion: number;
200
+ baseVersion: number;
201
+ features: IVersionHistoryFeature[];
202
+ }
203
+ export interface IVersionHistoryFeature {
204
+ verFeature: string;
205
+ minVersion: number;
206
+ }
207
+ export interface IWizardInverter {
208
+ name: string;
209
+ meterId: number;
210
+ deviceModels: number[];
211
+ controlMode: string;
212
+ phaseCount: 1 | 3;
213
+ docRef: string;
214
+ }
215
+ export interface IWizardOverride {
216
+ overrideNumber: number;
217
+ overrideType: number;
218
+ startTime: number;
219
+ endTime: number;
220
+ aboveWatts: number;
221
+ belowWatts: number;
222
+ aboveTime: number;
223
+ belowTime: number;
224
+ minOnTime: number;
225
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@catchpower/device-config-interaction",
3
- "version": "0.0.13",
3
+ "version": "0.0.15",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^16.2.0",
6
6
  "@angular/core": "^16.2.0"