forked from ampeco/cpd-ocpp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.d.ts
200 lines (144 loc) · 5.65 KB
/
index.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
// Type definitions for ocpp-eliftech 1.0
// Project: https://github.com/elifTech/cpd-ocpp#readme
// Definitions by: Venelin Gornishki <https://github.com/vgorni>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
import * as WebSocket from 'ws';
import {Request} from 'express';
import * as Schemas from './schemas/';
export class OCPPConnector {
connectorId: number;
constructor(connectorId: number);
}
export interface OCPPChargePointOptions {
centralSystemUrl: string;
reconnectInterval: number;
connectors: OCPPConnector[];
}
export class ChargePoint {
constructor(options: OCPPChargePointOptions);
connect(): Promise<OCPPConnection>;
send(command: BaseCommand): Promise<boolean>;
onRequest(command: BaseCommand): Promise<{ status: string; } | void>;
}
export enum MessageType {
CALL_MESSAGE = 2, // Client-to-Server
CALLRESULT_MESSAGE = 3, // Server-to-Client
CALLERROR_MESSAGE = 4, // Server-to-Client
}
export class BaseCommand {
constructor(requestSchema: any, responseSchema: any, values: any);
getCommandName(): string;
}
export class BaseResponse {
}
export class CentralSystemClient {
connection: OCPPConnection;
}
export class OCPPConnection {
socket: WebSocket;
url: string;
ip: string;
constructor(socket: WebSocket, req: Request);
onMessage(message: string): Promise<void>;
send(command: BaseCommand, messageType: MessageType): Promise<BaseResponse>;
sendError(messageId: string, err: Error): Promise<BaseResponse>;
sendMessage(messageId: string, command: BaseCommand, messageType: MessageType): Promise<BaseResponse>;
onRequest(/*request: */): any;
}
export interface OCPPCentralSystemOptions {
validateConnection: (url: string, credentials: {name: string, pass:string}|undefined, protocol: 'http'|'https') => Promise<[boolean, number, string]>;
wsOptions: WebSocket.ServerOptions;
}
export class CentralSystem {
clients: CentralSystemClient[];
constructor(options: OCPPCentralSystemOptions);
listen(port?: number | null, host?: string): void;
onRequest(client: CentralSystemClient, command: BaseCommand): Promise<any>;
onNewConnection(socket: WebSocket, req: Request): any;
}
export namespace OCPPCommands {
export class Authorize extends BaseCommand {
constructor(values: Schemas.AuthorizeRequest);
}
export class BootNotification extends BaseCommand {
constructor(values: Schemas.BootNotificationRequest);
}
export class CancelReservation extends BaseCommand {
constructor(values: Schemas.CancelReservationRequest);
}
export class ChangeAvailability extends BaseCommand {
constructor(values: Schemas.ChangeAvailabilityRequest);
}
export class ChangeConfiguration extends BaseCommand {
constructor(values: Schemas.ChangeConfigurationRequest);
}
export class ClearCache extends BaseCommand {
constructor(values: Schemas.ClearCacheRequest);
}
export class ClearChargingProfile extends BaseCommand {
constructor(values: Schemas.ClearChargingProfileRequest);
}
export class DataTransfer extends BaseCommand {
constructor(values: Schemas.DataTransferRequest);
}
export class DiagnosticsStatusNotification extends BaseCommand {
constructor(values: Schemas.DiagnosticsStatusNotificationRequest);
}
export class FirmwareStatusNotification extends BaseCommand {
constructor(values: Schemas.FirmwareStatusNotificationRequest);
}
export class GetCompositeSchedule extends BaseCommand {
constructor(values: Schemas.GetCompositeScheduleRequest);
}
export class GetConfiguration extends BaseCommand {
constructor(values: Schemas.GetConfigurationRequest);
}
export class GetDiagnostics extends BaseCommand {
constructor(values: Schemas.GetDiagnosticsRequest);
}
export class GetLocalListVersion extends BaseCommand {
constructor(values: Schemas.GetLocalListVersionRequest);
}
export class Heartbeat extends BaseCommand {
constructor(values: Schemas.HeartbeatRequest);
}
export class MeterValues extends BaseCommand {
constructor(values: Schemas.MeterValuesRequest);
}
export class RemoteStartTransaction extends BaseCommand {
constructor(values: Schemas.RemoteStartTransactionRequest);
}
export class RemoteStopTransaction extends BaseCommand {
constructor(values: Schemas.RemoteStopTransactionRequest);
}
export class ReserveNow extends BaseCommand {
constructor(values: Schemas.ReserveNowRequest);
}
export class Reset extends BaseCommand {
constructor(values: Schemas.ResetRequest);
}
export class SendLocalList extends BaseCommand {
constructor(values: Schemas.SendLocalListRequest);
}
export class SetChargingProfile extends BaseCommand {
constructor(values: Schemas.SetChargingProfileRequest);
}
export class StartTransaction extends BaseCommand {
constructor(values: Schemas.StartTransactionRequest);
}
export class StatusNotification extends BaseCommand {
constructor(values: Schemas.StatusNotificationRequest);
}
export class StopTransaction extends BaseCommand {
constructor(values: Schemas.StopTransactionRequest);
}
export class TriggerMessage extends BaseCommand {
constructor(values: Schemas.TriggerMessageRequest);
}
export class UnlockConnector extends BaseCommand {
constructor(values: Schemas.UnlockConnectorRequest);
}
export class UpdateFirmware extends BaseCommand {
constructor(values: Schemas.UpdateFirmwareRequest);
}
}