-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLogMessage.js
More file actions
117 lines (112 loc) · 2.71 KB
/
LogMessage.js
File metadata and controls
117 lines (112 loc) · 2.71 KB
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
'use strict';
var bufutil = require('./bufutil');
var LOGMESSAGE = {
0x0001: {
name: 'recv packet',
length: -1,
log: 2,
data: [
{name: 'len', size: 2, type: 'int', log: 1},
{name: 'ID', size: 4, type: 'int', log: 1},
{name: 'data', size: -1, type: 'byte', log: 1},
],
},
0x0002: {
name: 'send packet',
length: -1,
log: 2,
data: [
{name: 'len', size: 2, type: 'int', log: 1},
{name: 'ID', size: 4, type: 'int', log: 1},
{name: 'data', size: -1, type: 'byte', log: 1},
],
},
0x0003: {
name: 'log recv packet',
length: -1,
log: 2,
data: [
{name: 'len', size: 2, type: 'int', log: 1},
{name: 'time', size: 4, type: 'int', log: 1},
{name: 'frac', size: 2, type: 'int', log: 1},
{name: 'data', size: -1, type: 'byte', log: 1},
],
},
0x0004: {
name: 'log send packet',
length: -1,
log: 2,
data: [
{name: 'len', size: 2, type: 'int', log: 1},
{name: 'time', size: 4, type: 'int', log: 1},
{name: 'frac', size: 2, type: 'int', log: 1},
{name: 'data', size: -1, type: 'byte', log: 1},
],
},
0x0005: {
name: 'send debug',
length: -1,
log: 2,
data: [
{name: 'len', size: 2, type: 'int', log: 1},
{name: 'ID', size: 4, type: 'int', log: 1},
{name: 'data', size: -1, type: 'byte', log: 1},
],
},
0x0006: {
name: 'log debug packet',
length: -1,
log: 2,
data: [
{name: 'len', size: 2, type: 'int', log: 1},
{name: 'time', size: 4, type: 'int', log: 1},
{name: 'frac', size: 2, type: 'int', log: 1},
{name: 'data', size: -1, type: 'byte', log: 1},
],
},
0x0007: {
name: 'log packet',
length: -1,
log: 2,
data: [
{name: 'len', size: 2, type: 'int', log: 1},
{name: 'message', size: -1, type: 'byte', log: 1},
],
},
}
for(var i in LOGMESSAGE){
var packetDef = LOGMESSAGE[i];
packetDef.datamap = {};
var startIndex = 2;
for(var i = 0; i < packetDef.data.length; i++){
var data = packetDef.data[i];
var endIndex = data.size > 0 ? startIndex + data.size : -1;
packetDef.datamap[data.name] = {index: i, start: startIndex, end: endIndex, type: data.type, log: data.log};
startIndex = endIndex;
}
}
function CreateLogPacketBuffer(header, data, len){
if(LOGMESSAGE.hasOwnProperty(header)){
var packetDef = LOGMESSAGE[header];
var length = packetDef.length;
if(packetDef.length < 2 && len !== undefined && len > 1){
length = len;
}
for(var i = 0; i < length; i++){
var buf = new Buffer(length);
buf[0] = header & 0xff;
buf[1] = (header >> 8) & 0xff;
for(var i = 2; i < length; i++){
buf[i] = 0;
}
return bufutil._CreatePacket(buf, packetDef, data);
}
}
else{
return null;
}
}
module.exports = {
'LOGMESSAGE': LOGMESSAGE,
'CreateLogPacketBuffer': CreateLogPacketBuffer,
}