MaSch 0 Posted February 6, 2017 Share Posted February 6, 2017 2 hours ago, XyFreak said: Ok first of all I'm jelly at your 230fps in minecraft (and a texture pack). Just letting you know Next I'm really really confused about this whole thing not starting up. How did you set up your computer (aka what components are in there) and are you using a modpack? If I'd have to guess it's the direwolf20 one but...just making sure. -XyFreak haha my fps is only a peek normal it's around 150 +- 10 fps xD and yes we play direwolf20 at 1.10.2 Quote Link to post Share on other sites
vik2or 0 Posted February 8, 2017 Share Posted February 8, 2017 i get the same error like MaSch After the turbines stop callibrating in a feaw minutes the game crashes ( i think that the problem is with turbinecontrol not reactorcontrol .. because it is working while turbine are calibrating and no crash until they're done) i have direwolf20 1.10.2 with a few extra mods (mekanism, roots, enderzoo) and error is similar Description: Exception in server tick loop java.util.ConcurrentModificationException at java.util.HashMap$HashIterator.nextNode(HashMap.java:1429) at java.util.HashMap$KeyIterator.next(HashMap.java:1453) at java.util.AbstractCollection.toArray(AbstractCollection.java:141) at com.google.common.collect.ImmutableSet.copyOf(ImmutableSet.java:374) at elec332.core.grid.internal.GridEventInputHandler.tickEnd(GridEventInputHandler.java:91) at elec332.core.grid.internal.GridEventHandler.serverTick(GridEventHandler.java:49) at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_433_GridEventHandler_serverTick_ServerTickEvent.invoke(.dynamic) at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90) at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:185) at net.minecraftforge.fml.common.FMLCommonHandler.onPostServerTick(FMLCommonHandler.java:261) at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:657) at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:240) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:471) at java.lang.Thread.run(Thread.java:745) i removed deepresonance form the pack and it still errors out Description: Exception ticking world java.util.ConcurrentModificationException at java.util.HashMap$HashIterator.nextNode(HashMap.java:1429) at java.util.HashMap$KeyIterator.next(HashMap.java:1453) at net.minecraft.server.management.PlayerChunkMap.func_72693_b(SourceFile:114) at net.minecraft.world.WorldServer.func_72835_b(WorldServer.java:222) at WorldServerOF.func_72835_b(WorldServerOF.java:37) at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:698) at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:613) at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:240) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:471) at java.lang.Thread.run(Thread.java:745) The opencomputer computer is tier 3 server with a tier 3 video/cpu/hdd/data card, 4 x tier 3.5 memory, internet and network card and the script doesn't autostart if i add it in rc.cfg (enabled = {brgc_reactor, brgc_turbines}) i have to start them manually using " brgcctrl service all start" Quote Link to post Share on other sites
vik2or 0 Posted February 8, 2017 Share Posted February 8, 2017 It take longer to crash without deepresonance .. but it still does. Also i have this in server console "CONSOLE: thread/WARN] [OpenComputers]: A component of type 'br_turbine' disappeared (b8fa7f53-2cb0-4ae6-911a-a11da367a2fc)! This usually means that it didn't save its node." could this have something to do with it? Quote Link to post Share on other sites
XyFreak 36 Posted February 8, 2017 Author Share Posted February 8, 2017 @vik2or Thanks for your input. As I said before the lua program should not be able to kill the server. We're either triggering a bug with OpenComputers or a bug with Extreme Reactors. I'm going to have a look once I'm done refacturing/rewriting some compoments of BRGC that'll allow you to include external storage devices into your grid. If I have a surefire way to reproduce it (I think with your input it can be done quite easily...I hope...) I'll also file a few bug reports or support already existing ones to the best of my abilities. I'm aware of the autostart issues and the config issues btw. In my latest dev snapshot the config issues are pretty much gone and the code is a lot simpler. Give me a week or so to get everything polished up. -XyFreak Quote Link to post Share on other sites
XyFreak 36 Posted February 20, 2017 Author Share Posted February 20, 2017 Hi guys, it's time for a status update. Obviously I didn't manage to get everything ready within the timeframe I hoped to do it. So instead I'll post a quick status update. I'm done refactoring BRGC. BRGC is now caching and calculating a lot more in advance. The caching allowed me to eliminate a LOT of API calls into Big Reactors/Extreme Reactors which should lower the overall load of your actual game server a bit. While this shouldn't matter in practice (it's not like it had any noticable impact to begin with) I'm hoping that this will stop triggering those server crash bugs. Anyways... the code is a bit nicer now and easier for me to work with/extend. The grid controller for when you have capacitors attached is about half way done (maybe more). It already works perfectly fine if you don't consume more energy than you can produce at your optimal max. This includes running turbines and passive reactors simultaneously. Turbines are always prefered to passive reactors. So here's what's left: Balance the "overload" in case you need more energy than you can produce at optimal levels (LOAD) Figure out a good way to decide when to switch over to LOAD mode. I'm currently considering a dynamic threshold based on how much more RF/t you're consuming in relation to how much you can produce at an absolute max. More on that later. Write a small GUI for the grid controller itself (It'll be a widget like what I did for the reactors/turbines) Finally have the GUI automatically refresh its components. Right now you need to restart the GUI for additional turbines/reactors to show up. If you're not interested in the ideas and are just here for the status update, you can skip to the end of the post now Now regarding the LOAD mode switch ideas. The main idea behind energy storage is to buffer energy when you don't need much of it and to provide energy when you need more than you can provide. BRGC takes this one step further and tries to optimize your energy production at all times so it is as efficient as possible at any given time while providing enough power for whatever you want to power with it. If this means your reactors have to run inefficiently in order to generate enough power, then that's what it's going to make your reactors do. This is perfectly fine if you don't have (a lot of) energy storage because you're most likely going to run out of power very quickly if your reactor is not producing enough energy. This may not be fine if you have a large energy storage which can buffer extreme energy needs over a short or even extended period of time (e.g. you're creating a new RFTools World with large draconium ore spheres). So I've got to figure out a way to decide when it is ok for BRGC to abandon efficiency in order to make sure your energy grid stays saturated when more energy is required than your grid can generate efficiently / generate at all. The simplest idea is: Choose a threshold. If energy falls below that point, start generating more energy. This is what BRGC does right now with passive reactors in AUTO mode. If more energy is required than the reactor can provide efficiently and if the internal storage falls below 50% it will start squeezing more power out of the reactor at the cost of efficiency. I never felt that this solution is very satisfying and it's really bad when you add larger storage. If you have 1TRF energy stored and you're consuming 10kRF/t more than you can produce, having the reactors run inefficiently is a waste of fuel. However if you only have 10 MRF storage, then 50% might be way too low. Having the user set this value means that there is manual configuration required which I want to avoid at all cost (it needs to be Plug&Play). Idea 1: Use a percentage based thershold based on how much more energy is consumed than can be generated. E.g.: Threshold = 0.0001 * more energy consumed then generated. This is really easy to implement and automatically adapt to whatever setup you have. It does require a lot of experimentation though. Idea 2: This is a refinement of Idea 1. Calculate how long the energy storage is going to last at the current energy consumption. If the energy storage is going to be depleted within an hour (real time) then produce more energy. Both of this ideas are easy to implement but have the disadvantage that they can (and will) overreact pretty easily when large power spikes occur. Idea 3: Use idea 2. Instead of using the current power consumption, use a weighted average that is only slowly approaching the current value. This will prevent the controller from overreacting when it's not neccessary but it will also prevent it from doing so when it is neccessary. Idea 4: Use idea 3 but make the weight based on how much energy (percentage based) is left in storage. This will prevent overreactions when the storage is full and may allow it when storage is empty. If you're still reading this ( ) then please let me know what you think and what you want to see implemented. I've got some time off from work at the end of this month/start of the next month so I'll be getting things done then for sure. -XyFreak Quote Link to post Share on other sites
vik2or 0 Posted February 26, 2017 Share Posted February 26, 2017 I usually use a kinda low threshold on other power gen like 30%-40% or so ... (especially on IME diesel generators, because i don't wanna hear them going on and off constantly), and because the active extreme reactor take a while to start, i would go with idea 4 (don't really want the reactor to start and waste fuel while it gets the turbines to optimal rpm, just to fill 10% of battery and then stop or waste power. When it starts i want it to work for a while). btw, is the new code available to download? on your site it still says ver,4.1. As a side note, could you make so that if you have multiple gpus/screens to show the gui on all so i can select one to show detailed reactor inf and another or 2 to show detailed turbine info or other combinations. I looked through the gui code a bit, you do search for a gpu/screen to bind them, but i'm new to lua and opencomp. Quote Link to post Share on other sites
XyFreak 36 Posted February 26, 2017 Author Share Posted February 26, 2017 @vik2or Thanks for your input. I talked about this with a friend yesterday and we also came to the conclusion that idea 4 is the best way to do it without doing any statistical analysis (which would be way over the top). The gui is currently set up in a way where it will bind an unused monitor to an unused gpu if it finds multiple of them. So if you have two monitors/gpu then it will draw on the second one and fall back to shell on your "primary" monitor. Unfortunately I never intended libGUI to draw on multiple screens so I would have to rework parts of that. It's propably not gonna happen, sorry. The code is not done yet btw. There's still some stuff to do. Quote Link to post Share on other sites
sedstr 0 Posted February 27, 2017 Share Posted February 27, 2017 Hey, just wondering if anyone has any advice... This is what I setup. 1 reactor, with two 80 blade turbines attached, the reactor can output 20% more steam than I need to run the two turbines at 1600RPM, and the capacitors have billions of RF to fill. What happens, is the turbines get set to 800RPM instead of 1600RPM and the reactor gets under utilized. What do I need to do? 1. Just attach the reactor to the computer? 2. Attach the Reactor and Turbines? 3 or just Turbines? I simply want the reactor to run at optimal to feed the turbines the steam required to run at 1600RPM / optimal power output. I'd like the option to simply manage the on/off myself with perhaps another computer managing the switch based on the capacitor capacity, or at least to be able to say, I don't care if my caps are full, I just want optimal turbine output. TIA. Quote Link to post Share on other sites
XyFreak 36 Posted February 27, 2017 Author Share Posted February 27, 2017 @sedstr Do both turbines get set to 800ish RPM? If so, can you make sure the controller managed to calibrate your reactor correctly? As in: what steam inputs are your turbines set to and how much steam is actually produced by the reactor. For the usual setup you are required to connect both turbines and reactor so the controller knows how much steam it has to produce (i need to optimize that code a "bit"). What YOU want is propably: Connect the reactor only Do NOT start the turbine controller Manually set the "steamtarget" to 4000 with "brgcctrl steamtarget 4000" The thing where you want to switch on/off the turbines based on capacity is going to be implemented in the next release. If you really want to do it yourself you don't need another computer to do it. Just make sure you don't start the turbine controller and do it on the same computer as you are running brgc. Should work just fine AND you can hook into the reactor api to set the steamtarget to lower the reactors output or shut it down if you turn off turbines. local reactor_api = require("brgc/reactor_ctrl") reactor_api.setSteamProductionTarget(4000) Quote Link to post Share on other sites
Gavote 1 Posted March 6, 2017 Share Posted March 6, 2017 Is there a way to force a recalibration of a passive reactor? Quote Link to post Share on other sites
XyFreak 36 Posted March 6, 2017 Author Share Posted March 6, 2017 brgcctrl calibrate <address or partial address> The first three letters of the address will usually do. Quote Link to post Share on other sites
Sherlok 0 Posted March 7, 2017 Share Posted March 7, 2017 Im having issues where i get this after entering the address and the partial address Quote Link to post Share on other sites
XyFreak 36 Posted March 7, 2017 Author Share Posted March 7, 2017 Ok thanks, I'll look into it. In the meantime you can just remove /etc/br_config.cfg and restart the computer to cause everything to be recalibrated. Quote Link to post Share on other sites
magi_nator 0 Posted March 23, 2017 Share Posted March 23, 2017 I have one Question it is Possible to start on boot the gui? Quote Link to post Share on other sites
sshika 3 Posted March 24, 2017 Share Posted March 24, 2017 for me, the programm doesn' function. Quote Link to post Share on other sites
XyFreak 36 Posted March 25, 2017 Author Share Posted March 25, 2017 @magi_nator currently, no @shikamaru looks like you haven't started the controller services try a brgcctrl service all start Quote Link to post Share on other sites
sshika 3 Posted March 29, 2017 Share Posted March 29, 2017 hello.ok. it's good, sorry. Quote Link to post Share on other sites
JustCallMeJick 0 Posted March 30, 2017 Share Posted March 30, 2017 I'm running a reactor that i have hooked up to 2 turbines and doesn't like to stay at max RPM. When it says steady it keeps dropping and it likes being at 900~ RPM instead of ~1800. Quote Link to post Share on other sites
XyFreak 36 Posted April 1, 2017 Author Share Posted April 1, 2017 @JustCallMeJick Can you make screenshots of the turbines and reactors gui? This looks....odd. Quote Link to post Share on other sites
Gavote 1 Posted April 1, 2017 Share Posted April 1, 2017 (edited) looks like it's only outputting 3.5B of steam per tick. did you connect a fluid sink while calibrating the reactor? Edited April 1, 2017 by Gavote Quote Link to post Share on other sites
XyFreak 36 Posted April 1, 2017 Author Share Posted April 1, 2017 Well the reactor outputs 3.53 B/t, which is obviously not 4 B/t. What I'd like to know is whether the actual generation rate is too low (e.g. the steam tank in the reactor being empty) or if the steam isn't transfered fast enough. I don't know how fast RS can transfer liquids so... There's also a possibility that the energy extraction from the turbines to the capacitors is too low and the controller adjusts the output. Quote Link to post Share on other sites
Gavote 1 Posted April 1, 2017 Share Posted April 1, 2017 Good point. There are very few mods capable of moving Buckets/tick. Quote Link to post Share on other sites
JustCallMeJick 0 Posted April 1, 2017 Share Posted April 1, 2017 I'll be gone until late Sunday, so this is the last I can upload until then I also have the first turbine on Independent mode to keep the system powered. Quote Link to post Share on other sites
XyFreak 36 Posted April 1, 2017 Author Share Posted April 1, 2017 Ok thanks. Please try to remove /etc/br_control.cfg file and reboot the computer. It looks like something went wrong during reactor calibration. Quote Link to post Share on other sites
Jokevillager 0 Posted April 1, 2017 Share Posted April 1, 2017 I can't install it! Error: /home # brgc_install.lua /lib/process.lua:61 attempt to index a nil value: stack traceback /lib/process.lua:61: in function </lib/process.lua:47> (...tail calls...) [C]: in funktion 'xpcall' macine:752: in function 'xpcall' /lib/process.lua:84: in funktion </lib/process.lua:80> /home # Quote Link to post Share on other sites