duddsig Posted January 11, 2008 Author Share Posted January 11, 2008 Nun ich hatte die Haken in der oberen rechten Ecke nicht gesetzt, danach ging es. Ist sicher eine sehr gute Hilfe wenn man eine Schüssel von Hand auf einen SAT ausrichten will den man nicht kennt. Vor allem das mit der Sonne ist sicher gut für Camper. Werde das Tool deshalb gut aufheben. Allerdings ist der Rechner von der Satzentrale in der Lage mir direkt die Stellung der Motorachse auszugeben (was ich ja für die Berchnung für DVBV benötige). Wenn er jetzt noch gleich die diseqc commands augeben täte, und das ganze noch offline täte, täte man sagen können das ding wäre perfekt. Jetzt hat man halt das Problem, daß man immer I-Net braucht. Aber man hat ja noch das alte DVB. Ist halt nur von der Bedienung her etwas kryptisch. Gruß ddsg Quote Link to comment
Darwin Posted January 13, 2008 Share Posted January 13, 2008 Ich habe hier auf den neuen Testtreiber der 5er-Generation (5.0.0.12) umgestellt! Im Gegensatz zur 5.0.0.6 funktioniert die DiSEqC - Motorsteuerung damit wieder, soweit ich es bisher (USALS im Osten, CommandString im Westen) probiert habe. Quote Link to comment
hackbart Posted January 14, 2008 Share Posted January 14, 2008 Ich finde nicht wirklich den Fehler in meiner Berechnung: {$APPTYPE console} program Calculator; function Tan(const X: Extended): Extended; begin result := Sin(X) / Cos(X); end; function ArcCos(const X: Extended): Extended; begin result := ArcTan(Sqrt(1 - Sqr(x)) / x); end; function IntToHex(Value: Byte): string; const Hex = '0123456789ABCDEF'; begin result := Hex[Value shr 4 + 1] + Hex[Value mod 16 + 1]; end; function DiSEqCGotoX(Latitude, Longitude, SatLong: Double; out Azimuth, Elevation: Double): string; const gotoXTable: array[0..9] of Byte = ($00, $02, $03, $05, $06, $08, $0A, $0B, $0D, $0E); var x: double; SatHourangle: double; tmp: integer; p1, p2: integer; begin if satlong < 180 then satlong := -satlong;// East azimuth := PI + arctan(tan((satlong - Longitude) * PI / 180) / sin(Latitude * PI / 180)); x := arccos(cos((satlong - Longitude) * PI / 180) * cos(Latitude * PI / 180)); elevation := arctan((cos(x) - 0.1513) / sin(x)); SatHourangle := 180 + arctan((-cos(elevation) * sin(azimuth)) / (sin(elevation) * cos(Latitude * PI / 180) - cos(elevation) * sin(Latitude * PI / 180) * cos(azimuth))) * 180 / PI; azimuth := azimuth * 180 / PI; elevation := elevation * 180 / PI; tmp := round(abs(180 - SatHourangle) * 10); tmp := (tmp div 10) * $10 + gotoXTable[tmp mod 10]; p2 := (tmp mod $0100); p1 := (tmp div $0100); if (SatHourangle < 180) then p1 := p1 or $E0 else p1 := p1 or $D0; result := 'E0 31 6E ' + IntToHex(p1) + ' ' + IntToHex(p2); end; function GetValue(Value: string; Default: Double): Double; var i: integer; begin val(Value, result, i); if i <> 0 then result := Default; end; var Latitude, Longitude, SatLong, Azimuth, Elevation: Double; begin Latitude := 51.0; Longitude := -11.0; // - is east Satlong := 19.2; if Paramcount = 3 then begin Latitude := GetValue(Paramstr(1), Latitude); Longitude := GetValue(Paramstr(2), Longitude); Satlong := GetValue(Paramstr(3), SatLong); end; writeln(DiSEqCGotoX(Latitude, Longitude, SatLong, Azimuth, Elevation)); writeln('Azimut: ', Azimuth); writeln('Elevation; ', Elevation); readln; end. Calculator.zip Quote Link to comment
Darwin Posted January 14, 2008 Share Posted January 14, 2008 (edited) if (SatHourangle < 180) then p1 := p1 or $E0 <1110> else p1 := p1 or $D0;<1101> Ohne groß die Berechnung nachzuvollziehen: Wo hast Du das ORen mit 0xD0 für die Westpositionen her? 0xE0 (als Flags?) für East lese ich imperativ auch aus meinen Ergebnissen, die Westpositionen aus AltDVB erscheinen bei mir aber immer als reine Dez/Hex Wandlung ohne Nachbereitung. Wenn das Command 0x6E nur eins der ersten beiden Bits (MSB tippe ich mal) oder die ersten drei Bits als Boolean für E/W auswertet dürfte das der Fehler sein! Edited January 14, 2008 by Darwin Quote Link to comment
Derrick Posted January 14, 2008 Share Posted January 14, 2008 Ich finde nicht wirklich den Fehler in meiner Berechnung ..hmm, ich weiss nicht, was die calculator.exe bezwecken soll. Zumindest weiss ich nicht, wie man da was eingeben kann. Die werte für 19E hat ja nie jemand bestritten. Positionen im westen funktionieren nicht !! Für den rotor ist alleine der stundenwinkel wichtig. Der basiert aber auf azimut und elevation. Wenn im westen dieselben werte wie im osten generiert werden, ist gleich am anfang was falsch. Für den azimut braucht man den differenzwinkel zwischen sat-longitude und der longitude des eigenen standorts. Der betrag der 1. berechnung wird bei ost-sats von von 180° subtrahiert und für west-sats addiert. Um was sehen zu können, bedarf es eines logs. Ich kann zwar mit dem diseqc-analyzer die befehlen zu fuss bestimmen, aber das ist aufwendig. Zumindest habe ich festgestellt, was ich weiter vorne in diesem thread beschrieben habe. Westpositionen sind eine wiederholung der ostpositonen. Z.B. kommt bei 45°E und 45°W dasselbe raw command raus. Da sich nichts geändert hat, brauch ich auch nicht wieder zu checken.. @Darwin, das ORen mit 0xD0 für die Westpositionen kannst du auch bei altdvb beobachten. Allerdings nur für den STAB-motor. Das bedeutet, dass auch beim DVBViewer eine wahlmöglichkeit zwischen den fabrikaten hinzugefügt werden muss. Warum das so ist, weiss ich nicht. Muss man ja auch nicht unbedingt Quote Link to comment
Darwin Posted January 14, 2008 Share Posted January 14, 2008 wie man da was eingeben kann Pascal macht die Parameter-Übergabe bei Console-Apps per "ParamStr"-Array: >calculator latitude longitude satlong Quote Link to comment
Derrick Posted January 14, 2008 Share Posted January 14, 2008 ja danke Damit kommt man der vorzeichenwurstelei langsam auf die spur östliche positionen (<180°) wird als negativ definiert. Das klappt auch soweit. Was muss man dann aber für westliche positionen (>180°) eingeben? Durch trial & error habe ich das nun herausgefunden. Man muss satlong negativ eingeben Hier ein beispiel für den mittelpunkt des hackbartschen universums (Erfurt ). Einmal für 30E und einmal für 30W. Calculator 51.0 -11.0 30.0 E0 31 6E E1 50 Azimut: 1.56103455611073E+0002 Elevation; 2.89036957390317E+0001 Calculator 51.0 -11.0 -30.0 E0 31 6E D2 CE Azimut: 2.28203153370823E+0002 Elevation; 2.01927333273270E+0001 ..zumindest sehr gewöhnungsbedürtig und aus den inis so nicht herauszulesen. Quote Link to comment
Derrick Posted January 15, 2008 Share Posted January 15, 2008 ..hatte ich vergessen. Mit einer kleinen änderung könnten auch die inis im progdvb-format verwendet werden. jetzt: if satlong < 180 then satlong := -satlong;// East geändert: if satlong > 180 then satlong := satlong-360;// West satlong := -satlong Der winkel bleibt ja gleich, egal ob man 360° addiert oder subtrahiert. Wieder am beispiel 30W (Hispasat): Der ini heisst 3300.ini -> 330.0-360 = -30; anschliessend muss das vorzeichen wird für alle umgedreht werden. Dann müsste es sowohl für ost als auch für west stimmen. Quote Link to comment
Darwin Posted January 15, 2008 Share Posted January 15, 2008 Irgendwie verwirrend, daß die Vorzeichen-Relevanz für East/West bei Satposition (SatLong) und Schüsselposition (Longitude & Latitude) unterschiedlich formuliert wurde. Solche Fallen verlangen immer große Sorgfalt bei der Bereitstellung der Parameter! Quote Link to comment
duddsig Posted January 15, 2008 Author Share Posted January 15, 2008 Calculator 51.0 -11.0 30.0 E0 31 6E E1 50 Azimut: 1.56103455611073E+0002 Elevation; 2.89036957390317E+0001 Calculator 51.0 -11.0 -30.0 E0 31 6E D2 CE Azimut: 2.28203153370823E+0002 Elevation; 2.01927333273270E+0001 Hallo Derrick!! Habe den Hackbartschen Calculator jetzt auch mal ausprobiert und die Ergebnisse mal für den Calculator und AltDVB gegenübergestellt. (mit den Hackbartschen Koordinaten 51,0 und 11,0) 30° West Hispasat Calculator : E0 31 6E D2 CE 30° West Hispasat AltDVB : E0 31 6E 02 CE 30,5° Ost Arabsat Calculator : E0 31 6E D2 D6 30,5° Ost Arabsat AltDVB : E0 31 6E E1 58 Bei West fällt der Unterschied in der 4.Stelle von rechts auf. Bei Ost stimmt gar nichts mehr Habe probehalber für den Arabsat noch mal die Satzentrale und den Tachenrechner benutzt. Das Ergebnis der letzten 3Stellen ist fast identisch mit AltDVB (?1 57). Eventuell hilft das ja jemanden beim Interpretieren?? Quote Link to comment
Derrick Posted January 15, 2008 Share Posted January 15, 2008 Du musst bei AltDVB den STAB-motor wählen. Wenn du einen SG2100 hast, hast du (noch) pech gehabt... Quote Link to comment
duddsig Posted January 15, 2008 Author Share Posted January 15, 2008 Ich habe den allerdings SG2100 gewählt - das sind die Ergebnisse. Bei West sind doch die letzten 3 Stellen Identisch (die Relevanten)??!! Quote Link to comment
Darwin Posted January 17, 2008 Share Posted January 17, 2008 - Fix: DiseqC 1.2: Westposition were ignored. Mit der 3.9.2.0 klappt es nun! Thx! Quote Link to comment
duddsig Posted January 18, 2008 Author Share Posted January 18, 2008 Mit der 3.9.2.0 klappt es nun! Thx! 5°W über USALS: >>> 67 Sevices auf Anhieb, und das mit einer sehr schlecht eingestellten Anlage. Danke an alle die sich hier Gedanken gemacht haben. Besten Dank an vor allem an Christian!! Quote Link to comment
Derrick Posted January 18, 2008 Share Posted January 18, 2008 ..ja, wer sagts denn ..würde mich noch interessieren, was es mit den unterschiedlichen befehlen für Stab und SG auf sich hat. Quote Link to comment
Darwin Posted January 19, 2008 Share Posted January 19, 2008 (edited) Vielleicht die USALS - Lizenz-Bits? Der SG2100 hat schließlich keine kostenpflichtige USALS-Zertifizierung... Es funktionieren bei meinem SG2100 aber beide Varianten (6E D* ** und 6E 0* **) Edited January 19, 2008 by Darwin Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.