🎓 Expand servo buffers to Int16
This commit is contained in:
@@ -37,8 +37,8 @@ let canvas: HTMLCanvasElement, streamCanvas: HTMLCanvasElement, stream: HTMLImag
|
|||||||
|
|
||||||
let context: CanvasRenderingContext2D, texture: CanvasTexture
|
let context: CanvasRenderingContext2D, texture: CanvasTexture
|
||||||
|
|
||||||
let modelAngles:number[] | Int8Array = new Array(12).fill(0)
|
let modelAngles:number[] | Int16Array = new Array(12).fill(0)
|
||||||
let modelTargetAngles:number[] | Int8Array = new Array(12).fill(0)
|
let modelTargetAngles:number[] | Int16Array = new Array(12).fill(0)
|
||||||
|
|
||||||
let modelBodyAngles:EulerAngle = {omega: 0, phi: 0, psi: 0 }
|
let modelBodyAngles:EulerAngle = {omega: 0, phi: 0, psi: 0 }
|
||||||
let modelTargeBodyAngles:EulerAngle = {omega: 0, phi: 0, psi: 0 }
|
let modelTargeBodyAngles:EulerAngle = {omega: 0, phi: 0, psi: 0 }
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ export const isConnected = writable(false)
|
|||||||
|
|
||||||
export const dataBuffer = writable(new Float32Array(13))
|
export const dataBuffer = writable(new Float32Array(13))
|
||||||
|
|
||||||
export const servoBuffer:Writable<Int8Array|number[]> = writable(new Int8Array(12))
|
export const servoBuffer:Writable<Int16Array|number[]> = writable(new Int16Array(12))
|
||||||
|
|
||||||
export const data = writable();
|
export const data = writable();
|
||||||
|
|
||||||
@@ -28,7 +28,7 @@ export const connect = (url:string) => {
|
|||||||
const buffer = []
|
const buffer = []
|
||||||
buffer[0] = 1
|
buffer[0] = 1
|
||||||
buffer.push(...data)
|
buffer.push(...data)
|
||||||
_socket.send(new Int8Array(buffer))
|
_socket.send(new Int16Array(buffer))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -24,7 +24,7 @@ class Servo : public Adafruit_PWMServoDriver {
|
|||||||
|
|
||||||
Servo() : Adafruit_PWMServoDriver() {}
|
Servo() : Adafruit_PWMServoDriver() {}
|
||||||
|
|
||||||
void SetAngles(int8_t* angle) {
|
void SetAngles(int16_t* angle) {
|
||||||
for(size_t i = 0; i < 12; i++)
|
for(size_t i = 0; i < 12; i++)
|
||||||
servo_angles[i] = angle[i];
|
servo_angles[i] = angle[i];
|
||||||
updateServos();
|
updateServos();
|
||||||
@@ -108,7 +108,7 @@ class Servo : public Adafruit_PWMServoDriver {
|
|||||||
|
|
||||||
position_t spot_position = {.omega=0,.phi=0,.psi=0,.xm=-40,.ym=-170, .zm=0, .set=1};
|
position_t spot_position = {.omega=0,.phi=0,.psi=0,.xm=-40,.ym=-170, .zm=0, .set=1};
|
||||||
position_t goal_position = {0,};
|
position_t goal_position = {0,};
|
||||||
int8_t servo_angles[12]{0,};
|
int16_t servo_angles[12]{0,};
|
||||||
};
|
};
|
||||||
|
|
||||||
extern DRAM_ATTR std::unique_ptr<Servo> g_ptrServo;
|
extern DRAM_ATTR std::unique_ptr<Servo> g_ptrServo;
|
||||||
|
|||||||
+1
-1
@@ -321,7 +321,7 @@ void handleWebSocketBuffer(uint8_t* data) {
|
|||||||
if(data[0] == 0) g_ptrServo->setBody(data[1], data[2], data[3], data[4], data[5], data[6]);
|
if(data[0] == 0) g_ptrServo->setBody(data[1], data[2], data[3], data[4], data[5], data[6]);
|
||||||
else if(data[0] == 1) {
|
else if(data[0] == 1) {
|
||||||
log_i("About to update all servos");
|
log_i("About to update all servos");
|
||||||
int8_t* angles = (int8_t*)data+1;
|
int16_t* angles = (int16_t*)data+1;
|
||||||
|
|
||||||
g_ptrServo->SetAngles(angles);
|
g_ptrServo->SetAngles(angles);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user