Fix IMU ang MAG, added MAG chart to svelte
This commit is contained in:
@@ -18,10 +18,12 @@
|
|||||||
let angleChartElement: HTMLCanvasElement
|
let angleChartElement: HTMLCanvasElement
|
||||||
let tempChartElement: HTMLCanvasElement
|
let tempChartElement: HTMLCanvasElement
|
||||||
let altitudeChartElement: HTMLCanvasElement
|
let altitudeChartElement: HTMLCanvasElement
|
||||||
|
let magnetometerChartElement: HTMLCanvasElement
|
||||||
|
|
||||||
let angleChart: Chart
|
let angleChart: Chart
|
||||||
let tempChart: Chart
|
let tempChart: Chart
|
||||||
let altitudeChart: Chart
|
let altitudeChart: Chart
|
||||||
|
let magnetometerChart: Chart
|
||||||
|
|
||||||
const getChartColors = () => {
|
const getChartColors = () => {
|
||||||
const style = getComputedStyle(document.body)
|
const style = getComputedStyle(document.body)
|
||||||
@@ -171,6 +173,37 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
magnetometerChart = new Chart(magnetometerChartElement, {
|
||||||
|
type: 'line',
|
||||||
|
data: {
|
||||||
|
datasets: [
|
||||||
|
{
|
||||||
|
label: 'Heading',
|
||||||
|
borderColor: colors.primary,
|
||||||
|
backgroundColor: colors.primary,
|
||||||
|
borderWidth: 2,
|
||||||
|
data: $imu.heading,
|
||||||
|
yAxisID: 'y'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
options: {
|
||||||
|
...baseConfig,
|
||||||
|
scales: {
|
||||||
|
...baseConfig.scales,
|
||||||
|
y: {
|
||||||
|
...baseConfig.scales.y,
|
||||||
|
title: {
|
||||||
|
display: true,
|
||||||
|
text: 'Heading [°]',
|
||||||
|
color: colors.background,
|
||||||
|
font: { size: 16, weight: 'bold' }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const updateChartData = (chart: Chart, data: number[]) => {
|
const updateChartData = (chart: Chart, data: number[]) => {
|
||||||
@@ -194,6 +227,10 @@
|
|||||||
angleChart.update('none')
|
angleChart.update('none')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($features.mag) {
|
||||||
|
updateChartData(magnetometerChart, $imu.heading)
|
||||||
|
}
|
||||||
|
|
||||||
if ($features.bmp) {
|
if ($features.bmp) {
|
||||||
updateChartData(tempChart, $imu.bmp_temp)
|
updateChartData(tempChart, $imu.bmp_temp)
|
||||||
updateChartData(altitudeChart, $imu.altitude)
|
updateChartData(altitudeChart, $imu.altitude)
|
||||||
@@ -235,6 +272,17 @@
|
|||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
|
{#if $features.mag}
|
||||||
|
<div class="w-full overflow-x-auto">
|
||||||
|
<div
|
||||||
|
class="flex w-full flex-col space-y-1 h-60"
|
||||||
|
transition:slide|local={{ duration: 300, easing: cubicOut }}
|
||||||
|
>
|
||||||
|
<canvas bind:this={magnetometerChartElement}></canvas>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
|
||||||
{#if $features.bmp}
|
{#if $features.bmp}
|
||||||
<div class="w-full overflow-x-auto">
|
<div class="w-full overflow-x-auto">
|
||||||
<div
|
<div
|
||||||
|
|||||||
@@ -106,6 +106,7 @@ class IMU : public SensorBase<IMUAnglesMsg> {
|
|||||||
_imu->setFullScale((ICM_20948_Internal_Acc | ICM_20948_Internal_Gyr), myFSS);
|
_imu->setFullScale((ICM_20948_Internal_Acc | ICM_20948_Internal_Gyr), myFSS);
|
||||||
if (_imu->status != ICM_20948_Stat_Ok){ return false; }
|
if (_imu->status != ICM_20948_Stat_Ok){ return false; }
|
||||||
// TODO: Setup low pass filter config
|
// TODO: Setup low pass filter config
|
||||||
|
_msg.success = true;
|
||||||
#endif
|
#endif
|
||||||
return _msg.success;
|
return _msg.success;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ class Magnetometer : public SensorBase<MagnetometerMsg> {
|
|||||||
|
|
||||||
_mag->startupMagnetometer();
|
_mag->startupMagnetometer();
|
||||||
if (_mag->status != ICM_20948_Stat_Ok){ return false; }
|
if (_mag->status != ICM_20948_Stat_Ok){ return false; }
|
||||||
|
_msg.success = true;
|
||||||
#elif FT_ENABLED(USE_HMC5883)
|
#elif FT_ENABLED(USE_HMC5883)
|
||||||
_msg.success = _mag.begin();
|
_msg.success = _mag.begin();
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user