Dear list,I have some trouble with aprs. We are on vacation in south France. The coordinate are: 44.935953,0.134590 but pskmails send data like "Raw packet: DM1DZ>PSKAPR,TCPIP*,qAS,PI4TUE:!4456.15N/07618.00EUDM1DZ" which is 120.8 miles northwest of ALMA-ATA, KAZAKHSTAN :) If I drive some kilometers to east and lon becomes > 0.17 everything looks fine.
So I looks at the source and found these lines in psk_arq.pl: $aprs_lon = (($lon - int($lon)) * 60) + int($lon)* 100; if (int($lon) == 0) { $aprs_lon = "000" . $aprs_lon; } elsif (int($lon) < 10) { $aprs_lon = "00" . $aprs_lon; } elsif (int($lon) < 100) { $aprs_lon = "0" . $aprs_lon; } else { $aprs_lon = $aprs_lon; }I'm no perl expert but it looks like 0.13 get translated to 8.07 (which is correct but causing the problem) and 0.17 is translated to something >10 which is working fine.
I made this changes to the source but I'm not sure if this is correct. Perhaps someone can have a look:
dzarth@axa:/usr/local/share/pskmail$ diff psk_arq.pl /home/dzarth/pskmail-1.1/psk_arq.pl
52c52 < if (! -e "/usr/local/bin/paq8l") { ---
if (! -e "/usr/bin/paq8l") {
2536,2537c2536 < my $gpsd_running = `ps aux | grep 'gpsd' | grep -v grep`;< #not working on debian (gpsd -P <pidfile> ... my $gpsd_running = `ps aux | grep 'gpsd /dev' | grep -v grep`;
---
my $gpsd_running = `ps aux | grep 'gpsd /dev' | grep -v grep`;
3902,3906c3901 < if (int($aprs_lon) == 0) {< $aprs_lon = "00000" . $aprs_lon; < } elsif (int($aprs_lon) < 10) { < $aprs_lon = "0000" . $aprs_lon; < } elsif (int($aprs_lon) < 100) {
---
if (int($lon) == 0) {
3907a3903,3906
} elsif (int($lon) < 10) {$aprs_lon = "00" . $aprs_lon;} elsif (int($lon) < 100) {$aprs_lon = "0" . $aprs_lon;
Thank you very much in advance, vy 73 de Dirk F/DM1DZ