knx.ts 1.0.0

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 (99) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +211 -0
  3. package/dist/@types/interfaces/DPTs.d.ts +144 -0
  4. package/dist/@types/interfaces/DPTs.js +3 -0
  5. package/dist/@types/interfaces/EMI.d.ts +396 -0
  6. package/dist/@types/interfaces/EMI.js +2 -0
  7. package/dist/@types/interfaces/ServiceMessage.d.ts +11 -0
  8. package/dist/@types/interfaces/ServiceMessage.js +2 -0
  9. package/dist/@types/interfaces/SystemStatus.d.ts +18 -0
  10. package/dist/@types/interfaces/SystemStatus.js +2 -0
  11. package/dist/@types/interfaces/connection.d.ts +139 -0
  12. package/dist/@types/interfaces/connection.js +2 -0
  13. package/dist/@types/interfaces/localEndPoint.d.ts +5 -0
  14. package/dist/@types/interfaces/localEndPoint.js +2 -0
  15. package/dist/@types/types/AllDpts.d.ts +3 -0
  16. package/dist/@types/types/AllDpts.js +3 -0
  17. package/dist/@types/types/DecodedDPTType.d.ts +21 -0
  18. package/dist/@types/types/DecodedDPTType.js +2 -0
  19. package/dist/connection/KNXService.d.ts +58 -0
  20. package/dist/connection/KNXService.js +242 -0
  21. package/dist/connection/KNXTunneling.d.ts +44 -0
  22. package/dist/connection/KNXTunneling.js +509 -0
  23. package/dist/connection/KNXnetIPServer.d.ts +64 -0
  24. package/dist/connection/KNXnetIPServer.js +900 -0
  25. package/dist/connection/Router.d.ts +49 -0
  26. package/dist/connection/Router.js +269 -0
  27. package/dist/connection/TPUART.d.ts +32 -0
  28. package/dist/connection/TPUART.js +497 -0
  29. package/dist/connection/TunnelConnection.d.ts +57 -0
  30. package/dist/connection/TunnelConnection.js +167 -0
  31. package/dist/core/CEMI.d.ts +1130 -0
  32. package/dist/core/CEMI.js +1281 -0
  33. package/dist/core/ControlField.d.ts +57 -0
  34. package/dist/core/ControlField.js +120 -0
  35. package/dist/core/ControlFieldExtended.d.ts +56 -0
  36. package/dist/core/ControlFieldExtended.js +114 -0
  37. package/dist/core/EMI.d.ts +2515 -0
  38. package/dist/core/EMI.js +3898 -0
  39. package/dist/core/KNXAddInfoTypes.d.ts +225 -0
  40. package/dist/core/KNXAddInfoTypes.js +602 -0
  41. package/dist/core/KNXnetIPHeader.d.ts +10 -0
  42. package/dist/core/KNXnetIPHeader.js +38 -0
  43. package/dist/core/KNXnetIPStructures.d.ts +179 -0
  44. package/dist/core/KNXnetIPStructures.js +622 -0
  45. package/dist/core/MessageCodeField.d.ts +886 -0
  46. package/dist/core/MessageCodeField.js +399 -0
  47. package/dist/core/SystemStatus.d.ts +144 -0
  48. package/dist/core/SystemStatus.js +325 -0
  49. package/dist/core/data/KNXData.d.ts +7 -0
  50. package/dist/core/data/KNXData.js +30 -0
  51. package/dist/core/data/KNXDataDecode.d.ts +396 -0
  52. package/dist/core/data/KNXDataDecode.js +1186 -0
  53. package/dist/core/data/KNXDataEncode.d.ts +332 -0
  54. package/dist/core/data/KNXDataEncode.js +1504 -0
  55. package/dist/core/enum/APCIEnum.d.ts +587 -0
  56. package/dist/core/enum/APCIEnum.js +591 -0
  57. package/dist/core/enum/EnumControlField.d.ts +24 -0
  58. package/dist/core/enum/EnumControlField.js +36 -0
  59. package/dist/core/enum/EnumControlFieldExtended.d.ts +36 -0
  60. package/dist/core/enum/EnumControlFieldExtended.js +41 -0
  61. package/dist/core/enum/EnumShortACKFrame.d.ts +6 -0
  62. package/dist/core/enum/EnumShortACKFrame.js +10 -0
  63. package/dist/core/enum/ErrorCodeSet.d.ts +57 -0
  64. package/dist/core/enum/ErrorCodeSet.js +2 -0
  65. package/dist/core/enum/KNXnetIPEnum.d.ts +95 -0
  66. package/dist/core/enum/KNXnetIPEnum.js +90 -0
  67. package/dist/core/enum/SAP.d.ts +19 -0
  68. package/dist/core/enum/SAP.js +23 -0
  69. package/dist/core/layers/data/APDU.d.ts +38 -0
  70. package/dist/core/layers/data/APDU.js +115 -0
  71. package/dist/core/layers/data/NPDU.d.ts +73 -0
  72. package/dist/core/layers/data/NPDU.js +103 -0
  73. package/dist/core/layers/data/TPDU.d.ts +53 -0
  74. package/dist/core/layers/data/TPDU.js +73 -0
  75. package/dist/core/layers/interfaces/APCI.d.ts +61 -0
  76. package/dist/core/layers/interfaces/APCI.js +92 -0
  77. package/dist/core/layers/interfaces/TPCI.d.ts +110 -0
  78. package/dist/core/layers/interfaces/TPCI.js +196 -0
  79. package/dist/core/resources/DeviceDescriptorType.d.ts +46 -0
  80. package/dist/core/resources/DeviceDescriptorType.js +69 -0
  81. package/dist/errors/DPTNotFound.d.ts +6 -0
  82. package/dist/errors/DPTNotFound.js +15 -0
  83. package/dist/errors/InvalidKnxAddresExeption.d.ts +3 -0
  84. package/dist/errors/InvalidKnxAddresExeption.js +9 -0
  85. package/dist/index.d.ts +7 -0
  86. package/dist/index.js +18 -0
  87. package/dist/utils/CEMIAdapter.d.ts +16 -0
  88. package/dist/utils/CEMIAdapter.js +94 -0
  89. package/dist/utils/KNXHelper.d.ts +78 -0
  90. package/dist/utils/KNXHelper.js +338 -0
  91. package/dist/utils/Logger.d.ts +17 -0
  92. package/dist/utils/Logger.js +96 -0
  93. package/dist/utils/MessageCodeTranslator.d.ts +19 -0
  94. package/dist/utils/MessageCodeTranslator.js +77 -0
  95. package/dist/utils/checksumFrame.d.ts +18 -0
  96. package/dist/utils/checksumFrame.js +41 -0
  97. package/dist/utils/localIp.d.ts +7 -0
  98. package/dist/utils/localIp.js +45 -0
  99. package/package.json +49 -0
@@ -0,0 +1,225 @@
1
+ import { Buffer } from "buffer";
2
+ import { Status } from "./SystemStatus";
3
+ /**
4
+ * Interfaz base para todos los tipos de AddInfo.
5
+ * Define las propiedades y métodos comunes.
6
+ */
7
+ interface IAddInfoType {
8
+ /** El identificador de tipo (p.ej., 0x02, 0x06). */
9
+ readonly typeId: number;
10
+ /** La longitud de los *datos* (sin incluir el Type ID y el octeto de Longitud). */
11
+ readonly dataLength: number;
12
+ /**
13
+ * Genera un Buffer que representa la estructura completa de AddInfo,
14
+ * incluyendo Type ID, Length y los datos.
15
+ * @returns Un Buffer listo para ser enviado.
16
+ */
17
+ getBuffer(): Buffer;
18
+ }
19
+ /**
20
+ * Clase base abstracta para ayudar a implementar IAddInfoType.
21
+ */
22
+ export declare abstract class AddInfoBase implements IAddInfoType {
23
+ protected _typeId: number;
24
+ protected _dataLength: number;
25
+ constructor(typeId: number, dataLength: number);
26
+ get typeId(): number;
27
+ get dataLength(): number;
28
+ get totalLength(): number;
29
+ abstract getBuffer(): Buffer;
30
+ /**
31
+ * Ayudante para parsear el header del buffer en los constructores hijos.
32
+ * @param buffer El buffer de entrada completo (comenzando con Type ID).
33
+ * @param expectedType El Type ID esperado para esta clase.
34
+ * @param expectedLength La longitud de datos fija esperada (para tipos de longitud no variable).
35
+ * @returns El Buffer que contiene solo la porción de *datos*.
36
+ */
37
+ protected static parseDataBuffer(buffer: Buffer, expectedType: number, expectedLength?: number): Buffer;
38
+ }
39
+ export declare class PLMediumInfo extends AddInfoBase {
40
+ static readonly TYPE_ID = 1;
41
+ static readonly DATA_LENGTH = 2;
42
+ constructor(buffer?: Buffer);
43
+ private _domainAddress;
44
+ set domainAddress(value: Buffer);
45
+ get domainAddress(): Buffer;
46
+ getBuffer(): Buffer;
47
+ }
48
+ /**
49
+ * Implementación de AddInfoType 02h: RF medium information.
50
+ * Longitud de datos: 8 octetos.
51
+ */
52
+ export declare class RFMediumInformation extends AddInfoBase {
53
+ private _rfInfo;
54
+ private _serialNumberOrDoA;
55
+ private _lfn;
56
+ static readonly TYPE_ID = 2;
57
+ static readonly DATA_LENGTH = 8;
58
+ constructor(buffer?: Buffer);
59
+ get routeLastFlag(): boolean;
60
+ set routeLastFlag(value: boolean);
61
+ get rssi(): number;
62
+ set rssi(value: number);
63
+ get retransmitterRssi(): number;
64
+ set retransmitterRssi(value: number);
65
+ get batteryState(): boolean;
66
+ set batteryState(value: boolean);
67
+ get unidirFlag(): boolean;
68
+ set unidirFlag(value: boolean);
69
+ get serialNumberOrDoA(): Buffer;
70
+ set serialNumberOrDoA(value: Buffer);
71
+ get lfn(): number;
72
+ set lfn(value: number);
73
+ getBuffer(): Buffer;
74
+ }
75
+ /**
76
+ * Implementación de AddInfoType 06h: Extended relative timestamp.
77
+ * Longitud de datos: 4 octetos.
78
+ */
79
+ export declare class ExtendedRelativeTimestamp extends AddInfoBase {
80
+ private _timestamp;
81
+ static readonly TYPE_ID = 6;
82
+ static readonly DATA_LENGTH = 4;
83
+ constructor(buffer?: Buffer);
84
+ get timestamp(): number;
85
+ set timestamp(value: number);
86
+ getBuffer(): Buffer;
87
+ }
88
+ /**
89
+ * Implementación de AddInfoType 07h: BiBat information.
90
+ * Longitud de datos: 2 octetos.
91
+ */
92
+ export declare class BiBatInformation extends AddInfoBase {
93
+ private _bibatCtrl;
94
+ private _bibatBlock;
95
+ static readonly TYPE_ID = 7;
96
+ static readonly DATA_LENGTH = 2;
97
+ constructor(buffer?: Buffer);
98
+ get bibatCtrl(): number;
99
+ set bibatCtrl(value: number);
100
+ get bibatBlock(): number;
101
+ set bibatBlock(value: number);
102
+ getBuffer(): Buffer;
103
+ }
104
+ /**
105
+ * Implementación de AddInfoType 08h: RF Multi information.
106
+ * Longitud de datos: 4 octetos.
107
+ */
108
+ export declare class RFMultiInformation extends AddInfoBase {
109
+ private _transmissionFrequency;
110
+ private _callChannel;
111
+ private _physicalAcknowledge;
112
+ private _receptionFrequency;
113
+ static readonly TYPE_ID = 8;
114
+ static readonly DATA_LENGTH = 4;
115
+ constructor(buffer?: Buffer);
116
+ get transmissionFrequency(): number;
117
+ set transmissionFrequency(value: number);
118
+ get fastCallChannel(): number;
119
+ set fastCallChannel(value: number);
120
+ get slowCallChannel(): number;
121
+ set slowCallChannel(value: number);
122
+ get physicalAcknowledge(): number;
123
+ set physicalAcknowledge(value: number);
124
+ get receptionFrequency(): number;
125
+ set receptionFrequency(value: number);
126
+ getBuffer(): Buffer;
127
+ }
128
+ /**
129
+ * Implementación de AddInfoType 09h: Preamble and postamble.
130
+ * Longitud de datos: 3 octetos.
131
+ */
132
+ export declare class PreambleAndPostamble extends AddInfoBase {
133
+ private _preambleLength;
134
+ private _postambleLength;
135
+ static readonly TYPE_ID = 9;
136
+ static readonly DATA_LENGTH = 3;
137
+ constructor(buffer?: Buffer);
138
+ get preambleLength(): number;
139
+ set preambleLength(value: number);
140
+ get postambleLength(): number;
141
+ set postambleLength(value: number);
142
+ getBuffer(): Buffer;
143
+ }
144
+ interface IRfFastAck {
145
+ status: number;
146
+ info: number;
147
+ }
148
+ /**
149
+ * Implementación de AddInfoType 0Ah: RF Fast ack information.
150
+ * Longitud de datos: Variable (N * 2 octetos).
151
+ */
152
+ export declare class RFFastACKInformation extends AddInfoBase {
153
+ private _fastAcks;
154
+ static readonly TYPE_ID = 10;
155
+ constructor(buffer?: Buffer);
156
+ getFastAcks(): IRfFastAck[];
157
+ setFastAcks(acks: IRfFastAck[]): void;
158
+ addFastAck(ack: IRfFastAck): void;
159
+ getBuffer(): Buffer;
160
+ }
161
+ /**
162
+ * Implementación de AddInfoType FEh: Manufacturer specific data.
163
+ * Longitud de datos: Variable (N + 3 octetos).
164
+ */
165
+ export declare class ManufacturerSpecificData extends AddInfoBase {
166
+ private _manufacturerId;
167
+ private _subfunction;
168
+ private _data;
169
+ static readonly TYPE_ID = 254;
170
+ static readonly MIN_DATA_LENGTH = 3;
171
+ constructor(buffer?: Buffer);
172
+ get manufacturerId(): number;
173
+ set manufacturerId(value: number);
174
+ get subfunction(): number;
175
+ set subfunction(value: number);
176
+ get data(): Buffer;
177
+ set data(value: Buffer);
178
+ getBuffer(): Buffer;
179
+ }
180
+ /**
181
+ * 4.1.4.3.1 AddInfo-Type 03h: Busmonitor Status Info
182
+ * Longitud de datos: 1 octeto.
183
+ * Utiliza la clase Status existente para la gestión de bits.
184
+ */
185
+ export declare class BusmonitorStatusInfo extends AddInfoBase {
186
+ static readonly TYPE_ID = 3;
187
+ static readonly DATA_LENGTH = 1;
188
+ private _status;
189
+ constructor(buffer?: Buffer);
190
+ /**
191
+ * Devuelve la instancia interna de Status para manipulación directa.
192
+ */
193
+ get status(): Status;
194
+ set status(value: Status);
195
+ getBuffer(): Buffer;
196
+ }
197
+ /**
198
+ * Implementación de AddInfoType 04h: Timestamp Relative.
199
+ * Longitud de datos: 2 octetos.
200
+ * Representa una marca de tiempo relativa (generalmente en ms o ticks desde el último evento).
201
+ */
202
+ export declare class TimestampRelative extends AddInfoBase {
203
+ private _timestamp;
204
+ static readonly TYPE_ID = 4;
205
+ static readonly DATA_LENGTH = 2;
206
+ constructor(buffer?: Buffer);
207
+ get timestamp(): number;
208
+ set timestamp(value: number);
209
+ getBuffer(): Buffer;
210
+ }
211
+ /**
212
+ * Implementación de AddInfoType 05h: Time Delay Until Sending.
213
+ * Longitud de datos: 2 octetos.
214
+ * Define un retardo antes de enviar la trama al medio.
215
+ */
216
+ export declare class TimeDelayUntilSending extends AddInfoBase {
217
+ private _delay;
218
+ static readonly TYPE_ID = 5;
219
+ static readonly DATA_LENGTH = 2;
220
+ constructor(buffer?: Buffer);
221
+ get delay(): number;
222
+ set delay(value: number);
223
+ getBuffer(): Buffer;
224
+ }
225
+ export {};