Hi,
hab nun ein Script gebastelt welches mir den Sonnenstand auf den Bus sendet um dann mit dem Linknx die Beschattung zusteuern.
Leider bekomm ich nicht die richtige Werte ins Linknx...
Damit halbwegs der richtige Wert im Linknx auftaucht muss ich diese Rechung mit 1.406 machen.
Kann jemand mir weiterhelfen wie ich die Daten so nach HEX umwandele dass die Werte richtig auf den Bus bzw Linknx gehen?
Gruss,
Chris
hab nun ein Script gebastelt welches mir den Sonnenstand auf den Bus sendet um dann mit dem Linknx die Beschattung zusteuern.
Leider bekomm ich nicht die richtige Werte ins Linknx...
Code:
#!/usr/bin/perl my ($lat, $lon, $elev) = ( 0.111111, # breitengrad in radians 0.1111, # läengrad in radians 511 / 1000 # Höhe über normalnull in meter ); use Astro::Coord::ECI; use Astro::Coord::ECI::Sun; use Astro::Coord::ECI::TLE; use Astro::Coord::ECI::Utils qw{rad2deg deg2rad}; my $time = time (); my $loc = Astro::Coord::ECI->geodetic($lat, $lon, $elev); my $sun = Astro::Coord::ECI::Sun->universal($time); my ($azimuth, $elevation, $range) = $loc->azel($sun); @args = ("/usr/bin/groupwrite", "ip:127.0.0.1", "15/0/0", sprintf("%02X", sprintf("%.0f", rad2deg($elevation)/1.406))); system(@args) == 0 or die "system @args failed: $?"; @args = ("/usr/bin/groupwrite", "ip:127.0.0.1", "15/0/1", sprintf("%02X", sprintf("%.0f", rad2deg($azimuth)/1.406))); system(@args) == 0 or die "system @args failed: $?"; print "Azimuth: " . rad2deg($azimuth) . " Grad\nElevation: ". rad2deg($elevation)." Grad\n";
Kann jemand mir weiterhelfen wie ich die Daten so nach HEX umwandele dass die Werte richtig auf den Bus bzw Linknx gehen?
Gruss,
Chris
Kommentar