@starak/sim800c 0.0.6 → 0.0.8
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.
- package/dist/index.d.ts +9 -2
- package/dist/index.js +13 -15
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -2,10 +2,17 @@
|
|
|
2
2
|
import EventEmitter from "events";
|
|
3
3
|
import { SerialPort } from "serialport";
|
|
4
4
|
import { pduMessage } from "pdu.ts";
|
|
5
|
+
export interface UDH {
|
|
6
|
+
parts: number;
|
|
7
|
+
current_part: number;
|
|
8
|
+
reference_number: string;
|
|
9
|
+
length: string;
|
|
10
|
+
iei: string;
|
|
11
|
+
}
|
|
5
12
|
export interface EpduMessage extends pduMessage {
|
|
6
|
-
udh
|
|
13
|
+
udh?: UDH;
|
|
7
14
|
multipart: boolean;
|
|
8
|
-
parts
|
|
15
|
+
parts: number;
|
|
9
16
|
parts_raw?: GsmMessage[];
|
|
10
17
|
sender?: string;
|
|
11
18
|
senderType?: number;
|
package/dist/index.js
CHANGED
|
@@ -44,7 +44,6 @@ const logger_in = new console.Console(process.stdout, process.stderr);
|
|
|
44
44
|
});
|
|
45
45
|
logger_in.debug('Debugging is enabled');
|
|
46
46
|
__exportStar(require("serialport"), exports);
|
|
47
|
-
const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms));
|
|
48
47
|
class GSM extends events_1.default {
|
|
49
48
|
constructor(path) {
|
|
50
49
|
super();
|
|
@@ -54,12 +53,7 @@ class GSM extends events_1.default {
|
|
|
54
53
|
const index = data.toString().split(',')[1];
|
|
55
54
|
const message = await this.getMessage(+index);
|
|
56
55
|
if (message) {
|
|
57
|
-
if (message.message.multipart
|
|
58
|
-
// We need to wait for the rest of the message
|
|
59
|
-
await sleep(500);
|
|
60
|
-
setImmediate(() => this.onDataHandler(data));
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
56
|
+
if (!message.message.multipart || message.message.parts === ((_a = message.message.parts_raw) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
63
57
|
this.emit('newMessage', message);
|
|
64
58
|
}
|
|
65
59
|
}
|
|
@@ -149,7 +143,9 @@ class GSM extends events_1.default {
|
|
|
149
143
|
await this.reset();
|
|
150
144
|
await this.setPDUMode();
|
|
151
145
|
const { port } = this;
|
|
146
|
+
let data = '', msgs = [], current = {};
|
|
152
147
|
return new Promise((resolve, reject) => {
|
|
148
|
+
const command = 'AT+CMGL=4\r';
|
|
153
149
|
const listener = async (d) => {
|
|
154
150
|
data += d.toString();
|
|
155
151
|
const lines = data.split('\r\n');
|
|
@@ -175,10 +171,9 @@ class GSM extends events_1.default {
|
|
|
175
171
|
}
|
|
176
172
|
}
|
|
177
173
|
};
|
|
178
|
-
let data = '', msgs = [], current = {};
|
|
179
174
|
port.on('data', listener);
|
|
180
|
-
logger_out.debug(
|
|
181
|
-
port.write(
|
|
175
|
+
logger_out.debug(command);
|
|
176
|
+
port.write(command);
|
|
182
177
|
});
|
|
183
178
|
}
|
|
184
179
|
async getMessages() {
|
|
@@ -188,7 +183,7 @@ class GSM extends events_1.default {
|
|
|
188
183
|
if (m.message.udh.current_part === 1) {
|
|
189
184
|
const parts = messages
|
|
190
185
|
.filter(m2 => m2.message.udh)
|
|
191
|
-
.filter(m2 => m2.message.udh.reference_number === m.message.udh.reference_number);
|
|
186
|
+
.filter(m2 => { var _a, _b; return ((_a = m2.message.udh) === null || _a === void 0 ? void 0 : _a.reference_number) === ((_b = m.message.udh) === null || _b === void 0 ? void 0 : _b.reference_number); });
|
|
192
187
|
return {
|
|
193
188
|
...m,
|
|
194
189
|
message: {
|
|
@@ -202,14 +197,17 @@ class GSM extends events_1.default {
|
|
|
202
197
|
}
|
|
203
198
|
return undefined;
|
|
204
199
|
}
|
|
205
|
-
return { ...m, multipart: false };
|
|
200
|
+
return { ...m, multipart: false, parts: 1 };
|
|
206
201
|
}).filter(m => m !== undefined);
|
|
207
202
|
}
|
|
208
203
|
async getMessage(index) {
|
|
209
|
-
// TODO: implement AT+CMGR - Read Message
|
|
210
204
|
const messages = await this.getMessages();
|
|
211
|
-
|
|
205
|
+
let message = messages.find(m => m.index === index);
|
|
206
|
+
if (!message) {
|
|
207
|
+
message = messages.find(m => { var _a; return (_a = m.message.parts_raw) === null || _a === void 0 ? void 0 : _a.find(m2 => m2.index === index); });
|
|
208
|
+
}
|
|
209
|
+
return message || undefined;
|
|
212
210
|
}
|
|
213
211
|
}
|
|
214
212
|
exports.GSM = GSM;
|
|
215
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
213
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBa0M7QUFDbEMsMkNBQXNDO0FBQ3RDLG1DQUE2QztBQUM3QyxrRUFBMEM7QUFHMUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3ZFLE1BQU0sU0FBUyxHQUFHLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUV0RSxJQUFBLHVCQUFhLEVBQUMsVUFBVSxFQUFFO0lBQ3RCLE1BQU0sRUFBRSx5QkFBeUI7SUFDakMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU87SUFDaEQsTUFBTSxFQUFFO1FBQ0osS0FBSyxFQUFFLENBQUMsRUFBQyxHQUFHLEVBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDO2FBQ3ZDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO0tBQzFCO0lBQ0QscUJBQXFCLEVBQUUsSUFBSTtDQUM5QixDQUFDLENBQUM7QUFFSCxJQUFBLHVCQUFhLEVBQUMsU0FBUyxFQUFFO0lBQ3JCLE1BQU0sRUFBRSwyQkFBMkI7SUFDbkMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU87SUFDaEQsTUFBTSxFQUFFO1FBQ0osS0FBSyxFQUFFLENBQUMsRUFBQyxHQUFHLEVBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFP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
|