@utiliread/primitives 1.0.0-12 → 1.0.0-120

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.
Files changed (326) hide show
  1. package/dist/index.d.ts +394 -0
  2. package/dist/index.d.ts.map +1 -0
  3. package/dist/index.js +3080 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/index.mjs +3067 -0
  6. package/dist/index.mjs.map +1 -0
  7. package/dist/types/aggregate-id.d.ts +1 -0
  8. package/dist/types/breakdown-rule.d.ts +18 -0
  9. package/dist/{esm/register-converter.spec.d.ts → types/breakdown-rule.spec.d.ts} +1 -1
  10. package/dist/types/index.d.ts +298 -0
  11. package/dist/types/luxon-local.d.ts +2 -0
  12. package/dist/types/measure-id.d.ts +1 -0
  13. package/dist/types/measures/duration.d.ts +2 -0
  14. package/dist/types/measures/energy.d.ts +2 -0
  15. package/dist/types/measures/humidity.d.ts +2 -0
  16. package/dist/types/measures/infocode.d.ts +2 -0
  17. package/dist/types/measures/mass-flow.d.ts +3 -0
  18. package/dist/types/measures/mass.d.ts +2 -0
  19. package/dist/types/measures/noise.d.ts +3 -0
  20. package/dist/types/measures/power.d.ts +3 -0
  21. package/dist/types/measures/pressure.d.ts +3 -0
  22. package/dist/types/measures/reactive-energy.d.ts +2 -0
  23. package/dist/types/measures/reactive-power.d.ts +2 -0
  24. package/dist/types/measures/temperature.d.ts +3 -0
  25. package/dist/types/measures/time.d.ts +2 -0
  26. package/dist/types/measures/volume-flow.d.ts +3 -0
  27. package/dist/types/measures/volume.d.ts +2 -0
  28. package/dist/types/medium.d.ts +1 -0
  29. package/dist/types/number-formatter.d.ts +17 -0
  30. package/dist/{esm → types}/number-formatter.spec.d.ts +1 -1
  31. package/dist/types/optional.d.ts +1 -0
  32. package/dist/types/precision-number.d.ts +15 -0
  33. package/dist/types/precision-number.spec.d.ts +1 -0
  34. package/dist/{esm → types}/register-convention.d.ts +14 -12
  35. package/dist/{esm → types}/register-convention.spec.d.ts +1 -1
  36. package/dist/{esm → types}/register-definition.d.ts +13 -9
  37. package/dist/types/register-id.d.ts +1 -0
  38. package/dist/{esm → types}/register-library.d.ts +15 -12
  39. package/dist/{esm → types}/register-library.spec.d.ts +1 -1
  40. package/dist/{esm → types}/register-pack.d.ts +4 -4
  41. package/dist/{esm → types}/register-utils.d.ts +3 -3
  42. package/dist/types/registers/acoustic-noise.d.ts +8 -0
  43. package/dist/types/registers/ambient-temperature.d.ts +8 -0
  44. package/dist/types/registers/consumer.d.ts +9 -0
  45. package/dist/types/registers/cooling-energy-inlet.d.ts +4 -0
  46. package/dist/types/registers/cooling-energy-outlet.d.ts +4 -0
  47. package/dist/types/registers/cooling-energy.d.ts +4 -0
  48. package/dist/types/registers/cooling.d.ts +8 -0
  49. package/dist/types/registers/device-addresses-kamdraft.d.ts +6 -0
  50. package/dist/types/registers/device-addresses-msisdn.d.ts +6 -0
  51. package/dist/types/registers/device-addresses-tchlr.d.ts +6 -0
  52. package/dist/types/registers/device-addresses-wmbus.d.ts +9 -0
  53. package/dist/types/registers/device-date-time.d.ts +2 -0
  54. package/dist/types/registers/device-date.d.ts +2 -0
  55. package/dist/types/registers/device-nominal-diameter.d.ts +2 -0
  56. package/dist/types/registers/device-permanent-volume-flow.d.ts +2 -0
  57. package/dist/types/registers/device-registers.d.ts +2 -0
  58. package/dist/types/registers/device-samples.d.ts +14 -0
  59. package/dist/types/registers/device-software-version.d.ts +2 -0
  60. package/dist/types/registers/device-time.d.ts +2 -0
  61. package/dist/types/registers/device.d.ts +8 -0
  62. package/dist/types/registers/diehl-infocode.d.ts +6 -0
  63. package/dist/types/registers/electrical-energy.d.ts +4 -0
  64. package/dist/types/registers/energy-inlet.d.ts +4 -0
  65. package/dist/types/registers/energy-outlet.d.ts +4 -0
  66. package/dist/types/registers/error-operating-time.d.ts +4 -0
  67. package/dist/types/registers/flow-temperature-aux.d.ts +8 -0
  68. package/dist/types/registers/flow-temperature-inlet.d.ts +8 -0
  69. package/dist/types/registers/flow-temperature-outlet.d.ts +8 -0
  70. package/dist/types/registers/flow-temperature.d.ts +8 -0
  71. package/dist/types/registers/heat-energy-inlet.d.ts +10 -0
  72. package/dist/types/registers/heat-energy-outlet.d.ts +10 -0
  73. package/dist/types/registers/heat-energy.d.ts +10 -0
  74. package/dist/types/registers/index.d.ts +70 -0
  75. package/dist/types/registers/infocode.d.ts +2 -0
  76. package/dist/types/registers/kamstrup-module-type.d.ts +2 -0
  77. package/dist/types/registers/kamstrup-multical-infocode.d.ts +9 -0
  78. package/dist/types/registers/landis-gyr-infocode.d.ts +4 -0
  79. package/dist/types/registers/landis-gyr-mbus-status.d.ts +4 -0
  80. package/dist/types/registers/mass-flow-inlet.d.ts +8 -0
  81. package/dist/types/registers/mass-flow-outlet.d.ts +8 -0
  82. package/dist/types/registers/mass-flow.d.ts +8 -0
  83. package/dist/types/registers/mass-inlet.d.ts +4 -0
  84. package/dist/types/registers/mass-outlet.d.ts +4 -0
  85. package/dist/types/registers/mass.d.ts +4 -0
  86. package/dist/types/registers/mbus-format-string-signature.d.ts +2 -0
  87. package/dist/types/registers/none.d.ts +2 -0
  88. package/dist/types/registers/operating-time.d.ts +4 -0
  89. package/dist/types/registers/place.d.ts +16 -0
  90. package/dist/types/registers/power-inlet.d.ts +8 -0
  91. package/dist/types/registers/power-outlet.d.ts +8 -0
  92. package/dist/types/registers/power.d.ts +8 -0
  93. package/dist/types/registers/pressure-inlet.d.ts +8 -0
  94. package/dist/types/registers/pressure-outlet.d.ts +8 -0
  95. package/dist/types/registers/pressure.d.ts +8 -0
  96. package/dist/types/registers/radiator-temperature.d.ts +8 -0
  97. package/dist/types/registers/reactive-energy.d.ts +4 -0
  98. package/dist/types/registers/relative-humidity.d.ts +2 -0
  99. package/dist/types/registers/remaining-battery-time.d.ts +4 -0
  100. package/dist/types/registers/time-last-exact-overhearing-arrived.d.ts +3 -0
  101. package/dist/types/registers/time-last-installation-mounted.d.ts +3 -0
  102. package/dist/types/registers/time-last-possible-candidate-overhearing-arrived.d.ts +3 -0
  103. package/dist/types/registers/time-last-sampled.d.ts +3 -0
  104. package/dist/types/registers/time.d.ts +7 -0
  105. package/dist/types/registers/volume-flow-inlet.d.ts +8 -0
  106. package/dist/types/registers/volume-flow-outlet.d.ts +8 -0
  107. package/dist/types/registers/volume-flow.d.ts +8 -0
  108. package/dist/types/registers/volume-inlet.d.ts +4 -0
  109. package/dist/types/registers/volume-outlet.d.ts +4 -0
  110. package/dist/types/registers/volume-pulse-input-a.d.ts +4 -0
  111. package/dist/types/registers/volume-pulse-input-b.d.ts +4 -0
  112. package/dist/types/registers/volume.d.ts +4 -0
  113. package/dist/types/repository.d.ts +9 -0
  114. package/dist/types/repository.spec.d.ts +1 -0
  115. package/dist/types/step.d.ts +16 -0
  116. package/dist/types/step.spec.d.ts +1 -0
  117. package/dist/types/time-or-rule.d.ts +10 -0
  118. package/dist/types/unit-id.d.ts +1 -0
  119. package/locales/da/aggregates.json +42 -0
  120. package/locales/da/measures.json +50 -0
  121. package/locales/da/mediums.json +17 -0
  122. package/locales/da/registers.json +1034 -0
  123. package/locales/da/units.json +327 -0
  124. package/locales/en/aggregates.json +42 -0
  125. package/locales/en/measures.json +50 -0
  126. package/locales/en/mediums.json +17 -0
  127. package/locales/en/registers.json +1034 -0
  128. package/locales/en/units.json +327 -0
  129. package/package.json +36 -19
  130. package/src/aggregate-id.ts +9 -9
  131. package/src/breakdown-rule.spec.ts +61 -0
  132. package/src/breakdown-rule.ts +58 -0
  133. package/src/index.ts +56 -21
  134. package/src/luxon-local.ts +3 -0
  135. package/src/measure-id.ts +17 -0
  136. package/src/measures/duration.ts +11 -0
  137. package/{dist/esm/unit-id.js → src/measures/energy.ts} +13 -11
  138. package/src/measures/humidity.ts +3 -0
  139. package/src/measures/infocode.ts +3 -0
  140. package/src/measures/mass-flow.ts +19 -0
  141. package/src/measures/mass.ts +10 -0
  142. package/src/measures/noise.ts +5 -0
  143. package/src/measures/power.ts +23 -0
  144. package/src/measures/pressure.ts +9 -0
  145. package/src/measures/reactive-energy.ts +7 -0
  146. package/src/measures/reactive-power.ts +3 -0
  147. package/src/measures/temperature.ts +9 -0
  148. package/src/measures/time.ts +3 -0
  149. package/src/measures/volume-flow.ts +25 -0
  150. package/src/measures/volume.ts +3 -0
  151. package/src/medium.ts +8 -0
  152. package/src/number-formatter.spec.ts +549 -77
  153. package/src/number-formatter.ts +118 -50
  154. package/src/optional.ts +1 -0
  155. package/src/precision-number.spec.ts +179 -0
  156. package/src/precision-number.ts +117 -0
  157. package/src/register-convention.spec.ts +52 -14
  158. package/src/register-convention.ts +70 -41
  159. package/src/register-definition.ts +23 -14
  160. package/src/register-id.ts +286 -191
  161. package/src/register-library.spec.ts +41 -33
  162. package/src/register-library.ts +64 -41
  163. package/src/register-pack.ts +5 -5
  164. package/src/register-utils.ts +6 -6
  165. package/src/registers/acoustic-noise.ts +52 -0
  166. package/src/registers/ambient-temperature.ts +52 -0
  167. package/src/registers/consumer.ts +17 -0
  168. package/src/registers/cooling-energy-inlet.ts +23 -0
  169. package/src/registers/cooling-energy-outlet.ts +23 -0
  170. package/src/registers/cooling-energy.ts +23 -0
  171. package/src/registers/cooling.ts +58 -0
  172. package/src/registers/device-addresses-kamdraft.ts +14 -0
  173. package/src/registers/device-addresses-msisdn.ts +14 -0
  174. package/src/registers/device-addresses-tchlr.ts +14 -0
  175. package/src/registers/device-addresses-wmbus.ts +17 -0
  176. package/src/registers/device-date-time.ts +9 -0
  177. package/src/registers/device-date.ts +9 -0
  178. package/src/registers/device-nominal-diameter.ts +9 -0
  179. package/src/registers/device-permanent-volume-flow.ts +9 -0
  180. package/src/registers/device-registers.ts +9 -0
  181. package/src/registers/device-samples.ts +37 -0
  182. package/src/registers/device-software-version.ts +8 -0
  183. package/src/registers/device-time.ts +9 -0
  184. package/src/registers/device.ts +16 -0
  185. package/src/registers/diehl-infocode.ts +37 -0
  186. package/src/registers/electrical-energy.ts +23 -0
  187. package/src/registers/energy-inlet.ts +23 -0
  188. package/src/registers/energy-outlet.ts +23 -0
  189. package/src/registers/error-operating-time.ts +23 -0
  190. package/src/registers/flow-temperature-aux.ts +52 -0
  191. package/src/registers/flow-temperature-inlet.ts +52 -0
  192. package/src/registers/flow-temperature-outlet.ts +52 -0
  193. package/src/registers/flow-temperature.ts +52 -0
  194. package/src/registers/heat-energy-inlet.ts +65 -0
  195. package/src/registers/heat-energy-outlet.ts +65 -0
  196. package/src/registers/heat-energy.ts +65 -0
  197. package/src/registers/index.ts +70 -0
  198. package/src/registers/infocode.ts +9 -0
  199. package/src/registers/kamstrup-module-type.ts +8 -0
  200. package/src/registers/kamstrup-multical-infocode.ts +58 -0
  201. package/src/registers/landis-gyr-infocode.ts +23 -0
  202. package/src/registers/landis-gyr-mbus-status.ts +23 -0
  203. package/src/registers/mass-flow-inlet.ts +52 -0
  204. package/src/registers/mass-flow-outlet.ts +52 -0
  205. package/src/registers/mass-flow.ts +52 -0
  206. package/src/registers/mass-inlet.ts +23 -0
  207. package/src/registers/mass-outlet.ts +23 -0
  208. package/src/registers/mass.ts +23 -0
  209. package/src/registers/mbus-format-string-signature.ts +8 -0
  210. package/src/registers/none.ts +8 -0
  211. package/src/registers/operating-time.ts +23 -0
  212. package/src/registers/place.ts +31 -0
  213. package/src/registers/power-inlet.ts +52 -0
  214. package/src/registers/power-outlet.ts +52 -0
  215. package/src/registers/power.ts +52 -0
  216. package/src/registers/pressure-inlet.ts +52 -0
  217. package/src/registers/pressure-outlet.ts +52 -0
  218. package/src/registers/pressure.ts +52 -0
  219. package/src/registers/radiator-temperature.ts +52 -0
  220. package/src/registers/reactive-energy.ts +23 -0
  221. package/src/registers/relative-humidity.ts +8 -0
  222. package/src/registers/remaining-battery-time.ts +23 -0
  223. package/src/registers/time-last-exact-overhearing-arrived.ts +19 -0
  224. package/src/registers/time-last-installation-mounted.ts +19 -0
  225. package/src/registers/time-last-possible-candidate-overhearing-arrived.ts +21 -0
  226. package/src/registers/time-last-sampled.ts +19 -0
  227. package/src/registers/time.ts +45 -0
  228. package/src/registers/volume-flow-inlet.ts +52 -0
  229. package/src/registers/volume-flow-outlet.ts +52 -0
  230. package/src/registers/volume-flow.ts +52 -0
  231. package/src/registers/volume-inlet.ts +23 -0
  232. package/src/registers/volume-outlet.ts +23 -0
  233. package/src/registers/volume-pulse-input-a.ts +23 -0
  234. package/src/registers/volume-pulse-input-b.ts +23 -0
  235. package/src/registers/volume.ts +23 -0
  236. package/src/repository.spec.ts +20 -0
  237. package/src/repository.ts +24 -0
  238. package/src/step.spec.ts +37 -0
  239. package/src/step.ts +46 -0
  240. package/src/time-or-rule.ts +42 -0
  241. package/src/unit-id.ts +108 -100
  242. package/tsconfig.json +14 -14
  243. package/web-test-runner.config.mjs +7 -0
  244. package/coverage/Chrome Headless 90.0.4430.85 (Windows 10)/html/base.css +0 -224
  245. package/coverage/Chrome Headless 90.0.4430.85 (Windows 10)/html/block-navigation.js +0 -79
  246. package/coverage/Chrome Headless 90.0.4430.85 (Windows 10)/html/favicon.png +0 -0
  247. package/coverage/Chrome Headless 90.0.4430.85 (Windows 10)/html/index.html +0 -96
  248. package/coverage/Chrome Headless 90.0.4430.85 (Windows 10)/html/prettify.css +0 -1
  249. package/coverage/Chrome Headless 90.0.4430.85 (Windows 10)/html/prettify.js +0 -2
  250. package/coverage/Chrome Headless 90.0.4430.85 (Windows 10)/html/sort-arrow-sprite.png +0 -0
  251. package/coverage/Chrome Headless 90.0.4430.85 (Windows 10)/html/sorter.js +0 -170
  252. package/dist/cjs/aggregate-id.js +0 -3
  253. package/dist/cjs/aggregate-id.js.map +0 -1
  254. package/dist/cjs/consumption-type-id.js +0 -3
  255. package/dist/cjs/consumption-type-id.js.map +0 -1
  256. package/dist/cjs/index.js +0 -12
  257. package/dist/cjs/index.js.map +0 -1
  258. package/dist/cjs/number-formatter.js +0 -51
  259. package/dist/cjs/number-formatter.js.map +0 -1
  260. package/dist/cjs/number-formatter.spec.js +0 -77
  261. package/dist/cjs/number-formatter.spec.js.map +0 -1
  262. package/dist/cjs/register-convention.js +0 -42
  263. package/dist/cjs/register-convention.js.map +0 -1
  264. package/dist/cjs/register-convention.spec.js +0 -15
  265. package/dist/cjs/register-convention.spec.js.map +0 -1
  266. package/dist/cjs/register-converter.js +0 -31
  267. package/dist/cjs/register-converter.js.map +0 -1
  268. package/dist/cjs/register-converter.spec.js +0 -29
  269. package/dist/cjs/register-converter.spec.js.map +0 -1
  270. package/dist/cjs/register-definition.js +0 -3
  271. package/dist/cjs/register-definition.js.map +0 -1
  272. package/dist/cjs/register-id.js +0 -3
  273. package/dist/cjs/register-id.js.map +0 -1
  274. package/dist/cjs/register-library.js +0 -45
  275. package/dist/cjs/register-library.js.map +0 -1
  276. package/dist/cjs/register-library.spec.js +0 -30
  277. package/dist/cjs/register-library.spec.js.map +0 -1
  278. package/dist/cjs/register-pack.js +0 -3
  279. package/dist/cjs/register-pack.js.map +0 -1
  280. package/dist/cjs/register-utils.js +0 -8
  281. package/dist/cjs/register-utils.js.map +0 -1
  282. package/dist/cjs/unit-id.js +0 -14
  283. package/dist/cjs/unit-id.js.map +0 -1
  284. package/dist/esm/aggregate-id.d.ts +0 -1
  285. package/dist/esm/aggregate-id.js +0 -2
  286. package/dist/esm/aggregate-id.js.map +0 -1
  287. package/dist/esm/consumption-type-id.d.ts +0 -1
  288. package/dist/esm/consumption-type-id.js +0 -2
  289. package/dist/esm/consumption-type-id.js.map +0 -1
  290. package/dist/esm/index.d.ts +0 -10
  291. package/dist/esm/index.js +0 -6
  292. package/dist/esm/index.js.map +0 -1
  293. package/dist/esm/number-formatter.d.ts +0 -6
  294. package/dist/esm/number-formatter.js +0 -48
  295. package/dist/esm/number-formatter.js.map +0 -1
  296. package/dist/esm/number-formatter.spec.js +0 -75
  297. package/dist/esm/number-formatter.spec.js.map +0 -1
  298. package/dist/esm/register-convention.js +0 -38
  299. package/dist/esm/register-convention.js.map +0 -1
  300. package/dist/esm/register-convention.spec.js +0 -13
  301. package/dist/esm/register-convention.spec.js.map +0 -1
  302. package/dist/esm/register-converter.d.ts +0 -9
  303. package/dist/esm/register-converter.js +0 -28
  304. package/dist/esm/register-converter.js.map +0 -1
  305. package/dist/esm/register-converter.spec.js +0 -27
  306. package/dist/esm/register-converter.spec.js.map +0 -1
  307. package/dist/esm/register-definition.js +0 -2
  308. package/dist/esm/register-definition.js.map +0 -1
  309. package/dist/esm/register-id.d.ts +0 -1
  310. package/dist/esm/register-id.js +0 -2
  311. package/dist/esm/register-id.js.map +0 -1
  312. package/dist/esm/register-library.js +0 -42
  313. package/dist/esm/register-library.js.map +0 -1
  314. package/dist/esm/register-library.spec.js +0 -28
  315. package/dist/esm/register-library.spec.js.map +0 -1
  316. package/dist/esm/register-pack.js +0 -2
  317. package/dist/esm/register-pack.js.map +0 -1
  318. package/dist/esm/register-utils.js +0 -4
  319. package/dist/esm/register-utils.js.map +0 -1
  320. package/dist/esm/unit-id.d.ts +0 -2
  321. package/dist/esm/unit-id.js.map +0 -1
  322. package/karma.config.js +0 -32
  323. package/src/consumption-type-id.ts +0 -8
  324. package/src/register-converter.spec.ts +0 -31
  325. package/src/register-converter.ts +0 -29
  326. package/tsconfig.cjs.json +0 -9
@@ -1,41 +1,64 @@
1
- import { RegisterDefinition } from "./register-definition";
2
- import { RegisterId } from "./register-id";
3
- import { RegisterPack } from "./register-pack";
4
-
5
- class Library {
6
- private definitions: Partial<{ [id in RegisterId]: RegisterDefinition }> = {};
7
- public add(...definitions: (RegisterDefinition | RegisterPack)[]) {
8
- for (const definition of definitions) {
9
- if (isDefinition(definition)) {
10
- this.definitions[definition.id] = definition;
11
- }
12
- else {
13
- for (const definitionInPack of Object.values(definition)) {
14
- this.definitions[definitionInPack.id] = definitionInPack;
15
- }
16
- }
17
- }
18
- }
19
-
20
- public tryGet(id: RegisterId) {
21
- return this.definitions[id];
22
- }
23
-
24
- public get(id: RegisterId) {
25
- const definition = this.definitions[id];
26
- if (!definition) {
27
- throw new Error(`Defintion was not loaded for register ${id}`);
28
- }
29
- return definition;
30
- }
31
-
32
- public reset() {
33
- this.definitions = {};
34
- }
35
- }
36
-
37
- function isDefinition(definitionOrPack: RegisterDefinition | RegisterPack): definitionOrPack is RegisterDefinition {
38
- return !!(definitionOrPack.id && definitionOrPack.aggregate && definitionOrPack.units);
39
- }
40
-
41
- export const RegisterLibrary = new Library();
1
+ import { RegisterDefinition } from "./register-definition";
2
+ import { RegisterId } from "./register-id";
3
+ import { RegisterPack } from "./register-pack";
4
+
5
+ class Library {
6
+ private definitions: Partial<{ [id in RegisterId]: RegisterDefinition }> =
7
+ {};
8
+
9
+ public add(...definitions: (RegisterDefinition | RegisterPack)[]) {
10
+ for (const definition of definitions) {
11
+ if (isDefinition(definition)) {
12
+ this.tryAdd(definition);
13
+ } else {
14
+ for (const definitionInPack of Object.values(definition)) {
15
+ this.tryAdd(definitionInPack);
16
+ }
17
+ }
18
+ }
19
+ }
20
+
21
+ private tryAdd(definition: RegisterDefinition) {
22
+ if (!this.definitions[definition.id]) {
23
+ this.definitions[definition.id] = definition;
24
+ return true;
25
+ }
26
+ return false;
27
+ }
28
+
29
+ public has(id: RegisterId) {
30
+ return !!this.definitions[id];
31
+ }
32
+
33
+ public tryGet(id: RegisterId) {
34
+ return this.definitions[id];
35
+ }
36
+
37
+ public get(id: RegisterId) {
38
+ const definition = this.definitions[id];
39
+ if (!definition) {
40
+ throw new Error(`Defintion was not loaded for register ${id}`);
41
+ }
42
+ return definition;
43
+ }
44
+
45
+ public all() {
46
+ return Object.values(this.definitions).map((x) => x!);
47
+ }
48
+
49
+ public reset() {
50
+ this.definitions = {};
51
+ }
52
+ }
53
+
54
+ function isDefinition(
55
+ definitionOrPack: RegisterDefinition | RegisterPack,
56
+ ): definitionOrPack is RegisterDefinition {
57
+ return !!(
58
+ definitionOrPack.id &&
59
+ definitionOrPack.aggregate &&
60
+ definitionOrPack.units
61
+ );
62
+ }
63
+
64
+ export const RegisterLibrary = new Library();
@@ -1,5 +1,5 @@
1
- import { RegisterDefinition } from "./register-definition";
2
-
3
- export interface RegisterPack {
4
- [key: string]: RegisterDefinition;
5
- }
1
+ import { RegisterDefinition } from "./register-definition";
2
+
3
+ export interface RegisterPack {
4
+ [key: string]: RegisterDefinition;
5
+ }
@@ -1,6 +1,6 @@
1
- import { RegisterDefinition } from "./register-definition";
2
- import { RegisterId } from "./register-id";
3
-
4
- export function getRegisterId(register: RegisterId | RegisterDefinition) {
5
- return typeof register === "string" ? register : register.id;
6
- }
1
+ import { RegisterDefinition } from "./register-definition";
2
+ import { RegisterId } from "./register-id";
3
+
4
+ export function getRegisterId(register: RegisterId | RegisterDefinition) {
5
+ return typeof register === "string" ? register : register.id;
6
+ }
@@ -0,0 +1,52 @@
1
+ import { sqUnits, units } from "../measures/noise";
2
+
3
+ import { RegisterDefinition } from "../register-definition";
4
+
5
+ export const acousticNoise: RegisterDefinition = {
6
+ id: "acousticNoise",
7
+ measure: "noise",
8
+ aggregate: "instant",
9
+ units,
10
+ };
11
+
12
+ export const minAcousticNoise: RegisterDefinition = {
13
+ id: "minAcousticNoise",
14
+ measure: "noise",
15
+ aggregate: "min",
16
+ units,
17
+ };
18
+
19
+ export const maxAcousticNoise: RegisterDefinition = {
20
+ id: "maxAcousticNoise",
21
+ measure: "noise",
22
+ aggregate: "max",
23
+ units,
24
+ };
25
+
26
+ export const avgAcousticNoise: RegisterDefinition = {
27
+ id: "avgAcousticNoise",
28
+ measure: "noise",
29
+ aggregate: "avg",
30
+ units,
31
+ };
32
+
33
+ export const sumAcousticNoise: RegisterDefinition = {
34
+ id: "sumAcousticNoise",
35
+ measure: "noise",
36
+ aggregate: "sum",
37
+ units,
38
+ };
39
+
40
+ export const cntAcousticNoise: RegisterDefinition = {
41
+ id: "cntAcousticNoise",
42
+ measure: "noise",
43
+ aggregate: "cnt",
44
+ units: ["unitless"],
45
+ };
46
+
47
+ export const ssqAcousticNoise: RegisterDefinition = {
48
+ id: "ssqAcousticNoise",
49
+ measure: "noise",
50
+ aggregate: "ssq",
51
+ units: sqUnits,
52
+ };
@@ -0,0 +1,52 @@
1
+ import { sqUnits, units } from "../measures/temperature";
2
+
3
+ import { RegisterDefinition } from "../register-definition";
4
+
5
+ export const ambientTemperature: RegisterDefinition = {
6
+ id: "ambientTemperature",
7
+ measure: "temperature",
8
+ aggregate: "instant",
9
+ units,
10
+ };
11
+
12
+ export const minAmbientTemperature: RegisterDefinition = {
13
+ id: "minAmbientTemperature",
14
+ measure: "temperature",
15
+ aggregate: "min",
16
+ units,
17
+ };
18
+
19
+ export const maxAmbientTemperature: RegisterDefinition = {
20
+ id: "maxAmbientTemperature",
21
+ measure: "temperature",
22
+ aggregate: "max",
23
+ units,
24
+ };
25
+
26
+ export const avgAmbientTemperature: RegisterDefinition = {
27
+ id: "avgAmbientTemperature",
28
+ measure: "temperature",
29
+ aggregate: "avg",
30
+ units,
31
+ };
32
+
33
+ export const sumAmbientTemperature: RegisterDefinition = {
34
+ id: "sumAmbientTemperature",
35
+ measure: "temperature",
36
+ aggregate: "sum",
37
+ units,
38
+ };
39
+
40
+ export const cntAmbientTemperature: RegisterDefinition = {
41
+ id: "cntAmbientTemperature",
42
+ measure: "temperature",
43
+ aggregate: "cnt",
44
+ units: ["unitless"],
45
+ };
46
+
47
+ export const ssqAmbientTemperature: RegisterDefinition = {
48
+ id: "ssqAmbientTemperature",
49
+ measure: "temperature",
50
+ aggregate: "ssq",
51
+ units: sqUnits,
52
+ };
@@ -0,0 +1,17 @@
1
+ import { RegisterDefinition } from "../register-definition";
2
+
3
+ export const consumer: RegisterDefinition = {
4
+ id: "consumer",
5
+ measure: "none",
6
+ aggregate: "instant",
7
+ units: ["unitless"],
8
+ immediate: true,
9
+ };
10
+
11
+ export interface Consumer {
12
+ id: number;
13
+ name: string;
14
+ consumerNumber: string;
15
+ emailAddress: string;
16
+ phoneNumber: string;
17
+ }
@@ -0,0 +1,23 @@
1
+ import { RegisterDefinition } from "../register-definition";
2
+ import { units } from "../measures/energy";
3
+
4
+ export const coolingEnergyVolumeInInlet: RegisterDefinition = {
5
+ id: "coolingEnergyVolumeInInlet",
6
+ measure: "energy",
7
+ aggregate: "instant",
8
+ units,
9
+ };
10
+
11
+ export const diffCoolingEnergyVolumeInInlet: RegisterDefinition = {
12
+ id: "diffCoolingEnergyVolumeInInlet",
13
+ measure: "energy",
14
+ aggregate: "diff",
15
+ units,
16
+ };
17
+
18
+ export const cntCoolingEnergyVolumeInInlet: RegisterDefinition = {
19
+ id: "cntCoolingEnergyVolumeInInlet",
20
+ measure: "energy",
21
+ aggregate: "cnt",
22
+ units: ["unitless"],
23
+ };
@@ -0,0 +1,23 @@
1
+ import { RegisterDefinition } from "../register-definition";
2
+ import { units } from "../measures/energy";
3
+
4
+ export const coolingEnergyVolumeInOutlet: RegisterDefinition = {
5
+ id: "coolingEnergyVolumeInOutlet",
6
+ measure: "energy",
7
+ aggregate: "instant",
8
+ units,
9
+ };
10
+
11
+ export const diffCoolingEnergyVolumeInOutlet: RegisterDefinition = {
12
+ id: "diffCoolingEnergyVolumeInOutlet",
13
+ measure: "energy",
14
+ aggregate: "diff",
15
+ units,
16
+ };
17
+
18
+ export const cntCoolingEnergyVolumeInOutlet: RegisterDefinition = {
19
+ id: "cntCoolingEnergyVolumeInOutlet",
20
+ measure: "energy",
21
+ aggregate: "cnt",
22
+ units: ["unitless"],
23
+ };
@@ -0,0 +1,23 @@
1
+ import { RegisterDefinition } from "../register-definition";
2
+ import { units } from "../measures/energy";
3
+
4
+ export const coolingEnergy: RegisterDefinition = {
5
+ id: "coolingEnergy",
6
+ measure: "energy",
7
+ aggregate: "instant",
8
+ units,
9
+ };
10
+
11
+ export const diffCoolingEnergy: RegisterDefinition = {
12
+ id: "diffCoolingEnergy",
13
+ measure: "energy",
14
+ aggregate: "diff",
15
+ units,
16
+ };
17
+
18
+ export const cntCoolingEnergy: RegisterDefinition = {
19
+ id: "cntCoolingEnergy",
20
+ measure: "energy",
21
+ aggregate: "cnt",
22
+ units: ["unitless"],
23
+ };
@@ -0,0 +1,58 @@
1
+ import { sqUnits, units } from "../measures/temperature";
2
+
3
+ import { RegisterDefinition } from "../register-definition";
4
+
5
+ export const inletMinusOutletFlowTemperatureDifference: RegisterDefinition = {
6
+ id: "inletMinusOutletFlowTemperatureDifference",
7
+ measure: "temperature",
8
+ aggregate: "instant",
9
+ units,
10
+ };
11
+
12
+ export const minInletMinusOutletFlowTemperatureDifference: RegisterDefinition =
13
+ {
14
+ id: "minInletMinusOutletFlowTemperatureDifference",
15
+ measure: "temperature",
16
+ aggregate: "min",
17
+ units,
18
+ };
19
+
20
+ export const maxInletMinusOutletFlowTemperatureDifference: RegisterDefinition =
21
+ {
22
+ id: "maxInletMinusOutletFlowTemperatureDifference",
23
+ measure: "temperature",
24
+ aggregate: "max",
25
+ units,
26
+ };
27
+
28
+ export const avgInletMinusOutletFlowTemperatureDifference: RegisterDefinition =
29
+ {
30
+ id: "avgInletMinusOutletFlowTemperatureDifference",
31
+ measure: "temperature",
32
+ aggregate: "avg",
33
+ units,
34
+ };
35
+
36
+ export const sumInletMinusOutletFlowTemperatureDifference: RegisterDefinition =
37
+ {
38
+ id: "sumInletMinusOutletFlowTemperatureDifference",
39
+ measure: "temperature",
40
+ aggregate: "sum",
41
+ units,
42
+ };
43
+
44
+ export const cntInletMinusOutletFlowTemperatureDifference: RegisterDefinition =
45
+ {
46
+ id: "cntInletMinusOutletFlowTemperatureDifference",
47
+ measure: "temperature",
48
+ aggregate: "cnt",
49
+ units: ["unitless"],
50
+ };
51
+
52
+ export const ssqInletMinusOutletFlowTemperatureDifference: RegisterDefinition =
53
+ {
54
+ id: "ssqInletMinusOutletFlowTemperatureDifference",
55
+ measure: "temperature",
56
+ aggregate: "ssq",
57
+ units: sqUnits,
58
+ };
@@ -0,0 +1,14 @@
1
+ import { RegisterDefinition } from "../register-definition";
2
+
3
+ export const kamdraftDeviceAddresses: RegisterDefinition = {
4
+ id: "kamdraftDeviceAddresses",
5
+ measure: "none",
6
+ aggregate: "instant",
7
+ units: ["json"],
8
+ immediate: true,
9
+ };
10
+
11
+ export interface KamdraftDeviceAddress {
12
+ _t: "kamdraft";
13
+ serialNumber: number;
14
+ }
@@ -0,0 +1,14 @@
1
+ import { RegisterDefinition } from "../register-definition";
2
+
3
+ export const msisdnDeviceAddresses: RegisterDefinition = {
4
+ id: "msisdnDeviceAddresses",
5
+ measure: "none",
6
+ aggregate: "instant",
7
+ units: ["json"],
8
+ immediate: true,
9
+ };
10
+
11
+ export interface MsisdnDeviceAddress {
12
+ _t: "msisdn";
13
+ msisdn: number;
14
+ }
@@ -0,0 +1,14 @@
1
+ import { RegisterDefinition } from "../register-definition";
2
+
3
+ export const tchlrDeviceAddresses: RegisterDefinition = {
4
+ id: "tchlrDeviceAddresses",
5
+ measure: "none",
6
+ aggregate: "instant",
7
+ units: ["json"],
8
+ immediate: true,
9
+ };
10
+
11
+ export interface TchlrDeviceAddress {
12
+ _t: "tchlr";
13
+ serialNumber: number;
14
+ }
@@ -0,0 +1,17 @@
1
+ import { RegisterDefinition } from "../register-definition";
2
+
3
+ export const wMBusDeviceAddresses: RegisterDefinition = {
4
+ id: "wMBusDeviceAddresses",
5
+ measure: "none",
6
+ aggregate: "instant",
7
+ units: ["json"],
8
+ immediate: true,
9
+ };
10
+
11
+ export interface WMBusDeviceAddress {
12
+ _t: "wmbus";
13
+ manufacturerCode: number;
14
+ serialNumber: number;
15
+ version: number;
16
+ type: number;
17
+ }
@@ -0,0 +1,9 @@
1
+ import { RegisterDefinition } from "../register-definition";
2
+ import { units } from "../measures/time";
3
+
4
+ export const deviceDateTime: RegisterDefinition = {
5
+ id: "deviceDateTime",
6
+ measure: "time",
7
+ aggregate: "instant",
8
+ units,
9
+ };
@@ -0,0 +1,9 @@
1
+ import { RegisterDefinition } from "../register-definition";
2
+ import { units } from "../measures/time";
3
+
4
+ export const deviceDate: RegisterDefinition = {
5
+ id: "deviceDate",
6
+ measure: "time",
7
+ aggregate: "instant",
8
+ units,
9
+ };
@@ -0,0 +1,9 @@
1
+ import { RegisterDefinition } from "../register-definition";
2
+
3
+ export const deviceNominalDiameter: RegisterDefinition = {
4
+ id: "deviceNominalDiameter",
5
+ measure: "none",
6
+ aggregate: "instant",
7
+ units: ["unitless"],
8
+ immediate: true,
9
+ };
@@ -0,0 +1,9 @@
1
+ import { RegisterDefinition } from "../register-definition";
2
+
3
+ export const devicePermanentVolumeFlow: RegisterDefinition = {
4
+ id: "devicePermanentVolumeFlow",
5
+ measure: "volumeFlow",
6
+ aggregate: "instant",
7
+ units: ["cubicMetersPerHour"],
8
+ immediate: true,
9
+ };
@@ -0,0 +1,9 @@
1
+ import { RegisterDefinition } from "../register-definition";
2
+
3
+ export const deviceRegisters: RegisterDefinition = {
4
+ id: "deviceRegisters",
5
+ measure: "none",
6
+ aggregate: "instant",
7
+ units: ["json"],
8
+ immediate: true,
9
+ };
@@ -0,0 +1,37 @@
1
+ import { RegisterDefinition } from "../register-definition";
2
+ import { RegisterId } from "../register-id";
3
+ import { UnitId } from "../unit-id";
4
+
5
+ export const legacyDeviceSamples: RegisterDefinition = {
6
+ id: "legacyDeviceSamples",
7
+ measure: "none",
8
+ aggregate: "instant",
9
+ units: ["json"],
10
+ immediate: true,
11
+ };
12
+
13
+ export const deviceSamplesOnLastMount: RegisterDefinition = {
14
+ id: "deviceSamplesOnLastMount",
15
+ measure: "none",
16
+ aggregate: "instant",
17
+ units: ["json"],
18
+ immediate: true,
19
+ };
20
+
21
+ export const deviceSamplesOnLastUnmount: RegisterDefinition = {
22
+ id: "deviceSamplesOnLastUnmount",
23
+ measure: "none",
24
+ aggregate: "instant",
25
+ units: ["json"],
26
+ immediate: true,
27
+ };
28
+
29
+ export type DeviceSamples = DeviceSample[];
30
+
31
+ export interface DeviceSample {
32
+ register: RegisterId;
33
+ instantOrPeriodEnd: string;
34
+ value: number;
35
+ precision: number;
36
+ unit: UnitId;
37
+ }
@@ -0,0 +1,8 @@
1
+ import { RegisterDefinition } from "../register-definition";
2
+
3
+ export const deviceSoftwareVersion: RegisterDefinition = {
4
+ id: "deviceSoftwareVersion",
5
+ measure: "none",
6
+ aggregate: "instant",
7
+ units: ["unitless"],
8
+ };
@@ -0,0 +1,9 @@
1
+ import { RegisterDefinition } from "../register-definition";
2
+ import { units } from "../measures/time";
3
+
4
+ export const deviceTime: RegisterDefinition = {
5
+ id: "deviceTime",
6
+ measure: "time",
7
+ aggregate: "instant",
8
+ units,
9
+ };
@@ -0,0 +1,16 @@
1
+ import { RegisterDefinition } from "../register-definition";
2
+
3
+ export const device: RegisterDefinition = {
4
+ id: "device",
5
+ measure: "none",
6
+ aggregate: "instant",
7
+ units: ["json"],
8
+ immediate: true,
9
+ };
10
+
11
+ export interface Device {
12
+ id: number;
13
+ deviceNumber: string;
14
+ manufacturerName: string;
15
+ modelName: string;
16
+ }
@@ -0,0 +1,37 @@
1
+ import { RegisterDefinition } from "../register-definition";
2
+ import { units } from "../measures/infocode";
3
+
4
+ export const diehlInfocode: RegisterDefinition = {
5
+ id: "diehlInfocode",
6
+ measure: "none",
7
+ aggregate: "instant",
8
+ units,
9
+ };
10
+
11
+ export const diehlInfocodeType1: RegisterDefinition = {
12
+ id: "diehlInfocodeType1",
13
+ measure: "none",
14
+ aggregate: "instant",
15
+ units,
16
+ };
17
+
18
+ export const diehlInfocodeType2: RegisterDefinition = {
19
+ id: "diehlInfocodeType2",
20
+ measure: "none",
21
+ aggregate: "instant",
22
+ units,
23
+ };
24
+
25
+ export const diehlInfocodeType3: RegisterDefinition = {
26
+ id: "diehlInfocodeType3",
27
+ measure: "none",
28
+ aggregate: "instant",
29
+ units,
30
+ };
31
+
32
+ export const diehlInfocodeType4: RegisterDefinition = {
33
+ id: "diehlInfocodeType4",
34
+ measure: "none",
35
+ aggregate: "instant",
36
+ units,
37
+ };
@@ -0,0 +1,23 @@
1
+ import { RegisterDefinition } from "../register-definition";
2
+ import { units } from "../measures/energy";
3
+
4
+ export const electricalEnergy: RegisterDefinition = {
5
+ id: "electricalEnergy",
6
+ measure: "energy",
7
+ aggregate: "instant",
8
+ units,
9
+ };
10
+
11
+ export const diffElectricalEnergy: RegisterDefinition = {
12
+ id: "diffElectricalEnergy",
13
+ measure: "energy",
14
+ aggregate: "diff",
15
+ units,
16
+ };
17
+
18
+ export const cntElectricalEnergy: RegisterDefinition = {
19
+ id: "cntElectricalEnergy",
20
+ measure: "energy",
21
+ aggregate: "cnt",
22
+ units: ["unitless"],
23
+ };
@@ -0,0 +1,23 @@
1
+ import { RegisterDefinition } from "../register-definition";
2
+ import { units } from "../measures/energy";
3
+
4
+ export const kamstrupE8Inlet: RegisterDefinition = {
5
+ id: "kamstrupE8Inlet",
6
+ measure: "energy",
7
+ aggregate: "instant",
8
+ units: ["cubicMeterCelcius", ...units],
9
+ };
10
+
11
+ export const diffKamstrupE8Inlet: RegisterDefinition = {
12
+ id: "diffKamstrupE8Inlet",
13
+ measure: "energy",
14
+ aggregate: "diff",
15
+ units: ["cubicMeterCelcius", ...units],
16
+ };
17
+
18
+ export const cntKamstrupE8Inlet: RegisterDefinition = {
19
+ id: "cntKamstrupE8Inlet",
20
+ measure: "energy",
21
+ aggregate: "cnt",
22
+ units: ["unitless"],
23
+ };