fix; wip for prefs

This commit is contained in:
Alban 2024-04-04 18:58:37 +02:00
parent e1f2ca1de1
commit 573a531ef1
4 changed files with 78 additions and 30 deletions

View file

@ -28,7 +28,7 @@ class Schedule {
// Load from binary data
var view = new DataView(buffer);
for (var i = 0; i < 24; i++) {
this.schedule[i] = view.getUint16(i * 2, true);
this.schedule[i] = view.getUint16(i * 2);
}
};
@ -102,8 +102,7 @@ class Schedule {
var buffer = new ArrayBuffer(24 * 2);
var view = new DataView(buffer);
for (var i = 0; i < 24; i++) {
view.setUint8( i*2 , (this.schedule[i] & 65280) >> 8, true);
view.setUint8( i*2 + 1, this.schedule[i] & 255 , true);
view.setUint16( i*2, this.schedule[i]);
}
return buffer;
};

View file

@ -37,7 +37,7 @@ def binary_stream_to_ints(binary_data):
integers = []
# Every 32-bit integer is represented by 2 bytes
for i in range(0, len(binary_data), 2):
integers.append(int.from_bytes(binary_data[i:i + 2]) & 0b111111111111) # Extract 32-bit value
integers.append(int.from_bytes(binary_data[i:i + 2], byteorder='big') & 0b111111111111) # Extract 32-bit value
return integers
@ -53,7 +53,7 @@ def get_schedule(plug_id):
# Ensure integer is in 12-bit range
integer &= 0b111111111111
# Convert to bytes and append
yield integer.to_bytes(2) # 2 bytes per integer
yield integer.to_bytes(2, byteorder='big') # 2 bytes per integer
# Return as a binary stream
return Response(ints_to_binary_stream(schedule), status=200, content_type='application/octet-stream')