Add script to serialize the JSON configuration as binary.
This commit is contained in:
1
model/.gitignore
vendored
Normal file
1
model/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
uhk-config.bin
|
||||
45
model/BufferWriter.js
Normal file
45
model/BufferWriter.js
Normal file
@@ -0,0 +1,45 @@
|
||||
var BufferWriter = function(bufferParam) {
|
||||
var offset = 0;
|
||||
self = {};
|
||||
var buffer = bufferParam;
|
||||
|
||||
self.int8 = function(value) {
|
||||
buffer.writeInt8(value, offset);
|
||||
offset += 1;
|
||||
};
|
||||
|
||||
self.uint8 = function(value) {
|
||||
buffer.writeUInt8(value, offset);
|
||||
offset += 1;
|
||||
};
|
||||
|
||||
self.int16 = function(value) {
|
||||
buffer.writeInt16LE(value, offset);
|
||||
offset += 2;
|
||||
};
|
||||
|
||||
self.uint16 = function(value) {
|
||||
buffer.writeUInt16LE(value, offset);
|
||||
offset += 2;
|
||||
};
|
||||
|
||||
self.int32 = function(value) {
|
||||
buffer.writeInt32LE(value, offset);
|
||||
offset += 4;
|
||||
};
|
||||
|
||||
self.uint32 = function(value) {
|
||||
buffer.writeUInt32LE(value, offset);
|
||||
offset += 4;
|
||||
};
|
||||
|
||||
self.string = function(string) {
|
||||
buffer.write(string, offset, string.length, 'ascii');
|
||||
offset += string.length;
|
||||
self.uint8(0);
|
||||
};
|
||||
|
||||
return self;
|
||||
};
|
||||
|
||||
module.exports = BufferWriter;
|
||||
17
model/serializeConfig.js
Executable file
17
model/serializeConfig.js
Executable file
@@ -0,0 +1,17 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
var fs = require('fs');
|
||||
var BufferWriter = require('./BufferWriter');
|
||||
|
||||
var buffer = new Buffer(1000);
|
||||
buffer.fill(0);
|
||||
var writer = BufferWriter(buffer);
|
||||
|
||||
var uhkConfig = JSON.parse(fs.readFileSync('uhk-config.json'));
|
||||
var keyActions = uhkConfig.keymaps[0].modules[0].layers[0].keyActions;
|
||||
|
||||
writer.uint8(0x66);
|
||||
writer.uint16(0x1122);
|
||||
writer.string("Hi there!");
|
||||
writer.uint8(0x66);
|
||||
fs.writeFileSync('uhk-config.bin', buffer);
|
||||
Reference in New Issue
Block a user