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