Skip to content

Commit 2d7e0ce

Browse files
committed
chore: remove unnessesary buttons
feat: add untested logreader
1 parent f0ca4ea commit 2d7e0ce

2 files changed

Lines changed: 157 additions & 20 deletions

File tree

control.go

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -50,16 +50,6 @@ func controlTab(App fyne.App, MainWindow fyne.Window) fyne.CanvasObject {
5050
resetButton := widget.NewButton("Reset", func() { go reset(App) })
5151
deployParachuteButton := widget.NewButton("Deploy parachute", func() { go deployParachute(App) })
5252
deployStageButton := widget.NewButton("Deploy stage", func() { go deployStage(App) })
53-
startLoggingButton := widget.NewButton("Start logging", func() { go startLogging(App) })
54-
stopLoggingButton := widget.NewButton("Stop logging", func() { go stopLogging(App) })
55-
recalibrateGyroButton := widget.NewButton("Recalibrate gyro", func() { go recalibrateGyro(App) })
56-
recalibrateAccelerometerButton := widget.NewButton("Recalibrate accelerometer", func() { go recalibrateAccelerometer(App) })
57-
recalibrateBarometerButton := widget.NewButton("Recalibrate barometer", func() { go recalibrateBarometer(App) })
58-
resetMaxButton := widget.NewButton("Reset max", func() { go resetMax(App) })
59-
resetMinButton := widget.NewButton("Reset min", func() { go resetMin(App) })
60-
resetGyroButton := widget.NewButton("Reset gyro", func() { go resetGyro(App) })
61-
resetAccelerometerButton := widget.NewButton("Reset accelerometer", func() { go resetAccelerometer(App) })
62-
resetBarometerButton := widget.NewButton("Reset barometer", func() { go resetBarometer(App) })
6353
getLogButton := widget.NewButton("Get log", func() { go getLog(App) })
6454

6555
ipEditButton := widget.NewButtonWithIcon("", theme.DocumentCreateIcon(), func() {
@@ -90,16 +80,6 @@ func controlTab(App fyne.App, MainWindow fyne.Window) fyne.CanvasObject {
9080
resetButton,
9181
deployParachuteButton,
9282
deployStageButton,
93-
startLoggingButton,
94-
stopLoggingButton,
95-
recalibrateGyroButton,
96-
recalibrateAccelerometerButton,
97-
recalibrateBarometerButton,
98-
resetMaxButton,
99-
resetMinButton,
100-
resetGyroButton,
101-
resetAccelerometerButton,
102-
resetBarometerButton,
10383
getLogButton,
10484
}
10585

logReader.go

Lines changed: 157 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,157 @@
1+
package main
2+
3+
import (
4+
"encoding/binary"
5+
"fmt"
6+
"os"
7+
"time"
8+
)
9+
10+
type LogHeader struct {
11+
NextPageAddress uint32
12+
PagesPerTick uint16
13+
TickDuration uint16
14+
StartTime int64
15+
}
16+
17+
type BaroConfig struct {
18+
PressureOversampleCount uint8
19+
TemperatureOversampleCount uint8
20+
AltitudeScaleFactor float32
21+
SeaLevelPressure float32
22+
}
23+
24+
type IMUConfig struct {
25+
FifoODR uint16
26+
GyroODR uint16
27+
AccelerometerODR uint16
28+
GyroDecimation uint8
29+
AccelerometerDecimation uint8
30+
TemperatureSensorDecimation uint8
31+
GyroFullRangeScale uint16
32+
AccelerometerFullRangeScale uint16
33+
}
34+
35+
type TickData struct {
36+
TimeSinceBoot int64
37+
RocketState uint32
38+
AltitudeRelSeaLevel float32
39+
AltitudeRelGround float32
40+
Pressure float32
41+
Temperature float32
42+
IMUData IMUData
43+
}
44+
45+
type IMUData struct {
46+
TemperatureAtTickStart int16
47+
AngularVelocity [3]int16
48+
Acceleration [3]int16
49+
Alignment uint16
50+
FifoPatternIndex uint16
51+
FifoValueSampleCount uint16
52+
FifoValues []int16
53+
}
54+
55+
func read() {
56+
file, err := os.Open("logfile.bin")
57+
if err != nil {
58+
fmt.Println("Error opening file:", err)
59+
return
60+
}
61+
defer func(file *os.File) {
62+
err := file.Close()
63+
if err != nil {
64+
fmt.Println("Error closing file:", err)
65+
}
66+
}(file)
67+
68+
var header LogHeader
69+
err = binary.Read(file, binary.LittleEndian, &header)
70+
if err != nil {
71+
fmt.Println("Error reading header:", err)
72+
return
73+
}
74+
75+
var baroConfig BaroConfig
76+
err = binary.Read(file, binary.LittleEndian, &baroConfig)
77+
if err != nil {
78+
fmt.Println("Error reading baro config:", err)
79+
return
80+
}
81+
82+
var imuConfig IMUConfig
83+
err = binary.Read(file, binary.LittleEndian, &imuConfig)
84+
if err != nil {
85+
fmt.Println("Error reading IMU config:", err)
86+
return
87+
}
88+
89+
fmt.Printf("Log Start Time: %s\n", time.Unix(0, header.StartTime*int64(time.Millisecond)).Format(time.RFC3339))
90+
fmt.Printf("Tick Duration: %d ms\n", header.TickDuration)
91+
fmt.Printf("Baro Config: %+v\n", baroConfig)
92+
fmt.Printf("IMU Config: %+v\n", imuConfig)
93+
94+
for {
95+
var tickData TickData
96+
err = binary.Read(file, binary.LittleEndian, &tickData.TimeSinceBoot)
97+
if err != nil {
98+
break
99+
}
100+
err = binary.Read(file, binary.LittleEndian, &tickData.RocketState)
101+
if err != nil {
102+
break
103+
}
104+
err = binary.Read(file, binary.LittleEndian, &tickData.AltitudeRelSeaLevel)
105+
if err != nil {
106+
break
107+
}
108+
err = binary.Read(file, binary.LittleEndian, &tickData.AltitudeRelGround)
109+
if err != nil {
110+
break
111+
}
112+
err = binary.Read(file, binary.LittleEndian, &tickData.Pressure)
113+
if err != nil {
114+
break
115+
}
116+
err = binary.Read(file, binary.LittleEndian, &tickData.Temperature)
117+
if err != nil {
118+
break
119+
}
120+
121+
var imuData IMUData
122+
err = binary.Read(file, binary.LittleEndian, &imuData.TemperatureAtTickStart)
123+
if err != nil {
124+
break
125+
}
126+
err = binary.Read(file, binary.LittleEndian, &imuData.AngularVelocity)
127+
if err != nil {
128+
break
129+
}
130+
err = binary.Read(file, binary.LittleEndian, &imuData.Acceleration)
131+
if err != nil {
132+
break
133+
}
134+
err = binary.Read(file, binary.LittleEndian, &imuData.Alignment)
135+
if err != nil {
136+
break
137+
}
138+
err = binary.Read(file, binary.LittleEndian, &imuData.FifoPatternIndex)
139+
if err != nil {
140+
break
141+
}
142+
err = binary.Read(file, binary.LittleEndian, &imuData.FifoValueSampleCount)
143+
if err != nil {
144+
break
145+
}
146+
147+
imuData.FifoValues = make([]int16, imuData.FifoValueSampleCount)
148+
err = binary.Read(file, binary.LittleEndian, &imuData.FifoValues)
149+
if err != nil {
150+
break
151+
}
152+
153+
tickData.IMUData = imuData
154+
155+
fmt.Printf("Tick Data: %+v\n", tickData)
156+
}
157+
}

0 commit comments

Comments
 (0)