update examples

This commit is contained in:
Joel Wetzell
2025-12-04 17:46:58 -06:00
parent 98a458ca43
commit 0b20f3ffb9
3 changed files with 41 additions and 39 deletions
+36 -34
View File
@@ -23,62 +23,64 @@ func main() {
VersionLow: 0,
}
trackers := []psn.Tracker{}
trackers := []*psn.Tracker{}
trackers = append(trackers, psn.Tracker{Id: 0, Name: "Sun"})
trackers = append(trackers, psn.Tracker{Id: 1, Name: "Mercury"})
trackers = append(trackers, psn.Tracker{Id: 2, Name: "Venus"})
trackers = append(trackers, psn.Tracker{Id: 3, Name: "Earth"})
trackers = append(trackers, psn.Tracker{Id: 4, Name: "Mars"})
trackers = append(trackers, psn.Tracker{Id: 5, Name: "Jupiter"})
trackers = append(trackers, psn.Tracker{Id: 6, Name: "Saturn"})
trackers = append(trackers, psn.Tracker{Id: 7, Name: "Uranus"})
trackers = append(trackers, psn.Tracker{Id: 8, Name: "Neptune"})
trackers = append(trackers, psn.Tracker{Id: 9, Name: "Pluto"})
trackers = append(trackers, &psn.Tracker{Id: 0, Name: "Sun"})
trackers = append(trackers, &psn.Tracker{Id: 1, Name: "Mercury"})
trackers = append(trackers, &psn.Tracker{Id: 2, Name: "Venus"})
trackers = append(trackers, &psn.Tracker{Id: 3, Name: "Earth"})
trackers = append(trackers, &psn.Tracker{Id: 4, Name: "Mars"})
trackers = append(trackers, &psn.Tracker{Id: 5, Name: "Jupiter"})
trackers = append(trackers, &psn.Tracker{Id: 6, Name: "Saturn"})
trackers = append(trackers, &psn.Tracker{Id: 7, Name: "Uranus"})
trackers = append(trackers, &psn.Tracker{Id: 8, Name: "Neptune"})
trackers = append(trackers, &psn.Tracker{Id: 9, Name: "Pluto"})
orbits := []float32{1.0, 88.0, 224.7, 365.2, 687, 4332, 10760, 30700, 60200, 90600}
distFromSun := []float32{0, 0.58, 1.08, 1.5, 2.28, 7.78, 14.29, 28.71, 45.04, 59.13}
timestamp := 0
lastInfoMillis := time.Now().UnixMilli()
lastDataMillis := time.Now().UnixMilli()
dataTicker := time.NewTicker(time.Millisecond * 16)
infoTicker := time.NewTicker(time.Millisecond * 1000)
for {
if (time.Now().UnixMilli() - lastInfoMillis) > 500 {
slog.Info("Sending Info Packets")
infoPackets := encoder.GetInfoPackets(uint64(timestamp), trackers)
for _, infoPacket := range infoPackets {
client.Write(infoPacket)
}
lastInfoMillis = time.Now().UnixMilli()
}
if (time.Now().UnixMilli() - lastDataMillis) > 5 {
for index, orbit := range orbits {
go func() {
for {
for index, tracker := range trackers {
orbit := orbits[index]
a := 1.0 / orbit
b := distFromSun[index]
x := timestamp
cb := math.Cos(float64(a*float32(x))) * float64(b)
sb := math.Sin(float64(a*float32(x))) * float64(b)
trackers[index].SetPos(float32(sb), 0, float32(cb))
trackers[index].SetSpeed(a*float32(cb), 0, -a*float32(sb))
trackers[index].SetOri(0, float32(x)/1000.0, 0)
trackers[index].SetAccel(-a*a*float32(sb), 0, -a*a*float32(cb))
trackers[index].SetTrgtPos(3, 14, 16)
trackers[index].SetStatus(float32(index) / 10.0)
trackers[index].SetTimestamp(uint64(timestamp))
tracker.SetPos(float32(sb), 0, float32(cb))
tracker.SetSpeed(a*float32(cb), 0, -a*float32(sb))
tracker.SetOri(0, float32(x)/1000.0, 0)
tracker.SetAccel(-a*a*float32(sb), 0, -a*a*float32(cb))
tracker.SetTrgtPos(3, 14, 16)
tracker.SetStatus(float32(index) / 10.0)
tracker.SetTimestamp(uint64(timestamp))
}
time.Sleep(time.Millisecond * 16)
}
}()
for {
select {
case <-infoTicker.C:
slog.Info("Sending Info Packets")
infoPackets := encoder.GetInfoPackets(uint64(timestamp), trackers)
for _, infoPacket := range infoPackets {
client.Write(infoPacket)
}
case <-dataTicker.C:
slog.Info("Sending Data Packets")
dataPackets := encoder.GetDataPackets(uint64(timestamp), trackers)
for _, DataPacket := range dataPackets {
client.Write(DataPacket)
}
lastDataMillis = time.Now().UnixMilli()
timestamp += 1
}
}
}