Portál AbcLinuxu, 4. května 2025 07:37
nnnóóóóóóóóó jestli to jakoby nemáš nějakej teleskop na šmírování nahatejch dětí ;D ;D tak stellarium používá LX200 teleskopovej komunikační protokol hele :D ;D
tutorial stellarium + arduino třeba tady hele :D ;D
While connected to Arduino, periodically Stellarium sends 2 strings: ":GR#" - ready to receive RA and ":GD#" - to receive DEC. The code checks this strings and then sends, to the serial port, the corresponding string with the current right ascension (RA) and declination (DEC).
deg > 0 ? '+' : '-'je ternatrni operator, ktery prida znak '+', nebo '-', pokud je hodnota deg kladna, nebo zaporna. Hodnota 223 je znak pro stupne '°'.
jo :D ;D
někdo asi jako hloupě machroval nebo hoto jako nenapadlo ale myslimže je bezpečný tam misto toho čísla napsat normálně ten symbol '°' :D ;D
ternární voperátor mužeš +- chápat jakože tam je jakoby napsanej takovejdle if někde
char c = ''; if( deg > 0) { c = '+'; } else { c = '-'; } sprintf(txDEC, "%c%02d%c%02d:%02d#", c, ........
// Reports the current declination void getDeclination(Mount &scope) { const double pos = scope.getCurrentPosition().declination; const int deg = static_cast[int](pos); const int mins = static_cast[int]((pos - deg) * 60); const int secs = static_cast[int]((pos - (deg + mins / 60.)) * 3600); sprintf(txDEC, "%c%02d%c%02d:%02d#", deg > 0 ? '+' : '-', deg, 42, mins, secs); Serial.print(txDEC); }prosím pomoc, ta funkce sprintf v tomto tvaru vyhodí údaj v téhle podobě
--49*-16:-30#
ale to je špatně má to být takto -49*16:30#
jen s jedním mínusem na začátku (nebo plusem - ale s plusem to chodí dobře), jak to mám upravit?
sprintf(txDEC, "%s%02d%c%02d:%02d#", deg > 0 ? "+" : "", deg, 42, mins, secs);
sprintf(txDEC, "%+03d%c%02d:%02d#", deg, 42, mins, secs);
sprintf(txDEC, "%+03d%c%02d:%02d#", deg, 42, mins < 0 ? -mins : mins, secs < 0 ? -secs : secs);a nebo asi lepší
if (deg < 0) sprintf(txDEC, "%+03d%c%02d:%02d#", deg, 42, -mins, -secs); else sprintf(txDEC, "%+03d%c%02d:%02d#", deg, 42, mins, secs);
Z nějakého důvodu to běží na Stellariu 0.18.1 a výš už ne
a teďko to už funguje?? :O :O
dělals něco s configem hele a jel podle toho návodu v readme?? :O :O
slsniff hele třeba :O ;D
nevim kde naplanetě se skováváš před interpólem :D :D ale pro prahu vidim pro tvuj čas pro vegu deklinaci +-38° noa pro polárku těch +-89° takže by to imho asi jako mělo lítat až vo těch 51° :D ;D
kde to mám v těch zdrojácích hledat, snažil jsem se a našel kulový :(
v souboru conversion.cpp hele :D ;D
ve funkci parseCommands hele si to kouká v if podmínkách na první dva/tři znaky toho co tomu přišlo po sériový šňůře noa podle toho jakoby volá různý ty další funkce co si vyzobnou a naparsujou další věci co potřebujou :D ;D
:Sd jakože nastavení declinace se dělá pozóóóór velký překvápko ve funcki setDeclination hele :D :D
odstranění mezery mezi :Sd a těmi koordináty, která nejspíš v té staré verzi je
myslimže ten arduino program vočekává ten :Sd příkaz bez mezer
hele jak to tady maj taky ukázaný :O ;D
lol už to asi jako vidim :D :D
stellarium plugin na řízení teleskopu tam žádnou čárku nedělá a navíc tam předtim asi jako byla nějaká mezera kterou někdo vykomentoval hele :O :O :D ;D
zkus to pole v tom souboru conversion.cpp popostrčit vo tu mezeru/index vo jedničku takže pro tu setDeclination takle třeba
// Whether the coordinates are positive (1) or negative (-1) const int multi = (receivedChars[2] == '+') ? 1 : -1; // Parse the coordinates part of the command to integers const int deg = multi_char_to_int(receivedChars[3], receivedChars[4]); const int mins = multi_char_to_int(receivedChars[6], receivedChars[7]); const int secs = multi_char_to_int(receivedChars[9], receivedChars[10]);
podobně pro ty jiný funkce kde je ta mezera takže asi i pro rektascenzi :D ;D
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.