[15:24:17] NASSP Logging has been started by indy91 [15:24:19] hey [16:16:39] morning! [16:17:18] hey [16:17:40] I made my decision [16:18:22] the stuff I am working on is divided into launch window calculation, so mostly the time of launch, and launch targeting, calculating the insertion parameters [16:18:45] brb [17:00:25] back [17:00:57] what I wanted to say was, the generic launch window stuff is calculated anyway, but we can't do much about it, changing launch time and all. [17:01:15] So in terms of inputs and displays I will only put the launch targeting stuff in the RTCC MFD [17:01:23] and I am mostly done with that anyway [17:01:49] for launch window, that is more mission specific. Like one set of inputs and displays for Skylab launches, but that doesn't apply to other missions etc. [17:02:39] that makes sense [17:05:40] it's pretty neat, it calculates two other launch times automatically anyway [17:05:48] the time when the target in orbit is exactly in-plane [17:06:00] passing over the cape [17:06:16] nice :D [17:06:29] and another time, when you launch, that you will have zero phase angle at insertion [17:06:35] so directly above you [17:06:39] yeah that's cool [17:06:54] not useful for any rendezvous directly, but I think for e.g. Gemini they launched at that time plus a bias [17:07:15] to get a specific phase angle setting up for rendezvous [17:07:36] those options are also there, I just won't immediately add input buttons for that [17:08:37] So basically you need to have a target in orbit that is set up correctly for your launch [17:08:48] but then you can get there [17:09:03] or, what should also work, is you start the RTCC MFD from the initial prelaunch scenario [17:09:06] calculate the launch time [17:09:16] exit the sim, change the mission time in the initial scenario [17:09:25] and then you can get the ideal launch time, too [17:09:41] good enough for now I think :D [17:10:26] haha yeah seems reasonable enough :D [17:11:25] for the Skylab rendezvous displays I would next need to get a better version of the targeting for the maneuvers, the ground solutions, not Skylark onboard [17:11:36] and then that gets used in the launch window calculations [17:11:46] which is somewhat required to adjust the insertion velocity [17:15:19] but that is details, they didn't want to have some of the maneuvers become lower than 30 ft/s, so that they could do them with the SPS [17:15:45] And that is somewhat relevant for when you launch or probably more the apogee height, so insertion velocity [17:20:04] right [17:20:27] kind of funny to intentionally make things need more delta-v :P [17:26:11] well almost all the maneuvers are horizontal, so in the sum the DV is basically the same [17:26:29] they just didn't want one maneuver having 200 ft/s and then the next one 10 ft/s [17:26:47] but with the right phasing at insertion (and velocity) that could become e.g. 100 and 110 ft/s [17:27:20] ahhhh gotcha [17:27:53] that's basically the phasing launch window. The last of the horizontal maneuvers is small (30 ft/s), all previous maneuvers are large, because the phasing angle is small [17:28:05] and then end of the window is when the very first maneuver is only 30 ft/s [17:28:17] which normally is up to 200 ft/s [17:28:37] I can work out the details on all that later haha [17:28:54] I actually haven't found any good state vectors for Skylab [17:29:12] So in the end we will just have to fly it [17:30:05] Or do the launch in-sim and then propagate that state vector to the launch time of one of the Skylab 2-4 missions [17:31:53] They had planned to launch Skylab 2 just one day after the Skylab itself. So maybe we should set up two scenarios. One for the Skylab 1 launch, but it already has Skylab 2 in the scenario and you can actually launch it [17:32:23] But they ended up launching a few days later, so for the actual Skylab 2 launch, that would be another launch scenario [17:53:56] unrelated, but the ETA for that countdown procedure is Friday, so I should definitely be able to have a scan ready this weekend [17:55:07] awesome :D [17:55:49] all I have been talking about is stuff happening during countdowns, it's very related :D [17:56:04] hehehe [17:58:14] for that, if it should contain additional procedures we could implement, there needs be a certain level of interaction between what the user does and which commands are sent from the LCC for the EDS test [17:58:36] I don't know if it's good enough to do everything on a timer [17:59:17] the test is split in many parts which are started manually I believe, everything in a part is automatic [17:59:29] like switching on 1, 2, 3, 4, 5 then 0 LV lights [18:00:08] they even tested the liftoff and abort circuits which is somewhat scary [18:00:34] I'll need to figure out if it would be possible to have switches and circuit breakers in the wrong state during the test [18:00:44] which lead to an unrecoverable state of the spacecraft [18:03:48] oh boy [18:06:05] looking at my notes, probably not. Only if you do the wrong switches in the CM, but I will have to see [18:09:02] as long as the CM is in the right state 45 minutes after the test [18:09:09] that's when pad aborts are enabled [19:15:02] speaking of Skylab [19:15:24] just found an interesting old file [19:15:26] "Apollo 15 - P34 issue with Artemis.scn" [19:22:48] hmm, what's that? [19:24:29] we would like to use Artemis until we get Skylark [19:24:37] but Artemis has an issue in Earth orbit with P34 [19:24:53] I think a long, long time ago Thymo wanted to take a look at that and create a fixed version [19:24:57] ahh right right [19:25:55] maybe I know enough interpreter by now to see the issue myself [19:26:46] it might be easier to spot it by doing a side-by-side comparison of the relevant sections of the two Norton documents [19:26:53] since we have both [19:27:14] my first guess is scaling issue with RTARG [19:29:41] time doesn't really have differing scales in the AGC [19:29:45] but position vectors do [19:30:27] need to slightly repair the old scenario because there was no standby mode then. And the AGC STATE variable in NASSP is a bit incompatible there [19:35:54] I could set up a better scenario that can be better tested in the standalone Virtual AGC [19:36:12] just need to get rid of the program alarm and save [19:39:38] I mean they completely removed the lunar capability in Skylark [19:39:48] the better comparison might be Comanche vs. Artemis [19:40:04] do we have a complete Norton manual pre Artemis? [19:41:46] mmmmmmmm [19:41:50] I don't think so... [19:41:54] we have several for Luminary [19:42:18] yeah, doesn't look like it [19:43:00] Luminary might be good enough actually [19:46:29] in that case, yeah we have full Norton docs for 116, 131, LM131r1, and 173 [19:48:35] hmm, this is weird [19:48:41] E7,1414 is EMEM3414, right? [19:48:53] pretty sure it's double precision [19:48:55] this is what I get [19:49:01] EMEM3414 252 [19:49:03] EMEM3415 22600 [19:49:04] EMEM3416 77623 [19:49:05] EMEM3417 32100 [19:49:06] EMEM3420 16 [19:49:07] EMEM3421 65577 [19:49:21] I don't think it should mix plus and minus like that... [19:50:50] E7,1414, yeah [19:50:58] are those decimal or octal numbers? [19:51:03] they look octal [19:51:37] but if octal, >=40000 would be negative. 252 and 22600 are both positive [19:52:05] yeah, but the other two aren't [19:52:08] er, yes on it being 3414 [19:52:09] this is a vector [19:52:14] double precision [19:52:16] ohhh [19:52:20] gotcha [19:52:31] so the 2nd and 3rd value are mixed [19:52:38] more often than not the AGC can deal with it [19:53:11] even when they got that weird TEPHEM (triple precision) on Apollo 14 after the liftoff time update they changed it mostly to be careful I think [19:53:21] yeah [19:53:22] or what do you think with it being able to deal with it [19:53:43] usually it's fine, and if it matters they'll call a sign agreement enforcing function before using the number [19:54:04] SGNAGREE [19:54:20] or in the case of a vector like this, VECSGNAG [19:58:26] too bad the Artemis Norton manual isn't searchable [19:58:41] would have liked to checked every instance of RTRARG, maybe there would be a comment on it [19:59:55] I can run OCR on it later :) [20:02:07] actually, I think RTARG is fairly "contained". So you don't need to OCR it just for me :) [20:05:06] another good candidate would be that the AGC looses track if it needs to use the RTARG as lunar or Earth orbit target [20:05:18] because INITVEL works correctly in P34 [20:05:26] in that scenario I had 20 ft/s [20:05:39] when you start P40 it does INITVEL once, I think [20:05:46] and then later during the burn itself, too [20:05:57] that initial calculation in P40 had 78 ft/s or something [20:05:58] do we not have a program note for this issue? or does it just say, "it doesn't work" [20:06:03] so there it already went wrong [20:06:23] hmm, suspicious [20:06:25] "there is also a known problem [20:06:26] with the aim-point transfer between P34/F35 and P40/P41 when in [20:06:27] earth sphere." [20:06:30] lol love it [20:06:50] oh the two sentences before are even better [20:08:00] https://i.imgur.com/gqJVnmt.png [20:09:22] hah, wow [20:10:31] dropped requirement I guess, no more CSM+LM rendezvous tests in Earth orbit should TLI fail [20:16:31] hey guys [20:22:07] hey Matt [20:27:11] I'm failing pretty hard at having any free time to work on stuff haha [20:29:38] ah that's fine haha [20:34:21] how dare you! [20:38:39] lol [21:07:34] night! [04:04:32] I accidentally clicked on "recent changes" on Wikipedia, rather than nassp.space..."Oh no! The Spambots are back--wait..." [15:31:05] Hey Nik [15:32:27] what's up? [15:32:48] Covid has you left long behind I hope? [15:50:20] I'm looking at Artemis again, you know, the issue where its rendezvous programs don't work in Earth orbit. The thing you wanted to look at ages ago :D [15:52:44] Yep, I could come in to the office on the 10th. Doing fine. [15:53:01] I still cough every so often so we'll see how long that lasts. [15:53:39] Oh I remember looking at it years ago, no idea what I did or found out. [15:54:14] Anyway, I defended my thesis today and it got graded at an 8/10. I'm pretty happy. :D [15:54:22] that's really good, congrats! [15:55:59] Yeah, if you get atleast an 8 my university allows you to publish it in the national knowledge base for everyone to see. [15:56:07] Thanks! [15:56:21] if you get a 10 they replace the professor with you [15:56:33] which is why you never would get the highest grade in such a presentation... [15:57:44] Hehe, exactly. I never expected to get one because of that. Although they were naming excuses as to why they could not rate it with a 9 or 10, which is another sign they think it's good I guess? [15:57:56] yeah [15:58:03] in my thesis defense the professor criticised that I put my hand in my pocket once, something he did all the time during lectures haha [15:58:13] In either case I was more than happy with my grade so I just waved away their excuses to celebrate :p [15:58:32] Oof, talk about excuses lol [15:59:20] One of the panel members complimented me on my English usage, which confused me. The presentation was in Dutch. [15:59:56] Took me a minute to realize he was talking about my thesis and that I didn't accidentally present in English [16:00:01] clearly asleep [16:00:09] ah haha [16:01:16] What was your thesis on? I always forget what degree you studied. Aerospace? [16:03:56] Yeah. It was about the Eurofighter, I wrote it for Airbus Defense and Space. [16:04:16] Which was also a problem during the presentation. I had to speak in general terms about a bunch of stuff [16:04:26] the juicy stuff was classified [16:05:18] The only reason the institute at the university liked me doing that thesis was so that they could get more connections with the industry [16:05:36] otherwise they didn't really benefit from any research I did [16:05:42] Yeah, I was in the same situation during my internship at Thales. Bunch of things had to be generalised. Wasn't a thesis though, so not as juicy as yours. [16:06:48] Anyhow, I need to fetch some dinner and head of to the Red Cross. I have to program a bunch of radios for this weekends marathon. See ya! [16:07:04] see ya! I'll go back to my Artemis... [16:07:15] I misspelled nemesis... [16:12:54] hey [16:15:36] hey hey [16:20:55] morning! [16:22:04] hey Mike [16:22:24] I've gone into the business of mass conversion of octals [16:22:39] uh oh [16:22:42] I can replicate the Lambert calculations Artemis does in my test scenario [16:22:49] hahaha [16:22:57] awesome [16:23:14] P34 does the calculations once for TIG [16:23:29] when you start up P40 it does it twice, once for TIG-2 seconds and then TIG [16:23:34] to set up some variables [16:23:48] I guess for the change in DV between the first guidance cycles (2 seconds) [16:24:03] And if I track down what changes it's not RTARG, the target position vector [16:24:14] it's RINIT and VINIT, the state vector at TIG [16:24:28] and I don't think it's a wrong time P40 uses or so [16:24:45] oh I didn't mention, I can replicate the P34 calculation of 20 ft/s (which is correct) [16:24:53] and P40 then comes up with nearly 80 ft/s [16:24:58] that is the bug I guess [16:25:13] and it seems be because RINIT/VINIT are wrong, somehow [16:25:21] that's weird [16:25:33] I didn't see TIG changing [16:25:45] it's just using CSMPREC to get the state vector to that time [16:25:52] and then stores it in RINIT/VINT for INITVEL routine [16:26:19] also thinking about it, the problem can't really be with P40 itself [16:26:26] it must be the data fed to it [16:26:37] because P37 also uses Lambert aimpoint guidance [16:26:46] and that clearyl works in Earth orbit, it only works in Earth orbit [16:27:05] so P40, in general, can handle Earth reference Lambert aimpoint [16:27:42] that's as much as I know [16:28:00] no idea if it maybe propagates using lunar gravity or something [16:28:05] very weird [16:28:08] yeah that could be [16:28:32] but RINIT/VINIT is off and it doesn't seem to be a time tag issue, I can't just let those vectors coast forwards/backwards in time and get to the correct value [16:29:13] and I just cross checked in Colossus 237. As I said, it's three INITVEL calculations, once in P34, twice in P40. [16:29:18] the first and last use the same time [16:29:29] so RINIT/VINIT should be identical [16:29:36] and it is with my Apollo 7 scenario [16:29:59] after P34 vs. after the initial P40 calculations [16:30:38] those coasting integration routines use the push down list a lot [16:30:52] so a bit harder to debug, as I don't exactly know the erasable addresses [16:31:35] ahhh yeah that can get hard to follow [16:35:28] ooooh, countdown procedure is being delivered early, in a few hours :D [16:36:44] that's great [16:52:56] maybe I need to look more at P34 [16:53:18] P34 using a wrong state vector at TIG [16:53:33] and not P40 [16:53:47] nah, the DV P34 comes up with makes sense [17:12:42] hmmmmmmmm [17:15:11] we have all of the Artemis anomaly titles [17:15:15] have you looked at those for clues? [17:15:46] https://www.ibiblio.org/apollo/Documents/apollo_16_fsrr_slides.pdf#page=18 [17:16:40] I haven't [17:22:41] it's not in there [17:22:51] it's just a program note [17:22:56] laaame [17:23:03] And the GSOP mentioning that it hasn't been verified for Earth orbit [17:23:11] GSOP doesn't mention that it's broken though [21:39:11] I'm back [23:48:21] hey [23:58:55] yo [00:09:37] hows the scanning going? [00:12:07] not started yet, in the middle of an auction :D [00:12:29] also need to cook dinner first [00:12:33] I'll get to it though lol [02:54:34] Thymo, should we have a wiki thread on the forum? [04:22:25] dumb C++ question [04:23:06] in the function void PanelSDK::AddElectrical(e_object *e, bool can_delete), PanelSDK.cpp [04:24:01] I would like to add a std::function refreshPointer, that is a pointer to the function e->refresh(); [04:24:36] how do I do that [05:21:16] I *think* this is the right incantation: [05:21:18] std::function refreshPointer = std::bind(&e_object::refresh,e,std::placeholders::_1); [05:29:24] oh man I am way too out of C++ practice for that [05:35:11] well as it turns out, that is *not* the right incantation... [05:36:24] ooooooor [05:36:52] I'm just calling a function that I wrote, with the argument in the wrong order [05:48:56] Yeah, there should be a thread. Just wanted to be sure CAPTCHA and other stuff was working before publicly announcing it [05:52:53] I'm not familair with that C++ mechanic. I only know the C way of passing function pointers [06:00:59] .tell indy91 https://drive.google.com/file/d/1CQLX5m4Tkq1xoXhsxQEIU1F43JPyCL99/view?usp=sharing [06:01:15] .tell indy91 unfortunately the EDS test is one of the few things that gets called out to a different procedure... [13:10:08] . [13:44:38] good morning [14:12:56] I tried adding my thread pool to the systems SDK last night [14:13:25] does not work as expected [14:16:31] hey [14:16:38] hmm, that's unfortunate [14:22:26] I'm done with the launch targeting stuff, but I want to set up a better scenario for everyone to try it [14:22:39] setting up padloads is still a pain [14:22:50] so I decided to finally work on a padload generator [14:23:06] that automatically does it, not like the Excel worksheet [14:24:34] in the process I found a bug in a function converting to the fixed precision values [14:25:16] which might affect some of our current padloads actually [14:25:35] not a lot, only for triple precision values [16:33:42] pad load generator sounds like a good step toward a mission generator :) [16:48:44] morning! [16:49:35] hey Mike [16:49:45] the document is really great [16:49:58] of course unfortunate that the EDS test and some CMC procedures are outsourced [16:50:31] but it really is cold and dark to liftoff procedures [16:50:51] exact confirmation when the backup crew checklist is done [16:51:04] :D [16:51:16] yeah we'll have to keep our eyes peeled for the other referenced procedures [16:51:18] and procedures for a countdown hold even [16:51:28] and scrub [16:51:30] but yeah overall I'm very happy with it [16:51:34] same [16:51:38] and it even starts out with a weird little EMP lol [16:51:56] I think you asked on Discord, we did always have backup and prime crew prelaunch procedures [16:52:17] right, but no pre-backup crew procedures [16:52:33] yeah, we came up with a short startup checklist for that [16:52:56] even this document doesn't give the procedures for starting P01 though :D [16:53:23] hah yeah, I think that's just the "start gyrocompassing" callout at T-23h right? [16:53:27] yeah [16:53:34] oh speaking of documents, I also have new [16:53:35] news [16:53:47] from NASA STI [16:53:57] "Unfortunately, after further review Basic equations and logic for the real-time ground navigation program for the Apollo lunar landing mission - Project Apollo has been determined to not be publicly available for distribution by NASA and we were unable to locate a copy elsewhere. We were able to find a metadata entry for this title in another repository - https://ntrl.ntis.gov/NTRL/dashboard/searchResults/titleDetail/N7034528.xhtml" [16:55:29] boooooooo [16:58:38] so all egs are in this basket [16:58:42] eggs* [16:58:43] https://archive.org/details/NARASWSelectedApolloBoxes/page/n147/mode/2up?view=theater [17:00:21] hmmm [17:00:34] I'll have to ask Ron about the status of NARA [17:00:41] apparently their research room is open again [17:00:44] finally [17:01:25] a few weeks ago I had read it was partially open [17:01:56] but I think the text on their website has changed again [17:02:20] More open than before [17:11:51] I would like to have a list of all the four letter call sign acronyms in that countdown document [17:12:02] especially the ones with M as the first letter I have rarely seen before [17:14:29] yeah I wasn't able to find much there [17:16:21] there are partial lists in other documents [17:16:27] mostly having the ones with C [17:16:35] which I think stands for control center (LCC) [17:16:39] S is spacecraft [17:16:46] so SCDR is the commander (or backup) [17:16:52] SPAD is Günther [17:17:04] I think [17:25:25] ahhh [17:25:38] hmm [17:25:46] so this copy belonged to MACE [17:25:52] who had reports RACE and ACE [17:29:31] M wouldn't be MCC would it? [17:29:39] no that's H [17:29:42] for Houston [17:29:47] gotcha [17:29:49] HFLT or so was the flight director [17:30:17] during the abort light test (which I had procedures for from other countdown document) several people are switching on/off the abort lgiht [17:30:45] oh, I also found it funny that these procedures in at least one place do V33E when they could have done PRO [17:46:40] are they typing into the K-START there? [17:46:47] I don't think K-START can transmit a PRO key [17:47:23] ah possible [17:58:53] I think K148 is the K-START keypad? [18:35:20] sounds like it [18:42:36] indy91, I'm looking into implementing the J-mission workarounds in a slightly more official capacity, do you have any suggestions on what would be a good way to do so? In theory I would like to specify the mission type in the scenario file and then switch the Saturn/LM systems hardware based on that, during the initialization, but I don't know how I would go about doing such a thing. [18:43:07] oh, no no no [18:43:12] we already have such a thing [18:43:17] oh you do? [18:43:27] https://github.com/orbiternassp/NASSP/blob/Orbiter2016/Missions/ProjectApollo/Apollo%2015.cfg [18:43:35] mission specific config files [18:43:38] hiya [18:43:45] ah neat [18:43:46] hey Thymo [18:44:00] I guess what the J-type mission need is load a different Saturn config file maybe? [18:44:43] What do you all have to do right now to fly the J-type missions [18:44:54] change the size of the cryo tanks in the config [18:44:56] anything in code? [18:45:02] I would rather not load a separate file, because that would require extra maintenance if systems need to be updated that are shared between mission types. Ideally I'd like to just have a separate field in the same config file that is loaded instead [18:45:30] Last I checked, there are code changes required as well, you have to comment out a couple lines and uncomment their J-mission equivalents [18:45:39] that in particular is what I want to eliminate [18:45:55] I want to have a solution that doesn't require building NASSP from source [18:46:36] but the first thing I need to know is, how would I access this mission-specific data within the code? [18:46:37] right [18:46:51] Saturn and LEM classes have a pointer [18:46:52] it could be as simple as an "if-else" statement [18:46:54] I think called pMission [18:47:09] and that can call functions for every mission specific thing [18:48:14] I added the "J-type mission" variable early on [18:48:22] in reality a lot of changes were done after Apollo 13 [18:48:28] like adding additional tanks I think [18:48:50] Right, IIRC the third Oxygen tank was present on Apollo 14 which wasn't a J mission per se [18:49:41] I can't find the places in code right now that you need to rebuild [18:50:03] In reality, we may want to have some sort of enumeration for mission type that is more extensible [18:50:19] let me take a look for those code points, I have the workaround list pulled up [18:50:50] sure, it can be an int instead of a bool [18:50:59] and then every type of config has a number [18:51:56] precisely [18:52:07] ah okay, the changes are in the #define section of "nasspdefs.h" [18:52:48] I'm going to alter those to use different names so that they can all be defined at once, and the code will use the proper value for the mission [18:53:39] ah right [18:53:49] I think those are even only used for meters [18:54:08] maybe [18:55:34] interesting [18:55:37] yeah, to convert to percent [18:55:43] of tank content for a display [18:55:51] huh, why are the defaults 76%? [19:01:15] not sure, ask Ryan haha [19:01:45] dang, I don't know if I can query pMission from lmswitches.cpp [19:02:35] aha, yes I can [19:02:40] this->lem [19:08:02] what would be nice, is if our system configs and parser could support including other config files [19:12:53] oh that's a great idea [19:13:26] true, the main thing is that so many systems and values are shared between all missions, so if anything we would want to "patch" or "append" a generic spacecraft config file with mission-specific values [19:13:59] for the time being, I've converted IsJMission() to GetMissionType() and I'm using an enum class to define any of the potential mission types, A through J [19:14:38] Apollo 14 is a special case since it's still called an H-type mission, but I have added a second value called "H_POSTA13" to account for it [19:15:13] 8 is also a special one, as C prime :P [19:15:24] I think Apollo 7 was just regular C [19:15:28] yep, I included that one too [19:15:48] n7275: I'm gonna merge your wiki accounts. Do you want to keep n72.75 or n7275? [19:16:17] let's keep the "N72.75" one [19:16:20] thank you [19:17:55] I started working on a page for the systems simulation the other night [19:20:17] CaptainSwag101, I also had kind of moved away from using the JMission variable and made new variables for specific things [19:21:16] I think that is better. Not even using GetMissionType(), but more specific for a subsystem [19:21:22] like "HasSIMBay" or so [19:22:27] yeah I just noticed that, I suppose that might be a more extensible way of doing things [19:23:14] hmmm [19:28:04] oh man this kinda sucks, some things like the heat exchangers are directly paired with a specific battery, meaning if we want to have two separately-named values for J and non-J batteries, we also need duplicate heat exchangers [19:30:29] oh well, not a huge issue [19:37:23] okay, making good progress so far! [19:38:31] n7275: Done [19:42:07] ugh, I'm also going to need to dupe the ECS pipes in the CSM [19:44:14] is this for the aux battery? [19:44:47] I don't really understand your approach [19:48:26] so, these config files have multiple copies of different systems for J missions. I don't want the end user to have to mess with these files to use J missions, so the obvious solution is to uncomment both definitions but give them distinct names. The problem is, giving them distinct names means that any systems which reference those definitions now aren't pointing to the right place, depending on the mission, which [19:48:27] requires making duplicate copies of every system that depends on a mission-specific configuration [19:49:17] that doesn't seem like a very good idea [19:49:26] I agree, it seems really bad [19:49:31] not even having duplicates of the batteries [19:49:43] they would be always there, for all missions [19:49:47] if you do it that way, the duplicate systems get loaded and their update functions run too [19:49:49] always doing timesteps etc. [19:49:54] I see [19:50:01] which is why I think it's a bad idea [19:50:26] but the alternative is to have a different config file which means that there's extra work in case systems which are consistent between mission types needs to be updated [19:50:38] neither solution is ideal [19:50:45] so maybe that's where the idea from Matt comes in [19:50:52] have a config file only with changed systems [19:50:55] hmmm [19:51:09] and that gets basically loaded instead (or on top) of the normal config [19:51:20] There are functions to find systems by name [19:51:45] if you call whatever function loads from config more than once, does it create any issues? [19:52:18] ideally it wouldnt [19:53:17] That sounds like the best of both worlds to me [19:58:22] let's see about implementing it [20:04:14] Panelsdk.InitFromFile("ProjectApollo\\SaturnSystems"); in satsystems.cpp [20:04:32] https://github.com/orbiternassp/NASSP/blob/185b56d3917470f6a2305816fcc533b77ef8c61e/Orbitersdk/samples/ProjectApollo/src_sys/PanelSDK/BUILD.CPP#L188 [20:06:47] not sure if calling that on a second config file would break things, but making it so it didn't would probably be as simple as moving the initalization parts to their own function that only gets called once [20:10:42] thewonderidiot, you said something about REFSMMAT earlier [20:10:50] something using the address? [20:11:08] I always wondered why the REFSMMAT is padloaded, partially [20:11:12] that never made sense to me [20:11:27] that "inlink monitoring" EMP at the beginning of the procedure runs out of R-OTHER, V-OTHER, and the first several words of REFSMMAT [20:11:47] https://i.imgur.com/UeUEehB.png [20:13:08] https://gist.github.com/thewonderidiot/e48305b4ed8526ee952a895553ac3600 [20:14:26] so yeah, the first few words of REFSMMAT get clobbered by this EMP [20:14:39] right [20:14:44] I guess they used the padload to restore them? [20:14:56] I don't think this padload is part of a REFSMMAT [20:15:06] I think it rather has to do with the EMP [20:15:15] the REFSMMAT doesn't get calculated until liftoff [20:15:18] does the 11 padload have the same thing? [20:15:40] would be easier to compare with the same software :) [20:15:56] yes [20:16:00] different values [20:17:01] same type of comment [20:17:05] "rev 2 of launch tape" [20:17:31] the REFSMMAT +4 load references TEPHEM [20:17:48] also these don't look related to the EMP to me [20:18:33] also don't look related to the launch REFSMMAT haha [20:19:41] hmmmmmmmmm [20:19:43] suspicious [20:20:35] it's surely something being read during prelaunch procedures [20:21:36] if we take REFSMMAT +0, at address 1735,1736 [20:21:53] that would load 12703, 14106 into those locations [20:22:26] that would replace the "INCR COUNT" in the EMP to a TCF into the middle of some random internal interpreter code [20:22:43] in Artemis? [20:22:49] Apollo 11 has different values [20:22:53] I'm looking at Apollo 11 [20:23:09] but those values are from the Apollo 16 padload [20:23:13] Apollo 11 has [20:23:17] uhh [20:23:42] oh wait [20:23:46] yeah you're right [20:23:50] 12703, 14106 [20:23:51] careful, it uses different addresses [20:23:55] no I'm right lol [20:23:58] Apollo 16 load REFSMMAT+0 and 2 [20:24:11] Apollo 11 REFSMMAT+2 and 4 [20:24:19] Apollo 11 loads +0, +2, and +4 [20:24:28] +0 is on a different page for whatever reason [20:24:42] ah right [20:24:45] page 4 instead of page 13 [20:25:10] that's nearly the same value as Apollo 16 then [20:25:51] they start that EMP with just 3 as the third register of N26 [20:26:20] which means 12703 would TCF into the middle of the implementation of V/SC2 [20:26:32] er, V/SC [20:26:42] so the EMP and this padload are definitely mutually exclusive [20:26:59] hmm ok [20:27:15] I have these values in our Apollo 16 padload [20:27:24] but I don't think we loaded them for most missions [20:27:33] I think they aren't relevant for P00 to P11 [20:27:45] very weird [20:27:49] now I am very curious what these are [20:28:02] somehow mission tape and date related [20:28:09] one document mentioning TEPHEM there [20:28:16] the other something about launch date [20:28:32] "date to which TEPHEM is valid for this e-load" [20:33:07] I was mostly looking at this because of the padload generator I am working on [20:33:32] I want to set up a Skylab-ish scenario for my launch targeting and got tired of coming up with the padload mostly manually [20:37:48] But I don't think we need to load that [20:39:59] yeah [20:40:30] I'll do some comparisons of padloads vs. rope for those later to make sure they're definitely not referencing memory addresses in a different bank or something [20:41:45] sounds good [20:44:41] here's a random question, could someone explain what an "azimuth" is? [20:45:05] I have no idea what it is or why it needs to be updated depending on the launch time [20:52:07] in aviation terms it would be "heading" [20:52:27] 90° is heading east [20:52:30] 0° is heading north [20:52:39] 72° is the standard launch azimuth for Apollo missions [20:52:42] launch window opening [20:53:02] because of Earth-Moon geometry, if you launch later than that, you need to launch into a different direction [20:54:11] huh, why's that? [20:54:23] because the Earth rotates [20:55:00] takes you away from the orbit you need to get efficiently to the Moon [20:55:53] https://upload.wikimedia.org/wikipedia/commons/thumb/4/46/Lunar_Orbit_and_Orientation_with_respect_to_the_Ecliptic.svg/1920px-Lunar_Orbit_and_Orientation_with_respect_to_the_Ecliptic.svg.png [20:56:07] huh [20:56:15] I think I... kinda understand? [20:56:20] same [20:56:56] it's the same if you want to launch to some object/space station in Earth orbit [20:57:11] Earth rotates, orbital plane stays fixed [20:57:18] so there is one ideal launch time [20:57:19] ahhhh [20:57:25] okay that helps clarify [20:57:40] my only working knowledge of orbits and orbital mechanics is from Kerbal Space Program [20:58:19] KSP would get the same sort of issues, but it is made simpler by having the KSC at 0° latitude [20:58:28] and the Mun has 0° inclination I think [20:58:49] right, it's a perfectly flat orbital plane required [20:58:56] so it becomes more of a 2 dimensional problem in KSP [20:59:13] but there's also Minimus which is out-of-plane [20:59:58] though in my case, what I do is launch at 0° and then adjust inclination on the following orbit before performing the injection burn [21:00:16] I presume that Apollo does it all in the launch? [21:00:28] by timing the launch [21:00:38] but TLI also changes inclination [21:00:52] actually, they afforded themselves two TLI opportunities [21:01:06] if something doesn't work right they can wait one orbit and try TLI again [21:01:25] Neither TLI opportunity is optimal [21:01:40] basically during the 1st TLI opportunity you would yaw a bit to the left to change inclination [21:01:49] during the 2nd you yaw a bit to the right [21:02:17] They could have said, we only try TLI once [21:02:38] then they could have optimized that one TLI opportunity, there would be no inclination change [21:03:00] and then it's all done with launching at the right time towards the right azimuth [21:05:12] but I am not really sure why, once you are in Earth orbit, it makes such a big difference if you wait one more orbit to do TLI [21:06:03] for extended reading: https://history.nasa.gov/afj/launchwindow/lw1.html [21:07:11] awesome, thanks [21:07:43] I haven't 100% figured this all out. That's why we have no method yet to calculate all the LVDC parameters for other launch dates [21:08:08] Only for the days where we have original documentation with the right numbers [21:20:31] good night! [22:05:04] i dont think that the update functions are getting called with my update. hmmmmmmm [14:57:48] good morning [15:36:03] hey [15:45:48] working on this padload generator, I am now questioning some calculations I have been doing for padloads :D [15:49:12] oh? [15:50:37] mostly the sign of one value [15:50:43] correcting for Earth precession [15:51:56] actually, some padload documents give the method to come up with those [15:52:07] should be able to figure out if we have been using the wrong sign [15:57:04] ahh so have we not noticed simply because we start at -4 hours and not earlier? [16:01:36] haha, the Earth is precessing 360° in 26000 years [16:01:57] so about 0.01° per year [16:02:05] and that is why we haven't noticed if it's wrong :D [16:04:45] oh [16:05:23] well i dont want to atart that early lol [16:06:24] these correction terms account for nutation and precession [16:06:29] Orbiter doesn't simulation nutation [16:06:36] which would be the larger values [16:06:52] with only precession we get one of the two values being essentially 0 [16:07:23] and the other smaller than the real padloads [16:07:33] I think, because of the missing nutation I can't directly compare [16:15:49] morning! [16:19:07] hey Mike [16:19:51] how's it going? [16:21:12] My padload generator is now advanced enough to create everything for an Earth orbit mission, Artemis only [16:21:22] but now I am questioning some things [16:21:25] oh nice :D [16:21:51] just not sure if we used to calculate everything correctly [16:21:52] iirc someone made a post on the forum a few months ago analyzing orbiters rotational parameters and found it a bit lacking in some areas [16:23:10] yeah I remember that [16:23:19] for the Earth it's fine, just missing nutation [16:23:30] and doesn't simulate Earth rotational rate slowing down [16:23:57] so I needed to adjust some numbers in the config there to work better for 1970 [16:45:44] is there a document with a good description of LCC consoles? [17:10:32] not a general document [17:10:49] there is a website with pictures of a lot of LCC consoles, as of Apollo 4 [17:11:11] We have a document about the EDS which has detailed descriptions of all displays and switches of the two dedicated EDS consoles [18:44:25] these signs are breaking my head [18:45:21] there is a variable AXO [18:45:28] its complement is stored [18:45:35] so we have -AXO [18:45:42] there is a variable called "-AYO" [18:45:53] and they don't take its complement, it's already minus [18:56:29] I think the naming convention in the AGC code vs. the GSOP uses the opposite sign [18:56:37] that's what is getting me [19:15:51] that'll be fun to match up gaginst orbiters own coordinate system [20:01:24] well my conclusion is that I have always used the wrong sign [20:02:13] this Skylab 2 scenario using Artemis might be a good test case, it has precessed almost 1.5 years from its epoch [20:02:26] might actually be able to see a difference in P21 there [20:02:30] 0.01 or 0.02° [21:12:54] I think it's confirmed. If I load the new correction values with my SL-2 scenario the nav check PAD and P21 agree 100% [21:13:11] before it was 0.01° off in both latitude and longitude [21:22:53] good night! [17:10:22] morning! [17:16:16] hey Mike [17:17:30] what's up? [17:20:17] launched my Skylab 2 scenario again [17:20:28] to test the padload generated with my new program [17:20:51] and also, that old scenario where I tested Artemis P34 in Earth orbit, I couldn't 100% repair it [17:21:01] our AGC state variable had changed [17:21:07] with flags for standby mode etc. [17:21:23] so soon I'll have an up-to-date scenario [17:21:41] where I can trust that the issues I am seeing aren't caused by restart and program alarm that I was getting in the old scenario [17:23:04] actually, I launched that scenario for the first time [17:23:11] before I had used a modified Apollo 7 scenario [17:29:19] awesome :D [17:30:01] and it seems like, at least for the Earth, I had always used the wrong sign and also wrong scaling for the correction vector [17:30:06] UNITW [17:30:40] but I am somewhat confident that I can now calculate that part of the padload correctly [17:31:32] hehehe [17:31:34] excellent [17:32:42] a few tweaks to the scenario and I can release it together with the launch targeting [17:32:49] then I can go back to CSM 2D panel [17:32:53] and Artemis [17:36:09] surely this issue in Artemis can't be super complex [17:36:17] and a simple change [17:36:36] at least making it work in Earth orbit only (as opposed to lunar orbit only) should be simple [17:44:24] yeah, it's gotta be missing a flag somewhere or something [17:44:47] or, could be like the Comanche 44 issue where two programs are just not communicating as expected [17:46:55] will be one of those yeah [17:47:29] although address change seems unlikely [17:47:34] because it does work in lunar orbit [17:48:05] and I don't think anything involved in this uses a different address for Earth vs. lunar orbit [17:48:21] but it could still be [18:16:27] hey guys [18:19:38] i have a feeling that my thread pool may be calling refresh on copies of the system objects [18:28:43] how did it make copies? [18:34:11] i think i may be misunderstanding how std::bind or mem_fn works [18:34:52] its probably easier to just pass a pointer to the system and then call refrish on it the normal way [20:38:22] night! [01:40:00] is there a correct git-approved way to fix a whole bunch of really ugly whitespace? [01:41:35] PanelSDK.cpp looks like an E. E. Cummings poem... [11:07:33] What do you mean with "git-approved"? [13:08:15] Thymo, I just ment a way that git would understand that I am changing formatting, and not adding or removing anything, and so it would play well with git history if something was changed down the road. I'm not sure this is as important as I thought it was yesterday [15:04:14] hey [15:05:19] hey [15:07:15] oh hey Alex! It's been a while [15:07:25] at least since the 20th February it seems :D [15:08:09] Thymo, yeah i'll have to get back to working/fixes on the VC [15:08:41] back in a bit [15:09:11] indy91, hey Niklas! yeah I have been a bit busy but I have a bit of time now. I will get to work on the VC surface issue right away [15:11:18] also looking forward to try that new Apollo 16 landing site scenery :D [15:23:03] hey alex! [15:27:26] hey! [15:31:41] AlexB_88, lots of people still use the 2D panel, so I have started a project to improve its performance [15:32:09] bit on a pause on that right now. I got distracted by teaching our Saturn IB LVDC to perform a variable insertion like on Skylab [15:32:35] and as usual I find new issues, so I have side projects to side projects to side projects [15:35:25] but I'll have an update ready soon. Very preliminary Skylab 2 launch scenario [15:35:34] and something in the RTCC MFD to calculate the launch targeting [15:36:23] And then you can also use the Skylark rendezvous calculations in the RTCC MFD to get to Skylab [15:36:37] actually, I just used a random Skylab addon on Orbit Hangar [15:36:51] https://www.orbithangar.com/showAddon.php?id=396919db-9639-4352-aae6-9630f764a324 [15:36:59] does anyone know a better one? [15:38:33] it's definitely fine, but rather old I think [15:42:32] ah nice [15:43:47] maybe a start towards calculating presettings for a whole lunar launch window? :D [15:44:02] nah, it's a very different type of calculation [15:44:15] Setting up rendezvous with a target already in orbit [15:44:20] right [15:46:09] the scenario uses Artemis [15:46:22] none of its rendezvous programs can be used though [15:46:40] P31-P33 don't apply to the Skylab rendezvous profile [15:46:50] P34-P35 are broken in Earth orbit in Artemis [15:46:59] trying to figure out why is one of the side side projects :D [15:47:22] the real one used Skylark if I remember? [15:48:29] yep [15:48:33] which we don't have [15:49:34] but I put the calculations from the GSOP in the RTCC MFD [15:56:28] I was just reading through the skylab reactivation report, aparently they lost the origional ATMDC software between 1972 and 1977 [15:56:42] and the assemblers for it [15:58:21] bummer [16:00:13] "after an extensive search through IBM's tape library" [16:02:00] I'd take all the other tapes [16:08:06] AlexB_88, a while ago I had a fun feature idea for the VC [16:08:26] actually, I thought about it years ago for the 2D panel, too, but it didn't really work there [16:08:30] cue cards [16:08:32] as meshes [16:08:38] with clickspots where they usually put them [16:09:00] ah yes [16:09:07] should be easier to do in the VC [16:09:32] I thought, a simple rectangular mesh, even I can do that [16:09:36] somehow I didn't succeed haha [16:10:36] the thing is, would it be integrated into the VC mesh, or a bunch of separate meshes? [16:11:17] I think separate mesh is better [16:11:23] I already tried it as a texture [16:11:31] it looks weird, too flat, part of the panel [16:11:40] right [16:12:02] and I know hiding meshes takes a bit of ugly code [16:12:14] so I think loading the mesh when you click in the right spot is the way to go [16:13:22] and it just stays visible? [16:13:42] I would say toggle on/off by clicking [16:13:54] and in some cases cycling through the different cue cards [16:13:58] right and use mesh visibility flag [16:14:09] hmm no, I thought loading the mesh dynamically [16:14:15] oh [16:14:18] but I can look into that. I just am bad at creating the mesh [16:14:38] in some spots they had a few different cue cards they could put there [16:14:52] so I guess that's why having them part of the VC mesh already doesn't work [16:15:11] I can surely whip up something easily in blender [16:15:14] https://history.nasa.gov/afj/ap14fj/pdf/csm_cue-cards.pdf [16:15:39] I think the DAP Monitor Card is something nice and simple for a start [16:15:40] yeah the Apollo 14 ones is what I had in mind too [16:16:12] it doesn't need to be fancy or the perfect shape, just something I can start testing with [16:16:21] right [16:17:10] Ill see this week if I can make something and I can dropbox it to you [16:17:38] great, thanks! [16:17:43] the DAP Monitor Card [16:17:47] yeah [16:18:09] that slightly overlaps the FDAI [16:18:19] that's why the texture solution didn't work either [16:18:20] I just have to place it correctly in the VC mesh then export it as a separate one [16:18:28] oh ok [16:18:30] hmm [16:18:52] unless you are psoitionning it yourself in code? [16:18:59] yeah I could position it, too [16:19:03] positioning* [16:19:07] although it might help if you figure out the position in Blender [16:19:20] ok [16:19:38] but you don't have to, having the mesh at 0,0,0 is fine [16:20:36] ok, just got the Skylab scenario back to the TPI burn. And surprise surprise, P40 has a different DV than P34 :D [16:20:45] I had an old testing scenario with Artemis for this [16:20:46] 2015 [16:20:47] very old [16:21:03] before standby mode, so its AGC state was messed up [16:22:05] I will probably have to place it a the correct spot in the VC anyway just to get the correct size and stuff, but I can then translate it to 0,0,0 [16:22:48] ah right [16:23:09] unless we know the precise dimensions of the real cue cards [16:23:10] yeah if the cue card always goes in the same place then having the mesh itself offset is fine [16:23:19] hmm [16:23:27] probably hard to tell [16:23:36] all cue card documents we have will be scans [16:23:48] but even then it probably needs a bit of fine tuning to make it look right [16:25:05] yeah [16:54:14] morning! [17:10:24] hey Mike [17:11:39] hey, welcome back :D [17:26:39] hey [17:27:13] how sure are you again that the AGC can deal with mixed positive/negative values in a double precision time? [17:28:18] I would say, not sure at all, because it depends on specifically how the code using that value is written [17:28:39] I think I just confirmed that it's working right though haha [17:28:51] TPI time is 7:07:08.81 [17:28:55] and I watched N38 [17:29:19] it went to 06.81, called INITVEL, then went to 08.81 and did INITEVEL [17:29:26] that's correct [17:29:51] but still, it seems to me that it's not using the same initial state vector for INITVEL in P34 vs. P40 [17:29:57] and that is what is causing the DV difference [17:30:15] that's where I need to do more checking I guess [17:30:52] cool [17:30:55] yeah most likely it's fine [17:31:19] but then again, the difference between Artemis 71 and Artemis 72 was a bugfix for a situation where sign disagreement on a time caused bad behavior [17:31:26] huh [17:31:47] do we know what exactly that was? [17:31:51] maybe it's related [17:31:54] yeah, this is one of the things I managed to reconstruct [17:32:47] https://github.com/virtualagc/virtualagc/blob/master/Artemis071/P15.agc#L221 [17:33:02] vs. https://github.com/virtualagc/virtualagc/blob/master/Artemis072/P15.agc#L219 [17:33:51] hmm [17:33:55] somewhat suspicious [17:34:11] don't know how it could affect Earth orbit only [17:34:36] yeah, I think it is probably not a time sign thing [17:35:02] it's just kinda funny that this case you were looking at was actually the cause of the last bug fixed in Artemis :D [17:35:32] yeah haha [17:35:54] could be the same bug in a different place [17:36:01] but probably nort [17:36:02] not [18:21:47] anyone have a fairly recent Apollo 16 PDI scenario? [18:25:41] I bet Ryan has one [18:25:46] I asked him on Discord [18:31:47] AlexB_88 how recent of a scn do you need? [18:32:10] Mine are from September [18:32:11] ah hey Ryan [18:32:17] Nik fetched me :P [18:32:35] anything should be fine if it works with the current build I guess [18:32:48] Ok, and any particular phase of flight? [18:33:22] PDI minus 10 mins or something close [18:33:23] I should have pretty much any [18:33:33] Planned or actual PDI [18:33:46] I flew the delay [18:34:27] shouldnt matter, as long as it lands at the correct spot :D [18:34:40] whatever is easiest for you [18:36:12] I want to test out the new scenery by ggalfi [18:36:15] Sure let me find a save around that time [18:36:55] Try this [18:36:56] https://www.dropbox.com/s/hwg199w7yaymy2q/Apollo%2016%20-%20PDI%20Day%200002%200003%200001%200007%200005%200011.scn?dl=0 [18:37:06] Actual PDI time, P63 is up [18:37:23] Pretty sure it landed in the correct spot [18:38:57] Fire it up and see if its close enough, I have more saves if necessary [18:39:40] thanks, that should be perfect [18:40:01] Great [20:51:22] night! [13:23:15] hey [13:27:08] Hi [13:27:33] I think I just figured out the Artemis issue... [13:30:30] Can you build a modified rope with the required changes? [13:34:32] Sure [13:34:47] ok, it's the routine PRECSET [13:34:53] it calls LEMCONIC [13:35:00] make that LEMPREC [13:35:05] and it calls the routine CSMCONIC [13:35:07] make that CSMPREC [13:35:09] that's it [13:35:48] they changed some precision calculations to conic calculations to cut down on calculation time basically [13:35:54] good enough for lunar orbit [13:35:59] but Earth orbit has problems with that [13:36:04] in Skylark they changed it back [13:36:42] so only Artemis uses conic calculations in PRECSET [13:37:22] haha, they didn't even change it in Luminary. Luminary 210 uses precision calculations, too [13:41:00] I'm basing this from Artemis 72 right? [13:41:16] And this is a Skylark only change? [13:41:56] Yeah, Artemis 72. They changed it from precision to conic for Artemis, it was precision before. [13:42:06] And does this have an existing PCR/PCN? I missed most of the discussion on this subject. [13:42:22] And that causes Earth orbit problems. They had dropped Earth orbit rendezvous support for Artemis though [13:42:29] so they didn't seem to care if they broke something [13:42:50] for Skylark they had to change it back of course [13:43:11] most of the rendezvous program changes in Artemis seems to fall under one general PCR [13:43:35] PCR 1049, "CSM Automatic Rendezvous Sequence (MINKEY)" [13:43:49] so not one specific PCR for this I think [13:44:12] we have the name of the Skylark memo [13:44:16] but not the memo itself [13:44:17] (SKYLARK) PCR-SL423, "Change conic to precision integration in all rendezvous targetting programs" (not dated). [13:45:01] so this modified Artemis rope would be the best thing to use for Earth orbit missions like Skylab [13:45:07] until we have something better [13:49:45] I should find or reconstruct the source for the other ropes too, we only provide the binaries right now. [14:34:10] I might just put this change in Athena. [14:34:42] I created an offline rope a while back to implement all changes between Artemis and Skylark. I'll just add this patch to it. [14:35:24] " all changes between Artemis and Skylark" now that's some ambition [14:35:54] but it would be nice if you could give me an Artemis rope with just this one change [14:36:03] Well the most important ones anyway. Primarily aimed at making more memory available. [14:36:09] because I am fairly sure, but I don't 100% know that this is what actually fixes this issue [14:36:16] I have a scenario to test, just need a rope for it [14:36:55] right now it's just a theory [14:38:01] of course we know that this change was reversed in Skylark from the programmed guidance equations document [14:38:09] so that part is 100% clear [14:39:04] they also removed P74 and P75 in Skylark, that's why PRECSET is a bit different between Artemis and Skylark [14:39:22] turns out the Skylab didn't have a requirement to perform the rendezvous maneuvers if the CSM can't do them :D [14:46:14] https://github.com/ThymoNL/Athena/releases/download/20220426/Athena.agc.bin [14:46:40] That's a pretty clean build. Only other PCR is SL-004. [14:48:16] yeah, that probably won't cause an issue [14:48:20] thanks! [14:49:40] hmm [14:49:41] got a restart [14:50:32] ah wait [14:50:36] "Athena.agc.bin" [14:50:53] I should remove the agc there, or else it loads no rope at all :D [14:51:19] Ah you had me worried for a sec haha [14:51:37] ok, got a restart again, but this time it's not frozen [14:52:14] What does channel 10 say? [14:53:13] Wait not 10 [14:53:16] 77 [14:53:41] I'll check in a moment [14:53:56] and I got a 120 alarm in P34, but that's caused by not having the optics zeroed since the restart [14:54:43] I was in P00, but maybe enough addresses shifted to cause an issue [14:56:09] yep, I think this fixes the P34 issue. When I entered P40 it does the same calculation once as in P34. The DV changed by 0.1 ft/s, but I think that is totally fine [14:57:04] channel 77 is 4 [14:57:24] V11 N10E 77E, right? [14:57:27] Yeah [14:57:33] You had a TC Trap [14:58:27] Yeah not too worried about that. I've had restarts every time I changed ropes in a scenario with powered up AGC [14:58:31] Does V05N09 have anything? [14:58:42] I can look, I didn't have a program alarm [14:58:43] s/0908 [14:58:56] s/09/08 [14:59:30] V05N09 did actually have 116 in R3 [14:59:43] V05 N08 is [14:59:46] 3074, 14102, 0 [15:02:57] One more. V05N01E 1432E [15:03:23] That's RSBBQ. It'll be where the restart happened. [15:05:05] 2006, 0, 5314 [15:12:41] 5314 is TASKOVER, they are at the same address in both ropes [15:13:15] No idea what happened [15:14:16] well so far I had a 100% guaranteed restart if I switch ropes with any kind of address changes [15:14:19] so I am not so surprised [15:14:58] A restart probably isn't a bad idea, machine initiated or not. [15:16:06] yeah it's fine, won't have changed the results of this "experiment" [15:28:52] what are you rendezvousing with in your test scenerio? [15:29:48] https://www.orbithangar.com/showAddon.php?id=396919db-9639-4352-aae6-9630f764a324 [15:30:58] scenario launches at the actual Skylab 2 launch day and time [15:31:30] and I put that Skylab in an orbit that has its orbital plane over the Cape at the launch time [15:37:13] and about 60° phase angle at insertion [15:49:07] ahh, I remember that one [15:49:44] I can change it to some other one. This will be a requirement for running that launch scenario [15:50:19] actually I was thinking. Should I add MCC support for this rendenzvous? It's fairly contained, won't take long to set that up [15:51:14] I didn't add full RTCC MFD support for the Skylab missions, so you need to set up things manually on the config page first [15:53:16] it looks like we still have a skylab mesh [15:53:30] probably absurdly outdated though [15:54:08] what's the name of the mesh? [15:54:22] maybe we even have a config file [15:54:54] sat5skylab.msh [15:56:13] we have a similarly named config file [15:56:15] but it does [15:56:16] Module = ProjectApollo/SAT5_SKYLAB [15:56:18] I don't think that works [15:56:42] we have no Skylab moduole [15:56:44] module* [15:58:02] doesn't look too different from the Skylab1973 one in Blender [15:58:12] fairly simple [16:02:38] morning! [16:03:33] hey [16:05:14] I found the issue in Artemis :D [16:10:40] whoa!! [16:10:42] nice! :D [16:10:43] what is it? [16:16:58] all P34s fault [16:17:14] they changed some things from precision to conic calculations [16:17:21] to make it calculate faster [16:17:31] but for Earth orbit that isn't accurate enough [16:17:40] they changed it back of course in Skylark [16:17:57] as simple as changing one CSMCONIC to CSMPREC and LEMCONIC to LEMPREC [16:18:45] Thymo made me a rope with it and from P34 to P40 the DV basically didn't change [16:18:50] 0.1 ft/s in one axis [16:19:09] before it was 15 ft/s out-of-plane and not much better in other axes [16:19:53] I had a scenario saved in P00, after P34, but before P40. It still had the state vector at TIG saved from P34 there [16:20:01] and then when I entered P40 I saw a different state vector [16:20:09] which I thought was wrong because it gave a bad burn [16:20:40] but actually it was RTARG, the targeted position vector for Lambert aimpoint, that got calculated with too many conic calculations in P34 [16:20:52] and then P40 integrated(!) the CSM state vector to TIG [16:21:51] so the correct, integrated state vector at TIG targeted the inaccurate RTARG [16:22:11] that's what causes the bad DV in P40. [16:22:40] P34 showed a pretty good burn solution because it equally used conic calculations for CSM and LM state vector [16:22:51] but P40 doesn't use the DV from P34, it uses the RTARG [16:24:03] So it was all a bit confusing because it looked like it was more the fault of P40 [16:24:12] but that wasn't the case [16:25:33] hah, amazing :D [16:26:44] very nice work [16:27:10] and it seems like the routine where the two lines need to be changed gets used by P33, too [16:27:14] maybe even P32 [16:27:22] so it fixes the same issue there as well [16:27:39] although I don't think it would result in bad burns if P33 is used in Earth orbit [16:27:43] just a bit less accurate [16:28:05] it's mainly a problem with Lambert aimpoint programs P34 and P35 [16:29:02] when I searched for any PCR like this it didn't come up. I think they put a lot of rendezvous program changes all in one PCR [16:29:06] PCR 1049 which added MINKE [16:29:07] Y [16:29:26] so this change also belongs in that PCR [16:29:47] (SKYLARK) PCR-SL423, "Change conic to precision integration in all rendezvous targetting programs" (not dated) [16:29:52] that's what changed it back [16:37:37] ahhhhh yeah [16:50:35] oh I forgot that the Skylab missions were so close to each other [16:50:54] the limitations in Artemis mean that it can't be used after 17 February 1974 [16:51:10] Skylab 4 landed on February 8 [16:51:37] hah oh man [16:52:12] But we might as well try to figure out the planetary inertial orientation routine [16:52:21] and make changes in a modified Artemis [18:43:52] what do you mean, figure out the planetary inertial orientation routine? [18:48:33] that's the main cause of the 17 February 1974 limit [18:48:53] by figuring out I mean implement it haha [18:49:10] the programmed guidance equations should be a big help [18:51:17] if we e.g. wanted to fly ASTP with the modified Artemis [18:55:11] lol gotcha [16:29:23] hey Nik [16:33:16] hey [16:43:34] morning! [16:50:22] hey Mike [16:50:30] what's up? [17:01:03] I started digging into why my thread pool was so slow last night [17:01:55] it turns out i was copying a fairly large vector 2x every substep [17:02:42] oof yeah that will definitely not help [17:05:42] so now im just calling startwork with a pointer to the vector [17:06:05] so how is performance now? [17:06:47] when i get past the access violation issue i have now I'll let you know haha [17:09:24] the copy method was not noticeably different until you went over 10x and then it really slowed down [17:10:15] hehehehe [14:25:41] hey [15:11:57] Hey Niklas [15:15:35] hey guys [15:28:29] the ground solution for Skylab rendezvous maneuvers was calculated using the DKI processor. I would like to overhaul our version of that a bit, but I am running into issues. [15:28:58] The more I read about it, I can't see how they could have used the DKI for some of the lunar orbit abort maneuvers. [15:29:30] That is what our DKI can do right now. So if I would make it more realistic, as I understand it, I would be taking capabilities away [15:29:44] and I have no idea what else they would have used to come up with those maneuvers [15:31:26] especially the No PDI+12 abort for the later missions. There is an abort maneuver with a fixed vertical DV of 50 ft/s and some horizontal DV, whatever necessary for correct phasing [15:32:00] morning! [15:32:04] half an orbit later a fixed 10 ft/s horizontal boost maneuver, just making perilune a bit higher. And then a fairly normal CSI/CDH sequence [15:32:07] hey [15:32:28] But I don't see any DKI version that can do all that. But also no other processor... [15:32:48] I hope it's not a case where the FIDOs had to manually adjust maneuvers based on charts and what not [15:36:03] the next Apollo in Real Time mission is Apollo 16. I'll probably figure out how they did it from that. [15:36:11] but it's still a few months away I believe [15:45:17] one of those things where I would think we already have enough information about how they did things, but apparently no :D [15:48:19] and now I see that on Apollo 14 they used 75 ft/s vertical DV instead of the 50 that was planned (and I always assumed), just great, haha [16:51:51] its too bad visual studio doesnt allow you to change the dificulty. definitely stuck on hqrd mode [16:52:01] *hard [17:15:45] ummm [17:17:23] lol, hard mode? [17:29:16] im like a cat up a tree with this one. i climbed up here, but im not sure how to get down [17:54:56] but i said "umm" more to that interesting quit message [18:40:33] Pewte, it looks like you might be having some connection problems? [19:01:30] cya! [16:52:11] morning! [17:18:25] hey Mike! [17:18:48] what's up? [17:19:33] I made a bit more progress on my project last night [17:20:21] by far the most resource-intensive thing in NASSP are the AGC threads though [17:20:44] yeah, makes sense [17:22:21] I'm sure it's O(n) its just that n gets really big... [17:23:38] do you think with a different implimentation of the emulator you could increase performance by handeling some of the internal operations concurently? [17:24:07] no, I don't think so [17:25:04] brb [18:39:52] back [19:44:55] thewonderidiot, how are your projects going? [19:46:37] good! I'm trying to finalize the rope reader chassis this weekend so I can start having parts machined [19:47:10] also going to start the layout for the full driver board this weekend, probably [19:47:19] and the CDU should be shipping next week [19:50:15] yay! [19:58:34] hello [20:01:44] hello [20:04:32] whats up? [20:05:30] I've been pondering about reworking the Mission class, rather than having a bunch of pre-defined fields in the class that are returned via public functions, and instead have some kind of a hashmap that can be queried. Admittedly, it might be an overengineered solution, but it would make the reading code much simpler as more mission parameters are added over time: simple iterators over each value in the hashmap which won't [20:05:31] need to be changed each time a new parameter is added [20:08:49] does that seem like a solution in search of a problem or could it be useful? [20:15:18] I think the primary difficulty is that if we add any new types to the mission parameters it means we have to add a new hashmap because they can only store one data type per map [20:16:24] so for example we have a VECTOR3 for CSM CG, and a MATRIX3 for LM CG, but those two parameters are the only ones of those data types, meaning at least for the time being they are wastes of maps [20:26:16] probably a better question for Nik to be honest [20:26:37] would this allow us to more easily customize missions? [20:32:35] well, it would be easier in that, if you wanted to add new parameters to mission files, you don't need to touch the file reading code unless you add a new data type [20:32:59] you'd just need to define a new entry in one of the maps, and that would be that [20:39:04] the reason I've been considering this sort of thing is part of a larger plan to try and eliminate the massive if-else blocks that are all over the place, in favor of more query/lookup based solutions that aren't as intimidating to look at and work with [20:40:05] ahhh that makes sense [20:41:49] like, panel rendering code has hundreds of lines of code in one monolithic function when in reality it would probably be more sensible to instead call the relevant panel's rendering code, at the very least, and it would be nice to not need to add/remove a new case to an if-else block every time we add/remove an element or panel [20:42:55] because that's really intimidating to refactor or extend [20:43:35] I understand [20:44:00] I would still check with Nik but I am much more onboard now [20:44:32] cool [20:47:03] I'll definitely want to consult Nik since it's likely a huge undertaking, and there's plenty of details that I can't really decide on with my limited understanding of the codebase. There may or may not be performance implications as well, though they could be positive or negative or maybe even negligible [20:58:17] I wonder if you could use a map for the telemetry code, now that you've got me thinking about maps [20:58:47] its a giant switch structure currently [21:06:21] it would absoultely need to be performance-conscious in the case of telemetry though [21:09:30] true, but hashmaps should have guaranteed O(1) lookup time, especially since I presume they would be generated/initialized once at sim startup [21:38:26] switch statements are very often compiled as jump tables that are effectively O(1) as well [21:38:31] depending on compiler settings [21:42:02] that's very true, and in plenty of use cases it is unnecessary to do anything else and would be an overengineered solution [21:43:03] but at the same time, some of these switch-case blocks and if-else blocks are really egregious because they grew out of control into dozens and dozens of cases, and that's the kind of situation where I think having a more compact solution is preferable [21:43:53] or at the very least, separating the logic out of the branch logic, so we don't have massive monolithic functions [21:44:13] separating the functional logic out of the branch logic* [22:20:11] Im so glad that compilers are smart and can make sense of my garbage code [22:43:59] yeah lol [22:44:03] goes for me too [23:10:45] n7275: What do you mean by the AGC threads are O(n)? [23:12:33] CaptainSwag101: I like your idea of iterating over a hashmap. [23:13:59] I must also add that while I like refactoring stuff I like things that add value towards the NASSP 8 milestone even more :D [23:15:31] A map for telemetry could work for internal representation but not for transmission between vessels or applications. The stream it exports currently is quite efficient and I intend to keep it mostly in its current form with the future API [23:16:13] Hashmaps have a theorhetical best-case beformance of O(1) but in practice this is slightly higher [23:17:06] Worst-case lookup for a hashmap is still O(n) [23:35:55] True [23:36:15] but yeah the main goal is just to clean up the code, eliminate the spaghetti [00:16:27] Thymo, i ment with respect to increasing time acceleration values. as timestep length increases, the number of agc cycles increases proportionally [00:22:34] hmm, one of the things I'm gonna need to work out with a hashmap implementation, is how to provide the list of keys to other code, so they can lookup parameters without needing to use a literal [00:24:36] That might make the code less clean than just having individual fields for each param [00:26:05] at the very minimum I'd need individual #defines or something for each parameter name [00:26:26] so by the time it's all done it will only serve the purpose of cleaning up the I/O logic [00:28:06] and... that's not exactly a satisfactory justification for all the work it would involve [00:31:37] actually, I wonder if I could use a macro to convert an enum name into its string representation? that way I could provide a simple enum value for keys (or just use an array instead of a hashmap for guaranteed O(1) performance) and still have a way to compare a string param name when reading the file [00:32:59] thinks this sounds a lot like X-macros [00:33:02] :P [00:33:06] LOL [00:33:13] honestly you're kind of right [00:33:34] that might be a smarter (if perhaps harder to parse for newcomers) solution [14:08:51] good morning [14:13:55] hey [14:22:05] what's the best way to test out your new code [14:22:55] start the scenario I added [14:23:33] requires the Skylab1973 addon being installed [14:24:22] this is really just a Saturn IB launch for rendezvous tool [14:24:31] so right now we have no other scenario that applies [14:26:10] then go to Utilities, LVDC [14:26:27] we have no way to dynamically change the launch time, so you need to input the time, 13:00:00 [14:26:34] choose the Skylab as the target [14:26:50] and then go to the display page to calculate [14:27:07] you can of course choose other liftoff time options, they should calculate, too [14:27:15] to see how the launch azimuth changes etc. [14:27:32] and then you can uplink the launch targeting to the LVDC [14:27:43] There is not much feedback when doing that though [14:27:51] Maybe I should add a bit more of that [14:27:56] in LVDC and on the MFD [14:38:30] hmm [14:38:37] I'm seeing some issue when doing that haha [14:38:47] ah no [14:38:52] I was just dumb [14:39:05] chose AS-206 as the rendezvous target [14:52:13] cool. I will checkout and build your branch and take it for a spin [14:54:02] There is a few steps more involved if you actually want to launch it and rendezvous using the RTCC MFD, let me know if you want to do that, too [14:55:55] i have to run out and do some things today, was going to try this later. are they steps that I could follow looking back at my IRC log? :) [14:57:23] sure [14:57:50] on the config page, date and launch time are 0. That's because the MFD doesn't have the automatic mission init parameters [14:58:03] all you need to do there is enter the date and predicted liftoff time [14:58:11] then the RTCC should be set for prelaunch [14:58:29] I used this for the rendezvous: http://www.jamesoberg.com/skylab_rendezvous_profile.pdf [14:59:04] when on-orbit, you need to go to Rendezvous, Skylab for most of the maneuvers [14:59:40] when/if you get there I can tell you more :D [15:02:25] okay. i will let you know how far i get. [15:06:17] we don't have any full checklists for Skylab yet, I used that Skylab 4 Rendezvous Book from the PDF I linked [15:06:34] but it doesn't have procedures for e.g. separating from the LV so early on [16:35:21] morning! [16:48:16] hey Mike [16:48:58] what's up? [16:49:16] listening to the Apollo 11 FIDO, haven't done that and in a while [16:49:21] and you? [16:50:23] just woke up -- very lazy Saturday :D [16:50:34] but I'm trying to finalize the mechanical design for the rope reader today [16:50:53] finalize sounds great [16:58:00] I can't wait for the Apollo 16 MOCR audio to become available, there is a lot of stuff from the FIDO I could use [16:58:15] is it supposed to be available soon? [16:58:17] I am hoping for an answer like: use processor X using inputs Y [16:58:32] but often it will be: manually adjust everything for hours :D [16:58:37] hahaha [16:58:41] it's the next mission yeah [16:58:45] sweet [16:58:47] could still be a few months away [16:59:01] I think in November they said they will miss the 50th anniversary [16:59:08] for the release [16:59:39] just like it was a problem for us, the national archives has the tape and they were closed for basically years [17:00:05] right [17:02:24] there are still a small number of mysteries to solve even with the Apollo 11 audio, so I am searching for that again [17:03:33] like their weird LOI-2 calculation procedure. I already know they put a fake LM state vector in the RTCC and then calculated a rendezvous maneuver with it [17:04:00] to take the mascons into account for the trajectory [17:04:29] seems like they still used a similar procedure on Apollo 16 for the DOI performed by the CSM [17:04:36] but how exactly they did that, no idea [17:04:55] hah, that's clever [17:06:15] yeah, very clever. Except they still didn't have the gravity field figured out completely [17:06:56] so the 54x66 orbit did not quite become the nice and circular 60NM orbit at the time of rendezvous like they wanted [17:09:21] "The backup [17:09:22] computational technique of "a rendezvous with a phantom vector" was [17:09:23] utilized in order to achieve the nominal post-DOl orbital period to [17:09:24] minimize the probability of a GET update. " [17:09:28] Apollo 16 [17:09:55] The LOI processor can calculate the DOI using an integrated trajectory already quite well [17:10:04] maybe they had that as their primary method [17:10:22] starting with Apollo 14 that is [17:13:00] I could probably come up with a DOI-only processor using that part of the LOI processor flow charts [17:13:49] our current method is not optimal and doesn't work at all for Apollo 17 [17:24:05] hmmm, interesting [17:24:14] so you know what the backup was but not the primary :D [17:28:29] I know on 13 they had an "integrate option" already for DOI, but it must have been a bit of a hacked-in version [17:28:45] and I don't know much more about it as they never got that far haha [17:42:28] heheheh [19:33:20] some day we'll have mascons in Orbiter [19:37:46] having the same gravity model as the AGC on the last few missions is really already enough for our purposes [19:38:39] everything else is overkill and will require us to use procedures like state vector time tag biasing, which they did on the later missions, too [19:39:50] at least I wouldn't feel very comfortable going directly from what we have right now to a super complex model [19:40:11] a bit like atmospheric drag, it's just so many places in the RTCC that need updating to support it [19:49:44] but there is also no reason that you couldn't use my system with just the agc coefficients [19:51:53] ah that works? [19:53:02] your system is compatible with the potential function used in the AGC? [19:58:15] i need to verify that i dont have a sign error, but I can't do that until i have a working graphics client to build with. the code itself is capable of parsing arbitrarily large n x n tesseral maps. if i wanted to make one with just the agc coefficients i would make a custom gravity coefficient file that we could specify in earth_virtualagc.cfg with only the agc coefficients, and make the others zeros [19:58:59] and i have verified my code against the results of the paper by which it was inspired [20:01:43] hmm ok, but that doesn't really answer my question. Does the AGC even use this same sort of system? [20:05:13] https://i.imgur.com/Skhb6vr.png [20:08:31] yes. same method [20:08:55] ah, that's great [20:09:31] The main thing we want is the HA and HP growing/diminishing over time [20:09:49] that's what really throws us off the flight plan right now, especially the later missions [20:10:18] If we can just following the timeline and don't have e.g. CSM circ maneuver and LM DOI-2 maneuver exactly at the same time, that would be good :D [20:10:42] and to achieve that the AGC model is enough [20:11:53] everything else is bonus, I'm already happy if we get to the point of not having to null two values in the AGC padload [20:11:59] yeah, about the only thing that my implimentation does is elliminate the singularities at the poles [20:12:12] ah right [20:12:20] Yeah I guess that was no worry during Apollo [20:12:59] yeah haha [20:16:00] it would also be expandable to earth/mars/etc the only thing it doesnt do that GMAT etc. do would be stuff like tidal shifts in gravity coefficients [20:17:07] at that point some other limitations are a lot more relevant, like some flux value that Orbiter assumes constant used in the calculation of atmospheric density for high altitudes [20:17:57] I think I read that can make a big difference [20:18:28] Skylab would probably agree [20:20:47] and in terms of accelerations, if we go into that much detail we need to make urine and waste water dumps and apparently even fuel cell purges have an acceleration [20:21:59] the AGC doesn't take drag into account, that wasn't so helpful with a contingency procedure on ASTP [20:22:08] ASTP inserted in a quite low orbit, 80x100 or so [20:22:32] and there was a possible contingency where they couldn't be sure the S-IVB is safe [20:22:55] I guess that was the same for all missions, but ASTP had a docking module to extract [20:23:07] so there was a procedure to get away from the S-IVB without the DM [20:23:28] safe, or make sure it is safe, the S-IVB in the next few hours and then re-rendezvous [20:23:59] but because all of this happened at quite low altitude, they would have, on purpose, made the CSM fly in its most draggy attitude [20:24:06] and the S-IVB in the least draggy attitude [20:24:21] because otherwise the relative navigation would have been thrown off by the S-IVB having more drag [20:25:48] that will be fun to try at some point [20:26:11] We can basically already do it, we have a docking module [20:26:16] just need to set up a scenario [20:28:39] I need to keep working on the padload generator [20:28:55] command line won't do with the inputs like lunar landing site, that's a bit too much [20:29:03] So next step would be a user interface [20:32:24] and sadly I will probably not figure out much about the Apollo 11 LOI-2 from the FIDO audio, they seem to have mostly figured that out without the FIDO in the backrooms [20:33:13] but they probably talked about it earlier than where I am listening [21:12:27] night! [13:03:50] hey [13:19:03] hey [13:20:51] tried out your changes last night [13:21:35] mostly at least [13:22:21] the calculation gave me a bunch of nice looking lanuch targeting results [13:23:29] i made it most of the way to launch. got delayed because that skylab addon wasnt working for me [13:23:58] so i swaped in a deltaglider with the same orbital elements [13:34:18] yeah, that should work, I tried it with the DG at first, too :D [13:34:26] about 44° launch azimuth? [13:34:54] RTCC can throw errors with some init functions there [13:35:05] It has a build in limit to the Apollo launch azimuths [13:35:08] 70 to 110° [13:35:31] 44 sounds about right [13:36:00] on the input page you can change radius, velocity and flight path angle of insertion [13:36:09] calculated liftoff time was 12:59:something [13:36:16] but on Skylab and ASTP they only varied the velocity [13:36:36] yeah I actually adjusted the Skylab state vector to have the ideal launch time close to actual [13:37:15] There are two ideal launch times, one actually in-plane, and one with the biased longitude of ascending node, for taking differential nodal regression into account [13:37:25] the second one is called "zero yaw steering" launch time [13:37:28] the first one is "plane" [13:38:04] with 60° phasing angle it's about 0.12° difference in longitude of the ascending node [13:38:17] so the difference in time is the time the Earth needs to rotate 0.12° [13:38:51] Those launch time input options can be a bit confusing haha [13:39:07] the other options are phase angle related [13:44:10] i found it very user-friendly [13:56:59] good to hear. There are more input options for the processor, but I won't add any yet in the MFD as we can't change launch time [19:42:06] Thymo, for my AGC padload generator, what would you use for the user interface? I have worked with MFC in the past, mostly because the telemetry client was done using that. Windows Forms also seems to be an option. I don't really want to port everything to C# though. [19:47:54] I have an odd problem I am trying to find a solution to. with my muli-threaded systems project, the CSM/saturn class works (as far as i can tell) flawlessly. the LM on the other hand loses electrical power for the first timestep. Can you think of any reason why this might be the case? [19:48:37] I'm probably going to use MFC again because I already know it. I've just had difficulty finding an answer what the best solution in modern Visual Studio is. Half the Internet seems to say "use C# instead lol" [19:49:18] n7275, maybe that's because of the way the power is wired together [19:49:38] the standard StackOverflow reply, "How do I do this?" "Don't. do it my instead".. [19:50:01] hmmm. maybe its the battery class [19:50:20] between the batteries and the main DC buses there are a lot of other systemd [19:50:22] systems [19:50:26] bus feed, CBs etc. [19:50:56] a long time ago I had to change the order in which things are initialized [19:51:07] or otherwise the LM didn't have power until the 3rd or so timestep [19:53:02] https://github.com/orbiternassp/NASSP/commit/aa2ef5028c3a847fa91ddf6958b65c22f7b6b662 [19:53:06] this was the commit for that [19:53:25] maybe that is related, but I am not sure [20:04:47] Personally if I were to make a new application my choice would go to Python or Go with Qt instead of C++. If you want to stick to C++ you can also use Qt or MFC. [20:05:03] All I can say is from the last couple of days that plain win32 GUIs are a PITA [20:10:28] yeah I was looking at the Visual Studio website and for a GUI without MFC etc. it has like multiple pages of code for the equivalent of a "hello world" :D [20:11:54] Qt would probably be good for portability [20:11:55] I've been trying to make a simple pop up window at the orbiter launchpad on and off for the last two weeks and all I've got is a simple window with a glitchy background [20:12:01] haha [20:13:14] I guess I could also mix languages and make only the GUI in C#, but I have never done anything like that [20:13:42] What I definitely don't want to do is port the code for creating the ephemerides and correction vectors to something other than C++ [20:13:48] because I already have that in place [20:14:32] I basically made an OrbiterSDK-less version of the clbkEphemeris function that Orbiter uses for each body [20:14:48] Just Sun and Moon of course [20:15:24] If you do C# you can be sure I won't touch it :P [20:16:51] ha [20:17:07] I might as well make the whole padload generator under the MIT license [20:17:29] We have a part from jarmonik to create the ephemerides, that used to be in the LTMFD [20:17:34] and I had added it to the RTCC MFD [20:17:42] and the part from Orbiter code is MIT, too [20:18:41] Do you want to do MIT? [20:18:53] MIT can be 'upgraded' to GPL no problem [20:19:12] I was just thinking, two parts of the project are MIT license already [20:19:24] I mostly don't want to have to think about licenses [20:19:48] I made modifications to it all, but I can definitely not argue this time that I created all of this code [20:21:45] and of course there are also parts I took from my RTCC MFD code [20:22:11] It's your code, so your choice. Only point I could argue is that everything released under orbiternassp on Github uses the same license for simplicty but no objections otherwise [20:22:46] yeah that makes sense [20:23:07] so probably GPL, I'll think more about it when it's actually in a releasable state [20:23:57] If you include stuff from the RTCC MFD and want to release it under MIT you need to make sure it's only code you wrote and not including someone else's. MIT->GPL is fine always. GPL->MIT only with permission from all copyright holders [20:24:57] yeah that part would be no problem [20:26:07] only my code, jarmoniks' code that used to be in the LTMFD and he gave to me (under MIT license) so that he could get rid of it in the LTMFD, and Orbiter [20:32:23] Reviewing your patch now. What's it about. Variable launch windows for Skylab EORZ? [20:33:18] And "Apollo 18"? I assume that's because APOLLONO never considered AAP? [20:34:15] mostly because APOLLONO is numeric [20:34:20] I wanted to use SL-2 instead [20:34:33] but I would have to rework a bunch of code for that [20:34:39] I'll do that at some point [20:35:06] And yeah this is to calculate the launch targeting for Saturn IB missions launching to some target in orbit for rendezvous [20:35:40] We still can't stop and restart countdowns but as long as the planned launch time is close to what the calculation comes up with it can get into the right orbit [20:36:20] So it does the targeting but we still have no way to actually apply those numbers? [20:36:34] They are applied, you can uplink them to the IU [20:36:56] but the tool would normally come up with a optimal launch time [20:36:59] can't use that [20:37:25] well, you could start the scenario, calculate the launch time, close the scenario, adjust the mission time, restart scenario [20:37:35] Right, so it makes the IU sidestep or something? [20:37:37] so scenario editing [20:38:03] Yeah insertion happens into the right orbital plane [20:40:17] https://i.imgur.com/WpPFZhz.png [20:40:19] from the EDD [20:40:31] that is what is getting uplinked [20:40:38] not the checksum :D [20:41:38] and the display shows the azimuth you need to use [20:41:50] in V78 and ASCP [20:42:00] to set the ASC* [20:42:03] ASCP [20:43:03] launch window was usually about 15 minutes for Skylab missions [20:43:15] so as long as the launch time is in that window it will give reasonable results [20:49:42] if you are confused why the LWP files were already there, a long while ago I actually copied over those files from my Shuttle FDO MFD for Shuttle launch targeting [20:49:50] Made them buildable, but not usable yet for Apollo [20:49:56] but now they finally can be used [20:50:13] I see, now that you mention it [20:52:31] Aaah the RTCC. Always making sure I remember the existence of do while loops haha [20:53:58] Yeah if you see do while in my code you can be sure it's the closest translation from some sort of original source from the 60s or 70s :D [20:55:13] not even I would come up with that on my own [20:55:20] the screenshot on Discord :D [20:55:43] oh I have the flowchart to prove it haha [20:56:04] Please show me who came up with that abombination [20:58:15] see Discord [21:00:18] while I wouldn't come up with this myself, using do while instead of while can cut down on some code duplication quite nicely [21:00:45] because the condition for the while loop might require a lengthy calculation [21:00:49] It has it's time and place. I rarely find myself using it though [21:01:04] yeah, I would probably use another sub-function instead [21:01:17] which does the complicated calculation [21:01:30] It's just like recursion vs iterative. You can do it both ways. One is quicker, the other better (usually) [21:02:45] and back then they were all about quicker [21:03:09] But that doesn't excuse everything they did coding wise [21:04:39] Margeret Hamilton said that in her interview for the computer history museum. Back then if you made your code as complicated and difficult to figure out as possible, you were one of the cool kids [21:05:17] Kind of made me rethink even trying to replicate RTCC routines directly instead of using a more modern equivalent [21:06:42] Eh, there's something to be said for having exact specifications for the code you're writing. I'll take well documented bad code over undocumented good code. [21:07:10] Does the Skylab mission you use require my modified rope? [21:07:58] I wouldn't say required, I added the Skylark calculations to the RTCC MFD when we first got the GSOP for it. So you can use the RTCC MFD instead of P34 [21:09:22] Maybe if the rope gets a few more Skylark features then I would definitely say it's the better version to use [21:10:15] but it's very early days for that launch scenario [21:10:18] Gotcha [21:10:23] it's even launching from LC-34 :D [21:10:47] I have one minor remark but nothing requiring a change. [21:10:57] Approved [21:11:34] yeah that remark makes sense, I should add general functions checking if it's a Saturn class in general of Saturn IB or V specfically [21:11:41] or* [21:16:16] Does these changes need to go into the RTCC manual? [21:17:20] Yeah probably [21:17:45] I can do that tomorrow, it can go into the PR [21:18:10] Not that many input options yet anyway, most of them are hidden so far. And I should explain the resulting display [21:21:29] good night!