[15:27:53] NASSP Logging has been started by n7275 [15:27:55] hey guys [15:32:22] should we encourage people to diret development talk/questions to IRC vs discord? [15:32:40] /s/diret/direct [15:38:53] I would say all actual development talk should be here [16:45:03] morning! [16:53:30] hey mike [16:55:31] what's up? [17:04:06] not too much [17:05:36] i have a feeling that im going to have to put the thread project on the back burner for a while [17:07:15] so i guess ill need to find a new project, maybe one of smaller scale next [17:11:36] booo [17:29:04] but yeah makes sense. multithreading is an enormous can of worms [17:33:22] in its curent state it isnt even faster, and i still need to add things line syncronization for all the SRC->voltag() calls, etc. [17:46:36] *like [17:46:55] plan b, wait for computers to get faster [17:48:12] hehehe [18:53:53] if you want a smaller project you can help me with the 2D panel... ok that was a lie, not actually smaller :D [18:58:50] hehehe [14:37:47] hey Niklas [14:40:34] hey [14:47:29] I got thinking about my threads last night. I think the problem is that I'm trying to do this with as many threads as possible, which in my case is 24. if I scale that down to like 2 or 4, results are substantially better [14:56:05] interesting [14:56:35] why would that be? [14:57:24] probably the overhead from locking/unlocking/waking all of them [14:58:15] there also seems to be some weird competetion between the AGC threads and the system threads [15:19:36] no matter how dificult implimenting this gets though, at least we won't have to update any scenerios :) [15:24:29] same for my 2D panel update. A looot of code changes, but scenarios wont care [15:26:13] I need to add a mutex to ship_object, so that when a particular system is being updated/refreshed it can't touch connected systems. e.g prevent it from updating a battery and itc charger concurrently. [15:26:31] *its [15:27:57] figuring out how to prevent deadlocks there will be fun [15:44:35] speeking of pannel stuff, does any of the SPSDK pannel code get used for the 2d pannel? [15:44:58] *panel [15:53:04] hmm, don't think so [15:53:10] I should try deleting that some time :D [16:17:46] morning! [16:18:37] hey Mike [16:18:45] what's up? [16:32:20] i decided against flying a mission last night, in favor of messing with my code again [16:32:46] hehehe [16:33:35] maybe with a few more adjustments, i can fly a mission *with* this new code. [17:39:01] I have done that so often, just waiting for doing one more code update to fly another mission :D [17:41:34] at this point I am not sure which mission I would fly next though [17:41:43] I haven't flown all of them from start to finish though [17:41:55] maybe I should do Apollo 13 with explosion [17:58:33] I'm waiting to fly that one until I have fuel cell code that depends on partial pressures of reactants [18:00:22] I still want to try a non-landing polar orbit survey mission at some point. [19:33:39] this new Mercury addon is quite impressive [19:40:19] Yeah, I would love an open source version [19:41:27] I wonder how that secondary view works [19:41:49] the periscope [19:42:03] I didn't know that was possible, it definitely has a different FoV than the main window [19:44:32] I wonder if it's a camera projecting a texture [19:44:54] just going off of the screenshots though, havn't tried it yet [19:51:21] I think the 2016 Vostok addon has something similar [19:53:15] It does https://youtu.be/m7hpU9pV3N8?t=790 [20:04:34] for some reason this is making it very hard for me to be interested in re-reading ASME B30.30 again right now haha [20:08:10] What do you mean? How could anything be more exiting than reading safety standards? :P [20:25:16] custom camera [20:25:53] seems like the VC will be able to support the sextant at some point [20:28:36] yay! [20:29:26] ...to the sextant thing, not the safety standards [20:54:12] we would have a slight performance advantage in that we would only need one camera on at once [21:04:49] yeah, I'll have to start reading in the DX9 client API [21:05:00] night! [22:48:14] n7275: This mercury familirization manual is pretty handy: https://ia800500.us.archive.org/8/items/nasa_techdoc_19790077942/19790077942.pdf [22:48:25] It's quite a fun addon to play around with [01:24:56] Thanks! [14:45:37] hey [14:46:15] hey [15:05:36] Hi [15:16:30] oh boy, there is currently a moon landing conspiracy discussion happening in my office here. I need to remain calm and not do anything too drastic... [15:18:16] Just think how calm Buzz has always react... nevermind [15:20:19] lol, I opened my big mouth. at least no one needs to wonder about my opinion now haha [16:20:06] morning! [16:20:13] your coworkers actually believe in that crap? [16:20:17] :P [16:34:37] yeah how can you believe Apollo 11 landed, have you seen the list of radar anomalies that software had [16:38:40] the best thing about Ron scanning all these first pages of MSC memos, he also scanned the first pages of change documents [16:38:58] and those changes usually have a bunch of features listed on that page [16:39:29] it's helping me figure out how they went from Apollo to Skylab rendezvous targeting on the ground [16:39:34] hah nice [16:39:53] interestingly I do have the main document from the archived NTRS [16:40:12] so if I ever ask Ron to scan this, all I need is the changes [16:45:26] would have been nicer of course if NTRS already had the change documents :D [16:45:32] but it only rarely seems to have that [17:18:03] haha if only [17:33:43] I'm not sure how much input MSC had on MIT when coding the Skylark rendezvous programs, but I feel like I see some "yeah MIT did it better" changes in these update notes [17:34:27] always fun moments. I would also like to know about the whole back and forth on the powered descent abort targeting. [17:34:45] In the PGNS Apollo 9, 10, 11 and 12 had different schemes each mission [17:34:54] and they settled on what the AGS did on Apollo 11 already haha [17:35:26] so big brother AGC had to acknoledge that little brother AEA did something simpler and better [17:36:07] oh really? [17:36:10] lol [17:36:22] that had to hurt a little bit :P [17:38:41] I'm sure the TRW software team was also a lot smaller [17:40:24] the Apollo 12 LGC uses the same scheme as the Apollo 11 AGS, but they did slightly expand on it with a second segment for late PDI aborts [17:40:41] Apollo 12 flew FP6 so there was a incompatibility between the two programs [17:40:55] from Apollo 13 on they finally had it all figured out [17:42:22] I guess another reason for this is also that the mission techniques for descent abort were a bit fluid until they actually started landings [17:42:32] so the software had to follow the trend of the current best technique [17:44:47] meanwhile TRW had already figured it out so they just sat back and watched :D [17:46:10] yeah definitely in terms of making use of orbital mechanics knowledge TRW won that one [17:51:19] ohhhhhh man the CDU just shipped [17:54:00] :D [18:37:33] so, roughly one week until I get to pop it open and see what mysteries it contains [18:39:32] nice! [20:50:29] night! [14:14:29] good afternoon [14:16:02] Hey, good afternoon :) [14:17:44] I think I am happy now to drop one maneuver sequence from the DKI, one of our rendezvous processors. I know the real DKI never could calculate this sequence and it's fairly simple to do with the MPT. [14:18:09] I have been thinking about this a lot lately, haha, all caused by the Skylab stuff, they ran this rendezvous processor as part of the launch window calculation [14:19:41] Not many people will care yet anyway, this specific sequence is mostly used for Apollo 13 and later, No PDI+12 abort maneuver [14:21:11] Sounds good. I'm sure I want to fly it at some point. I've been wanting to gain a better understanding of how rendezvous actually works instead of blindly following procedures [14:26:02] now I am regretting doing the current PR in my Orbiter2016 branch, you always come up with something to change... [14:26:07] but it makes sense [14:27:31] I'm not sure I completely understand it though. So there would be some new header file, which has an enum defining each class type [14:27:40] and there is one IsVessel function with integer input? [14:27:56] and inside it, it does switch/case with each class name? [14:28:12] would that be a global function, or would you put it in a class or... [14:32:03] Hmm, maybe not it's own class, unless you need state. A namespace could work. [14:32:26] Then we can have a nassp_util namespace for other utility functions we may need in the future [14:33:45] So you use nassp::util::IsVessel(...) or if you want to you can then have: using namespace nassp::util. [14:34:05] we already have nasspdefs.h which does something similar [14:34:13] mostly #define though [14:34:16] but some functions [14:35:13] Those are just inlined functions with very basic conversions [14:35:17] yeah [14:38:02] I guess I'll also call the file nassp_util.h then [14:39:07] and how would you implement my solution for the general Saturn class. Just two function calls to IsVessel? [14:39:39] I had a IsSaturnIB and a IsSaturnV. And IsSaturn just does return (IsSaturnIB() || IsSaturnV()) [14:41:08] ah I guess I can add Saturn class as a separate thing in the enum [14:41:16] and just check on both class names [14:41:27] Or just call IsVessel again [14:41:44] Maybe you could make the switch fallthrough some cases [14:42:07] Or split it into an internal function if it's too complex [15:09:09] recursion also works [15:09:21] calling itself with [15:09:26] case Saturn: [15:09:27] return (IsVessel(v, SaturnIB) || IsVessel(v, SaturnV)); [15:10:06] I forgot if you liked recursion or really hate it :D [15:10:20] alternatively [15:10:21] bool IsVessel(VESSEL *v, ClassNames name1, ClassNames name2) [15:10:22] { [15:10:23] return (IsVessel(v, name1) || IsVessel(v, name2)); [15:10:23] } [15:10:36] whichever has a better chance of getting approved by you... [15:28:08] Wait, what is the purpose of the second one? [15:28:45] Check if it's either a V or IB? [15:29:06] yep [15:29:34] I'd go with the switch [15:30:21] ok, so recursion [15:31:00] should work [15:41:40] Nice, looks good [15:44:30] thanks [17:04:02] morning! [18:21:57] hey [18:28:39] what's up? [18:48:34] still looking at rendezvous stuff [18:48:35] and you? [18:50:48] trying to figure out what the heck system 207's story is [18:51:52] I guess the answer isn't, it launched on Skylab 3 :P [18:52:07] hahahaha almost certainly not [18:52:14] unless they were getting extremely desperate [18:53:28] yeah Skylab 3 was system 221 [18:55:10] but Skylab 3 was AS-207 ;) [18:55:49] lol I wonder if there are any missions whose G&N system number matches their AS- number [18:56:24] I don't think there are [18:56:33] Hey guys! [18:56:37] hey there :D [18:56:42] Training, training and more training ! [18:57:33] Apollo 7 and Skylab 2 were only off by one number [18:57:35] hey Turry [18:57:46] https://prnt.sc/uyyLs4d-rvmf [18:57:53] Gutten tag [18:58:06] (I hope I didn´t made a typo) [18:59:09] one t too much [18:59:42] although depending on the area in Germany it could be pronounced more like "gutten" :D [19:00:11] My teacher was from frankfurt I think [19:00:30] Went to a quick german course many years ago [19:00:35] Forgot everything :D [19:00:41] Too quick course [19:02:51] nice LTA you got there [19:02:56] just lighting is suboptimal [19:11:46] yeah [19:12:06] Although I enabled ambiend light on debug options, it was dark too [19:12:14] Maybe wrong sep attitude? [19:12:43] https://prnt.sc/XaU325zibvnz [19:13:25] I doubt it [19:13:39] all other missions yawed left or right by 40°, but not Apollo 8 [19:13:45] Aha [19:13:53] so I think the attitude is right [19:14:10] Yeah, just transposition and  pictures... [19:14:16] No docking [19:14:20] sim [19:14:48] could also be that LTA mesh and the way the lighting works in general, maybe has a hard time getting into that ring [19:15:17] yeah [19:25:12] So, I am running 1881. Is it safe for me to go to 1882 or 1883? [19:27:07] I already founds bugs in 1883 [19:27:16] nothing that would affect Apollo 8 [19:27:59] There was a bugged invoice today at job [19:28:14] I already had the may bug :D [19:28:25] right, only one bug per month allowed [19:28:42] 1883 is on the works still, right? [19:29:07] oops, released 4 hours ago [19:29:33] yeah [19:32:44] What is the "nassputils.h" file for? [19:32:59] just some utility functions [19:34:18] And yeah just some functions for failures, that I assume may come in the future [19:34:32] PanelSwitches::SetFailedState(const char *n, bool fail, int fail_state) [19:35:17] yeah, PanelSwitches is where all the switches of a vessel are managed [19:35:28] and every switch has a name assigned to it [19:35:39] with that function you can set failed any switch by name [20:09:22] Well guys! Sleep time [20:09:28] Good night [20:46:53] I do think we should add some local lights. maybe that would be a good side project for me. [20:50:51] Does anyone have a copy/link for the Mercury-Atlas 6 flightplan? [20:53:35] Asked too soon! [20:53:36] https://catalog.archives.gov/search?q=*:*&f.parentNaId=278187&f.level=item&sort=naIdSort%20asc [20:53:54] oh nice [20:54:06] I had searched for a little bit but hadn't found much [20:56:47] Meh it has revisions A and B which are pen and ink changes to the first file [20:56:54] Would be nice to have a final version [21:02:51] speeking of lights, the cockpit lighting in that mercury addon is something I want [21:04:38] I love the sounds too [21:05:36] Can I get this in a PDF? https://catalog.archives.gov/id/278190 [21:06:11] Can't figure out how this works, other than viewing the pages in-browser [21:06:25] yeah same [21:06:30] might just be .gif [21:07:20] "Include thumbnails" give you poststamp size images in a pdf [21:11:40] night! [21:12:51] Oh haha [21:12:52] https://www.ibiblio.org/mscorbit/document.html [21:13:08] Meadville Space Center is useful again :D [22:15:13] oh wow [22:16:14] i need to ask estar about forum archives again. would be kinda cool if those were searchable [16:11:51] morning! [17:09:04] hey mike [17:09:14] what's up? [17:11:31] oh not too much, started working on some external lights for NASSP last night [17:12:09] nice :D [17:12:28] sounds like a sufficiently smaller project [17:13:08] I hope so haha [17:14:53] I'm trying to figure out what the correct way to take apart a CDU is [17:15:10] as far as I can tell they don't have the same fancy disassembly features that the AGCs have [17:15:54] it's kind of remarkable how different their mechanical design is, for being two boxes of the same shape and size, both designed by MIT/IL [17:42:54] that sounds like a complicated puzzle [17:59:43] I also have no idea what the two little square protrusions above the test connector are.... and am wondering if they might be part of said puzzle [02:02:04] it would be really cool if visual studio had some way to know which files you wanted open in which branch [12:26:38] Awyt1 from the discord here. I've been experimenting with getting the PAMFD to fail cbs open, without actually opening them, to add additional system failures. Before I go any further I just wanted to check the best way to do this was to add CircuitBreakerSwitch::SetFailedState (like PanelSwitch) to toggleswitch.cpp, and then call a failed breaker [12:26:39] using SetFailed? [15:17:33] Abr35 I believe indy91 just added a few new functions recently related to fail states [15:20:41] it looks like you should be able to fail a cb with SetFailedState() now, if im reading this correctly [15:22:18] that function takes a name, bool failed, and then a state to fail in (enum or int iirc) [15:25:03] im looking at this on my phone so not the best advice atm, sorry [15:28:19] but im pretty sure that if you have PointerToSomeSwitchRow you can do: PointerToSomeSwitchRow->SetFailed("name",true, whatever the enum is for the state you want) [15:29:03] .tell indy91 correct me if im wrong on this [15:29:59] No problem - that's how I understood it. Tried to fail the AGC via the GNComputerMnABraker & MnB and recompiling the PAMFD was breaking all failures. Do I have to recompile the whole Project, or just the MFD? Sorry Im sure its a basic question [15:35:08] compile all doesnt hurt, not sure its necessary but there are a lot of shared files [15:35:29] breaking as in compile error or orbiter crashing [15:35:32] ? [15:56:15] Breaking as in the other failures do not work. So I can fail the LES Motor and or TowerJet Switches in the MFD, the flag changes, but switches and motors still work [15:56:50] Making it hard to test [16:37:22] morning! [16:52:44] It looks like it's compiling the MFDs but they aren't interacting with the vessel. Using VS2022, and can't find any current tutorials on setting up the environment for Orbiter. [20:32:27] hey Mike [20:33:25] Abr35 you will probably have betrer luck with 2019, thars what we're all still using [21:57:45] we're (Orbiter community at large) lacking a proper setup tutorial on build enviornment. but if you just open the VS solution in VS2019 it should build without any aditional setup. [23:28:23] So it looks like SetFail for the circuit brakers fails the image of the switch (open or closed) but not the behavior? I can still "open and close" failed breakers but their graphical appearance stays the same. Shouldn't it allow the braker to be manipulated but lock the behavior is either open or closed? [01:45:38] huh. yeah that doesnt seem right. [14:09:04] hey [14:21:50] hey Matt [14:22:20] you are wrong on this [14:22:30] I didn't add anything to the SwitchRow class there :D [14:22:37] I don't think it has any failure code [14:22:56] I added a function to PanelSwitches and that iterates through all the switch rows and switches to find the right one [14:23:13] ooh [14:23:54] well my advice to him was probably less than helpful then... [14:24:10] "Before I go any further I just wanted to check the best way to do this was to add CircuitBreakerSwitch::SetFailedState (like PanelSwitch) to toggleswitch.cpp, and then call a failed breaker" [14:24:17] Abr35 forgot what we talked about on Discord haha [14:24:21] that is not needed [14:24:35] the problem with circuit breakers right now is that it checks in the "state" variable in most places [14:24:42] on* [14:24:59] But to use the failedState variable you need to call GetState instead [14:25:15] GetState is checking if the switch should simulate failures and then either return state or failedState [14:26:18] "state" is always the actual position of the CB [14:26:23] or of a switch in general [14:27:55] CircuitBrakerSwitch::Voltage() for example checks on state right now and doesn't care about Failed or failedState [14:28:48] it does require some thinking though [14:29:03] if a CB is pushed in but it's failed open, that is an easy case [14:29:26] but the CBs have a trip point for overcurrent [14:29:45] so should it even be allowed to simulate a CB failing in the closed position? [14:30:06] Hey guys [14:30:15] Good afternoon / Morning [14:30:28] hey [14:30:32] hey [14:30:47] n7275 can answer your question on the forum best [14:31:07] short story is, a while ago there was a small physics update and old scenario take a bit getting used to the changed physics [14:31:10] but they recover [14:31:16] and new scenarios aren't affected [14:33:46] Physics or quimics? [14:33:48] :D [14:34:18] That was the name of a spanish TV show :) [14:34:41] I am now doing some electronics [14:35:36] "but they recover" What scared me was the cabin temp going up... 120ºF may not be confy :) [14:38:35] that wont happen during a mission that you fly from launch [14:39:04] Correct [14:40:24] its a bit like microwaving uptra-pure water in a smooth container [14:42:50] the new physics moves the phase boundry between liquid and gas, and also changes the energy requirements based on pressure [14:47:05] the cryo system is in a supercritical state for the first half or so of most missions, so you wont notice a change there (no energy required to go between liquid and gas) but near the end, and especially before entry there is a clear mix of liquid and vapor in the tanks, so when you load a scenerio that was simulated with the old method, some of that boils or condenses resulting in the cryo press warning [14:48:18] I understand [15:06:36] i also started a branch for adding lights [15:08:01] the lights on the csm should be fairly easy [15:08:57] ooohhh [15:09:08] Internal lights? [15:09:41] external first [15:09:45] ah [15:11:47] for some reason the latest version of d3d9 client for orbiter beta doesnt suport internal light. but ive been playing with this new mercury addon in 2016, and i love the lighting [15:12:52] which reminds me, i should ask on the forums why that was disabled [15:15:07] Could that be because some HDR "thing" has to be enabled or supported? Saying this because for example on X-Plane you have to enable HDR to be able to see cockpit lighting effects [15:15:19] But X-Plane runs with Open-GL or Vulkan [15:15:30] So don´t know if related... [15:24:00] i dont think so. the lighting options between the 2016 and beta clients are virtually identical [15:24:18] from a setting standpoint [15:24:29] *settings [15:24:42] and they dont look different [16:44:36] morning! [16:44:56] Hey [16:46:53] what's up? [16:53:24] Doing some electronics [17:20:28] oh nice. what are you working on? [17:22:23] An arduino based remote controller for my raspberry robot [17:23:38] sweet :D [18:15:29] i have a whole bunch of electronics projects that i would like to do, but i dont own an oscilloscope. should probably get one first [18:24:39] well those arebt as expensive as i thought they were... [18:25:15] *aren't [18:52:33] hey Mike [20:49:30] n7275: yeah hobbyist grade scopes have come a very very long way [21:36:05] Good night guys! [22:07:11] @indy91 Ok, now I'm catching on. The braker image is still stuck open but I was able to fail the computer via the PAMFD. I can try implementing a few random failures and then worry about github. How do we want these triggered? Adding a new tab to the PAMFD was my plan unless there's a better idea. [14:46:37] hey [14:53:46] hey [14:58:13] how is the CSM external light coming along? [15:02:29] well I got started on it on Saturday, and then got distracted by Mercury stuff on Sunday... [15:03:17] adding lights wasn't hard. I just need to make them do the drawpower and on/off stuff [15:10:55] right [15:11:14] yeah Orbiter has a decent lighting system [15:11:23] in terms of API [15:29:19] morning! [15:35:40] hey Mike [15:37:30] I finally figured out the correct way to open a CDU last night [15:37:37] just in time for it to show up today or tomorrow :P [15:42:00] so it is possible to open it [15:42:31] I already forgot all our conversations about it haha, wasn't it very difficult to do because it has basically been closed up to the point where you can't even repair it? [15:43:14] that is the backplane [15:43:25] it's still possible to pull the trays apart and get the modules out [15:44:08] ah right, just the backplane [15:47:05] I still haven't managed to come up with a good CDU joke. CDU is the second largest political party in Germany, Angela Merkel's party. [15:47:13] I've been thinking for a while :D [15:52:50] if I come up with one nobody not from Germany would probably get it, so I might as well keep it for myself lol [15:54:50] hahahaha [15:54:58] I did not know that :P [16:00:05] ok seems like I am finally getting somewhere with this Skylab rendezvous targeting [16:00:16] the ground solution, not the Skylark one I implement a while ago [16:01:28] it gave me "a" solution. Not sure yet if it works correctly. Need to actually display the outputs from the calculation [16:02:24] eventually I should be able to remove both the Skylark and our old DKI processor from the RTCC and only use the new one for both [16:09:03] nice! [16:10:06] was difficult to decide on the right version to implement. I have lots of information about it, missing lots more, and this was the main processor for Gemini rendezvous [16:10:19] undergoing development all the time to Skylab [16:11:12] one day I might develop a Gemini RTCC, but for that I need a few (hundred) more MSC memos from 1964 and 1965 :D [16:11:46] hehehehe [16:13:07] I do already have three very large volumes with flowcharts for the Goddard backup control center [16:13:16] was on the archived NTRS [16:13:47] it doesn't have any rendezvous calculations, I guess if they really needed to use the backup control center they were mostly interested in getting back to Earth [16:16:06] yeah that makes sense [16:16:17] similar to how the AGS can't land [16:17:27] those flow charts needed to be scanned at a bit higher resolution to be fully usable sadly [16:17:46] And there is lot of things I don't understand about them haha [16:17:56] referring to weird variables and doing weird things [21:03:03] night! [14:43:20] heh [14:44:03] So it turns out that in the VC the LEB DSKY is a mirror of the MDC DSKY instead of the actual MDC DSKY. [14:44:09] The 2D panel does it properly [14:44:40] https://github.com/orbiternassp/NASSP/blob/Orbiter2016/Orbitersdk/samples/ProjectApollo/src_csm/saturnvc.cpp#L1509 [14:45:06] That shouldn't fallthrough. It should call the render functions on dsky and dsky2 respectively. [14:46:15] Hey [14:48:01] good afternoon [14:51:23] Doing a bit of work on the DSKY today. It isn't being powered properly and the VC is rendering the MDC DSKY in the LEB, along with some cleanup. [14:51:33] Found some remnants of SimpleAGC :P [14:54:51] oh haha [14:55:56] I thought the ForceRestart was for Apollo 13 [14:56:02] but maybe we removed it [14:56:17] That whole variable isn't being used anywhere [14:56:26] ah we commented it out [14:56:46] hey guys [14:56:54] https://github.com/orbiternassp/NASSP/blob/Orbiter2016/Orbitersdk/samples/ProjectApollo/src_csm/saturn.cpp#L4625 [14:56:58] hey Matt [14:57:35] Well even then ForceRestart won't do anything. It just sets Reset to false.. Which it already is :P [14:58:00] if you thought the DSKY color debate was bad, wait until people start in on the flood light color temperature :) [14:59:54] Can't wait [15:03:31] n7275: How can I easily make the IMU very hot? [15:14:01] Oh [15:14:11] I didn't know the IMU Heater in the CSM doesn't even work. [15:14:32] It's just fixed at 130°F in the CSM. It's only initialized for the LM. [15:15:41] I think we reached that conclusion at roughly the same time [15:16:17] there are some generateHeat calls though [15:17:58] The ones in apolloguidance only do if the heaters are initialized. From what I can tell the only heaters in the CSM using generateHeat are the CMRCS heaters [15:22:00] IMU really should be derived from eObject [15:22:51] Ugh PanelSDK is being used in so many different ways in NASSP. It makes me puke. [15:23:42] One system inherits e_object and uses WireTo. The other has a member e_object and draws power through that. Others create their own PowerMerge to draw from both buses, some get a PowerMerge delivered to them. [15:23:45] It's chaos [15:24:12] the first way would be better [15:24:49] Here comes the DSKY... It draws power from three different sources. Can't use e_object with that. [15:24:56] Eventhough it already is. [15:25:12] The joys of legacy code [15:26:30] yeah. complete chaos [15:27:04] yeah some systems need AC and DC [15:27:15] and some systems exist in both CSM and LM and are powered differently [15:27:40] so it's mostly legacy code and people doing different things, but sometimes you have to use special solutions [15:29:53] my goal in working with it has mostly been to not make it worse [15:30:53] same [15:32:44] I do think there is an opportunity for us to clean it up and eventually release it as a seperate SDK though. but it would need a good cleaning first [15:37:58] we have our own substep function for the LM and Saturn. PanelSDK has its own version of this that we don't use because we have systems that don't get added during the build-from-config phase [15:41:07] thewonderidiot: I may be reading this wrong but can you check 4-5.10 in ND-1021042? Are all the DSKY status indicators latching and to be reset using RSET on the keyboard? [15:41:34] So if a temp or gimbal lock were to come up they would stay on until a reset even if the condition disappears. [15:41:35] https://archive.org/details/acelectroniclmma00acel_0/page/n340/mode/1up [15:41:42] If so, our DSKY is wrong. [15:47:34] morning! [15:47:41] Hi Mike [15:47:43] Thymo, can you be more specific? 4-5.10 goes on for 25 pages [15:48:42] Page 4-650. First paragraph [15:50:04] "The status and caution circuits receive..."? [15:50:28] Just above that [15:50:54] "All relays assoiciated with the relay matrix are latching type relays." [15:51:22] Is that just the ELs or the indicators also? [15:51:45] it's a mix for both [15:52:19] COMP ACTY is a non-latching relay; as are somewhere around half of the I/L lights [15:53:40] that would be a lot of duty cycles if COMP ACTY was latching [15:53:58] i.e. not all lights on the DSKY are associated with the "relay matrix", which is what they are calling the group of 120 latching relays that channel 10 addresses [15:54:20] heh, indeed [15:55:05] Figure 4-227 on page 4-663/4-664. So that would be PROG, TRACKER, GIM LOCK and NO ATT? [15:55:37] those sound like the ones under latching relays, yes [15:56:17] er [15:56:22] hold on still waking up [15:57:07] yeah [15:57:13] and also ALT, VEL, PRIO DISP, and NO ATT in the LM [16:02:52] *NO DAP [16:08:34] Gotcha. I'll give it a thorough read when I get back. Need to step away for a couple hours. [17:57:38] Abr35, are you here? [18:06:45] I am, just finished post a draft branch to be reviewed [18:07:33] Yeah I already commented on it [18:08:24] Thanks! [18:08:42] that's what I meant with using GetState instead of state [18:08:51] because the function GetState checks on the failed condition [18:09:27] and for general switch failures I added a function, might still need a bit more to get that working [18:09:32] The Saturn class has "PanelSwitches MainPanel;" [18:09:42] that's where all the switches are managed [18:09:56] so you could call MainPanel.SetFailedState [18:10:05] and the first parameter is the name of any CB [18:10:09] any switch [18:10:20] so you don't have to access the switch directly, like [18:10:30] saturn->GNPowerAc1CircuitBraker.SetFailed(true) [18:11:30] The name is define with the Register function in saturnpanel [18:11:31] GNPowerAc1CircuitBraker.Register(PSH, "GNPowerAc1CircuitBraker", 1); [18:11:37] so "GNPowerAc1CircuitBraker" is also the name [18:11:56] So in theory you could add a button in the PAMFD that lets you enter a name of a switch [18:12:03] and set it failed that way [18:14:06] Ok, I kept getting confused there on the GetState. I'll adjust that, and try the MainPanel.SetFailedState to call the switch, that definitely would make on-demand failures easier [18:15:07] and there might be more places where GetState needs to be used to really set a CB failed [18:15:22] like Current() [18:15:53] I mean I'm essentially just unplugging stuff haha. But failing subsystems in the individual system .cpp's would probably require thousands of lines of the same code it looks to me. [18:16:03] and do you still get a visual problem with switch failures? [18:16:08] I'll look through circuitbreaker switch [18:16:24] Yes I do. When I click on a failed breaker it clicks but stays open [18:16:45] if I comment out the lines in voltage() it behaves as if it's in, but it appears out [18:17:06] It also doesn't go in and back out like a tripped breaker, it just never goes in [18:17:09] CB uses the toggle switch draw function I think [18:17:18] and that checks [18:17:19] IsUp() [18:17:30] and that calls GetState() [18:17:36] Kind of handy for debugging, but for actually diagnosing a failure it would almost be like a cheat [18:17:46] so that means visually it also uses the failed state [18:18:01] Ok, I was looking around IsUp() [18:18:26] I mean, it's not really wrong, that's one way a CB could fail [18:18:34] I guess I may need to get GetState to differentiate between an open failed braker and an open working braker? [18:19:01] well maybe. It could fail in such a way that the CB is impossible to move [18:19:08] that's what you get right now I guess [18:19:32] what we were thinking about was more the case of, moving the CB doesn't change the actual connection [18:20:03] Yeah, ideally I'd like to have it able to be moved so you could use the AOH to diagnose which system is failed/unplugged [18:20:20] Letting it be impossible to move could be a handy tool to have [18:20:40] it's mostly set up for toggle switches right now [18:20:44] I think a lot of the entry barrier with failures will be "did I break it or did it break?" [18:20:46] like the SECS failures [18:21:32] I need to check those again, how the switches behave when they are failed [18:21:57] I think they are still toggleable, but they also are all springloaded, which is its own attribute [18:22:07] it's only 4 switches that actually fail [18:22:18] the other failure mode are directly in the SECS code [18:22:35] so for those failures you can move the switch but it doesn't do anything [18:23:02] Which is what we want [18:23:36] I think those are all push buttons, but I'd assume can still be pushed in when failed [18:23:57] to change the visual behavior you could change IsUp() to [18:24:00] state == TOGGLESWITCH_UP [18:24:13] then it doesn't check on the failed state for how it shows the switch [18:24:29] in DrawSwitch and DrawSwitchVC [18:28:49] I guess in reality it would rarely be the switch itself that fails [18:28:59] unless you bump it with your space suit [18:29:02] looking at you Buzz [18:29:16] more often it would be some wiring or relay or so [18:39:53] Ok, let me give IsUp() a look in a moment, about to step out [18:41:28] Until then PAMFD just simulates a really clumsy LMP, and I'm not even thinking about coding the ballpoint pen they used to fix the breaker lol [18:54:11] so not changing IsUp(), but replace it in ToggleSwitch::DrawSwitch and DrawSwitchVC with state == TOGGLESWITCH_UP [20:05:58] Back again [20:44:00] night! [21:33:49] thewonderidiot: Would you say that yaAGC should also clear TEMP, GIMBAL LOCK, PRGO and TRACKER in addition to RESTART in this spot? https://github.com/virtualagc/virtualagc/blob/master/yaAGC/agc_engine.c#L563 [21:34:25] It's explicitly stated on page 4-655 [21:35:57] no, I wouldn't say that [21:46:13] As in, the behavior is wrong or it should go somewhere else? [21:57:57] I guess I'm not clear on what part you're concerned with here [21:58:14] does pressing RSET in NASSP not clear those lights? [22:05:09] We just send the keycode [22:06:43] so if you're flying a mission in NASSP and any of those non-RESTART lights are on, you cannot turn them off with RSET? [22:06:55] if so that's definitely wrong [22:06:57] Correct. [22:07:07] Well PROG can be turned off [22:07:23] but if any of the rest of them come on they're stuck on for the rest of the mission? [22:09:25] TEMP is weird in that there's sort of a software bypass in the AGC that allows that light to go on and off even in standby, but the others should be under purely software control [22:09:26] No. Our DSKY is dumb. We just pass and read from yaAGC. We just display what comes out of the channels, including 163 [22:11:50] 163 shouldn't be involved there, those are through channel 10 [22:12:14] so the software has to actively spend a channel 10 cycle turning those lights off [22:12:26] if they won't go off, most likely there is a problem with NASSP's DSKY's channel 10 handling [22:12:46] but it is weird if PROG can go off but not the others, since they are controlled via the same mechanism [22:13:15] I assume PROG is reset by software [22:13:24] all of these are [22:13:26] yes [22:13:59] Unless if reset is set. Then it just resets the relays, right? [22:14:15] what do you mean by "reset is set"? [22:14:29] s/set/depressed/ [22:14:53] RSET being pressed :P [22:15:07] within the DSKY or within the AGC? that button sends both a keycode and a discrete wire to the AGC but does nothing directly inside the DSKY [22:16:54] Okay. What we do right now is send the keycode for reset to yaAGC. That then turns off Restart at the link I sent. [22:17:00] Nothing else [22:17:13] right, because yaAGC is a hardware simulation [22:17:54] I can get very explicit about this if you want [22:20:32] that discrete wire from the RSET key comes into the AGC on wire D-208, and comes out of module A25 as "CAURST" on pin 226. CAURST goes to A18 pin 239, where it is ORed with W1110 (a wire indicating bit 10 of channel 11), and comes back out on pin 242 as ERRST. ERRST goes to pin 257 of A13, the alarms module, where it resets the "restart" flip-flop that gets set by a GOJAM and controls the RESTART light [22:20:52] these wires don't go anywhere else within the AGC [22:20:54] If I'm being dumb and missing something obvious just say so. From my POV we are sending reset to yaAGC and when it sends a channeloutput event we update the DSKY accordingly. Like you said there is no logic in the DSKY, which we don't have either. So my though for putting it in yaAGC? [22:21:02] the other lights you are talking about are entirely software controlled [22:21:38] Right, I follow. [22:21:41] the conditional statement you linked to in yaAGC is simulating the behavior of D-210/CAURST, because there was not another clean mechanism to simulate a discrete wire coming from yaDSKY into yaAGC [22:23:15] I might not be understanding you're proposing we change, but that if statement isn't the place for it either way [22:23:16] Am I being confused by "Both the keycode and hard wire signal extinguish the status indicator OPR ERR as well as the fove caution light indicators: (...)"? [22:24:03] I took from that the hard wired signal resets the relays and if it is immediately set again you know it's not a transcient condition. [22:24:13] that section is talking about the system as a whole, including software, so if you are not accounting for the role of Colossus or Luminary in resetting the other lights then yes, you're being confused [22:24:15] On page 4-655 of ND-1021042 [22:24:35] there is no mechanism to turn off those lights without software [22:25:40] I was starting to get to that conclusion as I didn't see any connection from the decoder to the relay matrix. Only RSET and the scan code going into the AGC. [22:26:00] And RSET only goes to CAURST I assume. [22:26:07] correct [22:26:36] software has to actively exercise channel 10 to change the states of those relays in the DSKY, to turn them either on or off [22:28:58] Right. Which is what happens now, whenever the AGC writes to channel 10 we toggle the proper light on or off. Effectively implementing the latching relays, we don't reset them on power loss. [22:29:45] My question boiled down to, should those latching relays in our DSKY be reset whenever you press RSET. To which the answer is, no. [22:30:06] yeah, there's no way for that to happen [22:30:59] How do I find the drawing where that OR gate for the TEMP indicator is implemented? I'm still learning how to navigate those drawings [22:32:12] I would find it by using the backplane viewer -- but you need to know exactly what you're looking for http://www.apolloguidance.computer/2003993_061/pins [22:32:34] the wires you're concerned with for that gate are TEMPIN, TEMPIN/, and TMPOUT [22:33:15] that should get you module and pin numbers, and you can turn pin numbers into sheet numbers because 1xx and 2xx pins always show up on sheet 1, and 3xx and 4xx pins always show up on sheet 2 [22:34:53] those will lead you to A13 pins 241 and 243, so this sheet http://klabs.org/history/ech/agc_schematics/logic/a13-1.jpg [22:34:58] So I click every pin until I find what I need? Or is there a search function I'm missing? [22:35:08] you can highlight the net name, type what you're looking for, and hit enter [22:35:18] in the bar on the right [22:35:39] Ah, it wasn't obvious that was an input [22:45:53] Found it in ND-1021042 via the VirtualAGC site. [22:46:46] That same diagram also has the warning integrator. With that we could write a better version of the warning filter in yaAGC to replace the linear one you wrote before we had the schematics. [22:47:52] I think we had the schematics when I implemented that? it's mostly that way as a "good enough" approximation to save CPU load [22:49:18] It probably won't get noticed by a lot of people anyway [22:50:37] When I click on pin 240 in your backplane viewer the whole application freezes until I reload the page btw. It's any of the gray/black pins [22:51:04] yeah I'm not a web developer and calculating the optimal line between all of the very many ground pins takes a while [22:52:11] it would finish after maybe 10 seconds or so [22:53:22] It did after I waited for a bit indeed. [22:54:40] I got a page unresponsive message. It'll probably go away if you put it in an async function and maybe use a Promise with timeout. [22:57:13] In fact, just marking connect_pins async prevents the message. Application still freezes until it finishes though. [23:26:59] I had no idea what those were at the time I wrote this haha [23:33:22] It's one of the few nice features of javascript [23:34:36] Okay, the only change I see that still needs to be done is that the indicator lights are powered by the S/C and not the AGC or DSKY PS. So if e.g. PROG is on and I pull the AGC breakers it will stay on provided the relays are set and power for that light is provided by the S/C. [23:36:04] for the lights on non-latching relays, yeah [23:36:10] They receive 5V caution power through pin 62 on connector J9 [23:36:12] and TEMP [23:37:03] This looks weird lol https://puu.sh/IZCtq/fae12afb75.jpg [23:37:19] Right, but TEMP will not get updated I assume? Only in standby. [23:37:41] If I actually remove power from the AGC that light will maintain its current state regardless if the temp goes back down. [23:39:09] The NOR gates in the AGC won't have any power to send a signal to set or reset the relay [23:39:34] oh right, yeah [23:39:48] well, the light will go off, because that one is non-latching [23:41:21] Let me test [23:42:01] Yeah that already works properly [23:42:34] So all I have to do is hook the indicators to the separate power source. The logic itself is already good. [23:48:39] Hmm, no I only checked TEMP. And that is set by ch163, which we reset on powerloss. [23:49:07] If I cut power during V35 I still have UPLINK ACTV, NO ATT, GIMBAL LOCK, PROG, TRACKER. [23:49:24] I'll need to expand the power check a little bit then [23:49:50] Tomorrow! Now I'll get some sleep. Catch ya. :) [23:51:26] goodnight! [10:08:58] TIL our inverters don't draw power. They only check for overloads, but don't draw from their source. [10:35:23] Oh it does do something later on. I may have been wrong [12:59:34] Morning! [13:01:40] Something in my "subsystem failures" branch looks like it made framerates in the VC a slideshow. Tried disabling the PAMFD without it being fixed, so it has to be in toggleswitch but there weren't a whole ton of adjustments there. [16:11:57] morning! [16:12:01] Hey Mike [16:12:12] what's up? [16:12:35] Been fighting with Modelsim to have it understand my VHDL. [16:12:41] heh [16:13:07] It segfaults everytime. Google has been more than useless. [16:17:19] oh that's annoying [16:22:33] This is all it gives me http://0x0.st/omp3.log [16:22:51] Not exactly useful. All I know is a segfault during fread [16:24:44] FPGA tools are great [16:26:42] Yeah... This all worked in december. I haven't touched this since. [17:30:11] well, i can add electricially powered lights with one config line now. [17:30:39] but oh boy is it one heck of a line... [17:31:03] hahahaha [17:31:12] anything can be accomplished on one line if you try hard enough :D [20:32:51] n7275: Maybe you have some insight. I hooked the DSKY to a breaker and when I remove power (by not calling DrawPower) the current on the breaker increases from 0A to 0.009374A. I can't really figure out what's going on. [20:32:56] https://github.com/orbiternassp/NASSP/blob/928295aff93150444a3926958421ea6553a3d59b/Orbitersdk/samples/ProjectApollo/src_sys/toggleswitch.cpp#L1217 [20:33:19] power_load is updated at the end of the function. If I draw 0 watts, it's set to 0. Then current is also zero. [20:33:46] However when I stop drawing power, power_load increases to about 1.07. [20:34:19] That todo note also concerns me. Is this proper behavior or does this need fixing? [20:50:15] thewonderidiot: Are there any latching outputs from the AGC channel? And if there are, does GOJAM reset them? [20:50:39] which channel, and what do you mean by latching? [20:51:33] All of them. Will any of them maintain their state if I remove power? [20:51:52] power, no definitely not [20:52:17] the only relay in the AGC is non-latching and in the power supply to enter/leave standby -- everything else is solid state NOR gates [20:52:44] for other non-total-power-loss GOJAMs, https://www.ibiblio.org/apollo/Documents/dd_memo_340.pdf [20:53:33] Right, then I'll have to zero them in our "powerloss GOJAM" that we run when the AGC is off. [20:53:42] The others will be handled by yaAGC's GOJAM. [21:23:06] hmmmmmmm [21:23:58] was the current in the breaker 0A before you connected it to the DSKY? [21:28:58] this sort of thing is what makes my thread project hard [21:29:46] CircuitBrakerSwitch should be doing all of that code that is in DrawPower, in UpdateFlow [21:31:37] or most of it at least [21:34:07] DrawPower shouldn't be choosing whether or not to draw from its source, the system at the bottom of the tree should be choosing not to draw power from e_objects that supply them with 0V [21:34:45] If I had infinite time I would just rewrite it... [21:37:30] pours more coffee [21:47:56] pours n7275 an additional cup [01:13:50] :) [11:38:49] Interesting. In the CSM 5VAC was used to power the DSKY status indicators and 5VDC was used in the LM. [14:59:29] hey [15:00:12] Hey [15:00:32] what's up? [15:01:07] Thinking about how to approach annunciator power to the LM DSKY. [15:01:41] It goes through a lighting control assembly first. I don't think we have it. Might need to implement it. [15:02:29] that sounds like something I implemented already a while ago [15:02:53] In the CM the status indicators are simply hooked up to the numerics dimmer which routes it to a 23:1 transformer to make 5VAC. [15:03:18] LEM_LCA lca; [15:04:00] Oh look at that [15:04:06] That's what I need [15:04:58] maybe I just didn't implement it for the DSKY yet [15:05:28] hmm [15:05:39] but if I remember correctly the DSKY has its own power for that [15:05:49] it just also uses the annun/num rotational switch [15:05:58] Yep, I have that implemented. [15:06:24] so does the DSKY need to interact with the LCA at all? [15:06:44] It has power for the ELs through the AGCs supply, power for the indicators from the numerics/anunnicator supply and integral supply for the keyboard [15:06:55] aah that's right [15:07:13] I haven't implemented the latter [15:07:57] in doubt, we already have a system for :D [15:08:23] For integral lighting? [15:08:52] no I mean in general. A new feature is required? Well we probably already have "something" like that [15:09:18] Starting with textures for all the integral lights in the panels and buttons [15:10:30] AFAIK nothing in NASSP has integral lighting yet [15:12:09] I guess. At least the LCA already has GetIntegralVoltage [15:14:24] The LCA doesn't handle the override switch. I might add that [15:15:09] It bypasses the 2-5V dimmer and ties the lights directly to the 6V bus [15:15:21] GetIntegralVoltage uses LtgORideIntegralSwitch [15:16:50] Lol I am blind [15:17:19] I don't know about wiring, but at least the LCA should be someone complete in terms of calculating voltages [15:17:24] In any case if it is on it should output 6V not 5. [15:17:26] somewhat* [15:18:23] https://puu.sh/IZUNM/7905629731.png [15:18:54] sounds correct, not sure why I used 5 [15:49:44] morning! [16:30:45] hey Mike [16:30:49] what's up? [16:31:27] got the new rendezvous program working quite well now [16:31:45] hell yeah [16:31:52] tested with the Skylab rendezvous sequence and some generic LM return to CSM in lunar orbit [16:31:59] oh there was something related I wanted to ask you about [16:32:09] need to work a bit more on displays [16:32:59] https://www.invaluable.com/auction-lot/skylab-prelaunch-targeting-rendezvous-msc-book-708-c-EB345989DA [16:33:42] is that useful at all? [16:34:18] very [16:34:33] I have the feeling we could get this from UHCL [16:34:37] let me look [16:38:26] they have two books like that for ASTP, one for launch one for rendezvous [16:38:37] so not the same [16:43:56] yeah can't find this anywhere else [16:44:26] I mean, I think I know just about enough for our eventual automatic MCC update needs for Skylab [16:47:45] but all in all I didn't find much about this topic [16:50:29] http://images.goldbergauctions.com/php/lot_auc.php?site=1&sale=79&lot=941 [16:50:48] lol, comes from the same source "Epps" [16:55:05] FIDO on Apollo 17 and later [17:28:20] heh, nice [19:05:58] cya! [20:02:01] I've been getting an unresolved external with the new MainPanel.SetFailedState to call failures. Any #include I should be adding to the MFD? [20:48:18] what have you added? [20:57:06] saturn->MainPanel.SetFailedState("GNPowerAc1CircuitBraker", 1, 0);, indy added a way to fail a cb by calling its name as the first field [20:57:12] Added to the PAMFD [21:44:29] i might be able to look later. is what's up on github the most up to date? [23:59:02] Not in my pull yet, but I can update it [15:44:35] morning! [15:48:44] hey Mike [15:48:54] seems like you got an interesting box yesterday [15:49:46] extremely interesting :D [15:49:55] way more interesting than expected [15:51:12] my main curiosity right now is focusing in on a question I floated a couple of weeks ago.... why is Tray S wired differently betweeen CM and LM CDUs [15:51:24] since I seem to have a LM Tray X and CM Tray S [15:52:37] and Saturn steering wasn't the answer? [15:53:22] I think it must be, but I still don't understand why that would necessitate a different Tray S -- why not just, not connect those wires in Tray X and use the same Tray S for both [15:54:03] unless the saturn steering means the module interconnections are wired a bit differently and it's not just main connector things that change [15:59:13] that wouldn't be the "ICDU Mode Module", would it? [15:59:31] the mode module is down in Tray X [16:01:21] so that shouldn't impact the Tray S wiring, I don't think [16:01:24] does the LM ICDU even have an equivalent of the S-IVB takeover relay? [16:02:13] although -- do any of the channel modules (D/A, EC&L, Read Counter, Coarse System, MSA&QR, Quadrant Select) require an input related to the takeover stuff? or is it just outputs? [16:02:22] the hardware is definitely there, if not wired [16:03:55] there is a demodulator in the systems handbook that is only applied to the signal for the IU [16:03:58] and not for the FDAI [16:04:20] I don't know where that would be located, but probably D/A [16:05:26] but the LM ICDU could still have that [16:07:50] LM RR CDUs have it of course [16:11:27] hmmm [16:12:01] but I don't see an extra input for that [16:12:22] shouldn't work different in takeover mdoe [16:12:23] mode [17:27:57] hey guys [17:29:47] hello there [17:33:33] very exciting cdu stuff going on :) [17:34:03] dude I'm so excited [17:34:34] I can't believe this is actually a fully updated flight LM CDU (with the one exception of the weird Tray S chassis) [17:44:53] hey Matt [17:45:39] but this is still a CDU from AC, right? [17:45:59] I think it must be [17:46:49] but, really anything is possible now [17:49:15] haha [17:49:41] if they even change serial numbers :D [17:49:51] yeah [17:49:53] well [17:50:00] I think I know a little bit more about that now actually [17:50:37] I can't quite make out the original serial number without scraping more of the new one off [17:50:50] but it's either 15, 25, 35, or 45 [17:51:03] I thought it was 45 at first, but that one got destroyed during Apollo 12 [17:51:21] in the Apollo 12 LM [17:51:26] yep [17:52:18] it's probably not 25, because that one was for LM-9 [17:52:52] which leaves 15, the Apollo 7 CDU, and 35, the Apollo 8 CDU [17:53:21] so, both of those flew with the -051 version of Tray S... this is -031 [17:53:23] wait, you have flown or parts of flown hardware??? [17:53:27] no, I don't think so [17:54:07] I think that this tray was originally part of the Apollo 7 or Apollo 8 CDU, and when they updated the tray from -031 to -051, the part tag with that CDU's serial number came off with it (since the part tag is affixed to Tray S) [17:55:08] ah [17:55:31] and then when they later reused this outdated tray for a different CDU, they didn't bother to change the part tag on it, or update the dash number written on the chassis directly [17:55:40] they just whited out and wrote a new serial number on it [17:57:27] need to do more research to make sure what I said is 100% true, but I'm pretty sure that's what happened here [18:01:27] sounds plausible [18:20:24] Indy, if you're still on is there any linker I need to use "saturn->MainPanel.SetFailedState?" Getting an unresolved external [18:31:14] hmm [18:33:27] ah I think SetFailedState needs to be virtual [18:33:42] because it gets called from the PAMFD module [18:34:30] so in toggleswitch.h [18:34:56] void SetFailedState(const char *n, bool fail, int fail_state = 0); [18:35:00] needs to be [18:35:01] virtual void SetFailedState(const char *n, bool fail, int fail_state = 0); [18:35:06] that should do it [19:05:18] Okay - that was it. Thanks! [20:33:36] night! [22:06:53] Hey hey :) [22:07:03] hello hello [22:09:13] I've been reading the checkout procedures document you got the other week. I implemented all switch states from the pre-power switch list. Now we need to add some "DEFAULTSTATE" variable to the scenarios to allow you to select between T-4h or precount. [22:09:26] oh nice :D [22:10:17] This document definitely will allow us to do a CDDT (Count Down Demonstration Test) and may even result in some updates to the T-4h state. [22:11:09] It doesn't include the fuel cell start up procedure unfortunately. but it does list its document number. [22:11:36] We should be able to fill that in from what we already now from the AOH and such though [23:07:29] did someone say fuel cells? :) [23:09:44] Yah, do ours even support the start procedure? [23:10:02] Or is it just a matter of heating it up enough and introducting reactants? [23:13:37] just heating and purging afaik [23:13:59] i think i added the startup heaters? [23:16:15] looks like only my branch sadly [23:17:08] ill get there eventually with that one [23:18:35] Oh you implemented nitrogen. Sweet [23:19:17] I'm still working on the launchpad GUI but it's a pain to work on to be honest [23:21:40] i bet [23:21:57] what are you adding for features? [23:23:05] My plan was to simply have an interface to be implemented to handle the upgrade. But I'm considering moving that to an external program. [23:24:18] Ideally you would then dump an upgrade script somewhere but that does mean Python becomes a dependency. [04:24:47] an external program would almost certiably be easier [15:11:51] Hey people! [15:34:13] hello [15:34:49] Good mirning! What time is it there? [15:34:56] *Morning, woops [15:36:00] 11:35 here [15:36:05] in Maine [15:36:20] Hey guys [15:36:38] Aha, easter than NY [15:36:42] Hey Thymo [15:38:13] How's prep for the mission going? [15:38:22] Going nicely [15:38:23] :D [15:38:45] Practised three reentries [15:39:00] Indeed the scneraios I was concerned about stabilized themeselved [15:39:15] However the CRYO press light remained on... [15:39:33] Maybe because I started to mess with it. But no effects on the crew health [15:40:45] I read but I am not sure, that the crew waited a "long" time before egressing the CM. I assume because it was too dark [15:41:09] Was the egress done at moreless Splashdown + 45 minutes? [15:41:29] Just did that and indeed there was some light, but sun was down still... [15:46:09] im still working on the lights [15:46:27] i might have something ready in time [15:46:41] Oh [15:47:02] i have one dumb typo somewhere to find and then some "wiring" to do [15:47:03] 17 is holiday in this region of spain so will have time of you want to test something [15:47:35] Will wake up early :D (and go to bed early) for launch day on 18 [15:48:06] It´s typo time (*if you want to test something) [16:46:33] morning! [16:46:55] Hey [20:34:26] Anyone objecting to upgrade to c++17? :3 [20:34:47] I want to use if initializers :) [20:35:09] if (int x = 123; x == y) [20:53:37] Good nite guys! [20:53:58] Night! [20:54:02] Thymo "if (int x = 123; x == y)" That looks interesting... [20:54:21] Maye more interesting because I don´t know what a poiner is :D [20:54:26] I am too modern [20:54:28] Yep, I use it a lot in Go. Didn't know C++ got it in C++17 [20:54:41] This has nothing to do with pointer [20:54:52] It allows you to initialize a variable in the if statement [20:54:59] Before you would do [20:55:03] int x = 123; [20:55:10] if (x ==y) {} [20:55:48] Ah yeah I see, you are doing the varblable declaration and comparing on the if... [20:56:01] *variable [20:56:26] Good night guys [21:18:25] Oh god I horribly broke everything lol [21:18:54] Even if I revert the language level change a bunch of LEM classes don't resolve anymore [21:18:56] why why why [21:20:44] Think I found it [21:20:53] I included lm_eps in the dsky [21:20:58] It doesn't like that [21:23:10] Neat [21:23:26] LEM.h and lm_eps.h have a circular dependency on each other [22:46:33] Ugh [22:47:00] I think I need to rewrite how the LCA works so I can compile the class into the CSM [22:47:48] I use LEM_LCA in the DSKY and that means the CSM also needs to understand it, but to do that it needs to understand the LEM. Basically I'd have to compile the LEM into the CSM. [22:48:16] Or there must be some linker magic I don't know of to fix this [23:15:15] Lol I don't know what to do anymore [23:15:47] Maybe it dawns on me tomorrow. Good night. [23:24:05] might be unrelated to your issue, but i think all (most?) of the systems like this should be added via the config file, and if possible should be general purpose, with their functionality controled by config parameters rather than ad hoc code [23:24:50] I really don't see how I can do this through a config file [23:25:58] I have some code in the DSKY that depending on it being an LGC polls the dimmer switch or the LCA [23:26:35] In the CM you have: cb > dimmer > transformer > dsky [23:26:48] In the LM: cb > LCA > dimmer > dsky [23:27:11] So I actually have to talk to different things in the vehicles [23:28:35] I'm also not very familiar with how the config files get loaded and tie into stuff, you'll have to walk me through it sometime. [23:29:05] yeah probably still needs to be a mix of both [23:29:33] would be happy to go through it some time [23:30:34] We can take a look tomorrow if you're around. [23:31:11] Anyway, I gtg. Gotta get up early tomorrow. Night! [23:31:48] night! [00:57:27] oh boy, there's a flamewar going on in the simh mailing list over license changes. Where's the dseagrav bat-signal when you need it [14:46:44] good morning [14:48:56] Hey [14:50:28] it's been a while since I've wired anything in NASSP. [14:50:58] its been a little for me as well [14:51:07] but I do remember a lot of the LM wiring [14:51:40] But most of what I did was just simply connecting cbs to switches [14:54:01] do we normally do it: source -> cb -> switch -> system [14:55:02] So the cb and switch are typically handled in the specific system [14:55:12] ispowered [14:55:34] so a system will check if the cb is powered (closed and has power) and then allow it to continue [15:03:10] I've added an electric light system, because Im adding it through the config, I'm a bit restricted in what it's refresh function can check [15:03:58] *its [15:04:23] I could always pass it a switch pointer to look at though [15:10:13] You can look at the LM, I have wired the lights there