Call for a logic master

    Joined
    Sep 23, 2014
    Messages
    137
    Reaction score
    38
    • Purchased!
    This is an official call for somebody VERY well-versed in memory logic and display logic.

    I'd like to have a multi-floor selection elevator, but one of my admins who is a master of just display logic, says that what I want would require a lot of memory logic. Here's the basic user experience I have in mind:

    Player interacts with display module, and is with some others who want different floors.
    > Player selects first floor to travel to
    > Player sets second floor to travel to
    > etc.

    How I imagine the logic working is actually jsut having a "trip" for each floor to prepare and reset it; outer trip resets the floor to the "in use" direction, and the inner trip sets the floor to head in the direction the elevator is travelling. The basic idea is that the floors get "reset" as you go past them, but it only affects the elevator if you're going to that floor.
     
    Joined
    Jun 11, 2016
    Messages
    1,170
    Reaction score
    646
    I don't like such setups, as the display where I write the floor number into, is not part of the moving capsule.

    It's better to have a number grid 1-9,0, (plus negative floors toggle) at one wall of your elevator and select the number there. But only if you want the select menu right in the moving capsule.

    So my question is: Where is the display module you want to write number into? In the moving part of the elevator capsule, or at an accessible wall of the parent entity?
     
    Last edited:

    Calhoun

    Part-time God
    Joined
    May 26, 2015
    Messages
    872
    Reaction score
    237
    • Purchased!
    • Legacy Citizen 3
    • Thinking Positive
    I'm no 'master' but you could have a look at this if you like. I spent all of no time making it pretty, but the logic is fairly open so you can see what's going on. It works off a two button counter system, where one button toggles the count and the second activates the elevator. I probably wouldn't go past 8 floors with this design, simply because it becomes tedious pushing the button after awhile.

    If you were looking for something a bit fancier I'd suggest contacting GalactusX, he's got some fun stuff.
     

    Attachments

    Joined
    Sep 14, 2017
    Messages
    666
    Reaction score
    928
    This is not all that difficult at all.

    In your logic room, you want a button for each floor. This will make connecting logic easier. Then you connect each button to 3 buttons, each next to a rail pointed up, down, and sideways respectively. You then for each floor connect the down button to all the rails above your desired floor, up to all rails below, and the sideways one where you want the elevator to stop. Then you connect the controllers for inside the elevator via wireless to the floor controllers or make a control panel at each floor that is not part of the elevator that connects to those buttons. Also, add a summon button at each floor that corresponds to the needed button in the logic room as well. That will give you a basic level selection function that can be scaled as much as you want.

    To add an "in-use" function, make each go to floor button in your logic room turn on a memory gate, and reset all the memory gates for the other floors. (See youtube tutorial on memory gates below) Next, add an activation block next to, each stop point on your elevator's rail. Each one of these will connect to an And block that is also connected to by your memory gate so that you only get a high signal from the and block when you hit the activation block at your target floor. Now you make that buttons for each floor turn on the "in-use" message, and the And blocks turn it off.

    ... Now that I say it out loud... I could see why this would be perceived as difficult...


    [EDIT] Also, if you really want to have fun, display blocks can merge text; so, you could have the activation block at each floor grab a text string that says "floor 1", "floor 2", etc, then append that with the "in use" thing so you could look at the display and tell, both if the elevator is in use and how far away it is before deciding if you want to use it or take the stairs.
     
    Last edited:
    • Like
    Reactions: JinM and Ithirahad
    Joined
    Jun 9, 2013
    Messages
    114
    Reaction score
    112
    • Legacy Citizen 2
    • Legacy Citizen
    Check G-series mining complex on SMD published by me, she has such an elevator. Although to get more floors you need to add a logic counter instead of direct floor hard-coding.

    The base idea is to trigger floors with pulses and reset them when the cabin arrives. The second part of the curcuit will control the direction the cabin is moving and switch it only when there's no queued stops in this direction. Cabin stop is also hadr-wired into direction controller.

    To control the whole system you need just 2 rails and 1 speed controller.

    Idea and realisation not by me, I've just reverse-engineered it. The author is Barney from CBS
     
    Joined
    Sep 14, 2017
    Messages
    666
    Reaction score
    928
    I've built similar elevators too that too, and they are nice in that they are much more simple, but I find floor hard coding to be more reliable for elevators with more than two levels.

    For example, if the elevator is at the 4th floor, and you hit the recall button on the first floor, your elevator (if I understand your description right) will stop at floors 2 and 3 which can lead to a lot of confusion and people complaining about the elevator being out of order. Floor hard coding also means, you can be on floor 1 and go straight to floor 6 without having to stop 4 times along the way.

    I have an idea for a way to make floor coded modular elevators by breaking the above system into sections that can linked through inputs designed for tracking sequence, but a single logic control room is less complex and easier to describe even though it takes a bit longer to set up.
     
    Joined
    Sep 23, 2014
    Messages
    137
    Reaction score
    38
    • Purchased!
    I've built similar elevators too that too, and they are nice in that they are much more simple, but I find floor hard coding to be more reliable for elevators with more than two levels.

    For example, if the elevator is at the 4th floor, and you hit the recall button on the first floor, your elevator (if I understand your description right) will stop at floors 2 and 3 which can lead to a lot of confusion and people complaining about the elevator being out of order. Floor hard coding also means, you can be on floor 1 and go straight to floor 6 without having to stop 4 times along the way.

    I have an idea for a way to make floor coded modular elevators by breaking the above system into sections that can linked through inputs designed for tracking sequence, but a single logic control room is less complex and easier to describe even though it takes a bit longer to set up.
    The idea I had was where the elevator stops at the floors you pick for it, so say you want to head to floor 7 from floor 1 but two others want floors 4 and 6, it will stop at floor 4, then floor 6, and then floor 7, but recalling will stop specifically at the floor you're recalling from.
     
    Joined
    Jun 9, 2013
    Messages
    114
    Reaction score
    112
    • Legacy Citizen 2
    • Legacy Citizen
    I've built similar elevators too that too, and they are nice in that they are much more simple, but I find floor hard coding to be more reliable for elevators with more than two levels.

    For example, if the elevator is at the 4th floor, and you hit the recall button on the first floor, your elevator (if I understand your description right) will stop at floors 2 and 3 which can lead to a lot of confusion and people complaining about the elevator being out of order. Floor hard coding also means, you can be on floor 1 and go straight to floor 6 without having to stop 4 times along the way.

    I have an idea for a way to make floor coded modular elevators by breaking the above system into sections that can linked through inputs designed for tracking sequence, but a single logic control room is less complex and easier to describe even though it takes a bit longer to set up.

    Floor hard-coding can end up with too many wifis to connect (G-series has 5 decks => 5 WiFis), while with the logic counter can significantly increase the amount of floors using less WiFis (Say, only 3 WiFis for 8 floors or 4 WiFis for 16 floors). You just need to assemble a simple binary counter with a decoder, and hard-wire its inputs into the system instead of WiFis themselves.
     
    Joined
    Sep 14, 2017
    Messages
    666
    Reaction score
    928
    The idea I had was where the elevator stops at the floors you pick for it, so say you want to head to floor 7 from floor 1 but two others want floors 4 and 6, it will stop at floor 4, then floor 6, and then floor 7, but recalling will stop specifically at the floor you're recalling from.
    So... this is going to need something of a hybrid approach between what me and MChain were suggesting. Let's say you have 5 floors, you need need 4 buttons on each floor. When you press a button for a floor above you, you aim all rails up, and vise-versa for down. That button also triggers a memory circuit on the target floor. Then you use an activation block on that floor and when the activation AND memory circuit are activated, you make that floor's rail go sideways, and turn off the memory block.

    If you want to get really fancy (and I'll try my best to explain this clearly but no guarantees), you can add a timer to each stop. Basically what you do is you attach each memory circuit to an OR block, and then you connect all those AND blocks from the previous step to a button. You also add something to remember if your elevator was sent up or down. (You can do this by including a button next to a rail where the rail is activated with everything in the elevator shaft, but the button does not at any point make contact with the elevator.) Basily when the button and the OR blocks activate together, you trigger a delay by chaining delay blocks and buttons to a desired length (Such as 10 stages for a 5 second delay). Then that clock reactivates the button that points all the rails either up or down.
     
    Joined
    Jun 9, 2013
    Messages
    114
    Reaction score
    112
    • Legacy Citizen 2
    • Legacy Citizen
    So... this is going to need something of a hybrid approach between what me and MChain were suggesting. Let's say you have 5 floors, you need need 4 buttons on each floor. When you press a button for a floor above you, you aim all rails up, and vise-versa for down. That button also triggers a memory circuit on the target floor. Then you use an activation block on that floor and when the activation AND memory circuit are activated, you make that floor's rail go sideways, and turn off the memory block.

    If you want to get really fancy (and I'll try my best to explain this clearly but no guarantees), you can add a timer to each stop. Basically what you do is you attach each memory circuit to an OR block, and then you connect all those AND blocks from the previous step to a button. You also add something to remember if your elevator was sent up or down. (You can do this by including a button next to a rail where the rail is activated with everything in the elevator shaft, but the button does not at any point make contact with the elevator.) Basily when the button and the OR blocks activate together, you trigger a delay by chaining delay blocks and buttons to a desired length (Such as 10 stages for a 5 second delay). Then that clock reactivates the button that points all the rails either up or down.

    OR when both the activator AND the memory cell activate simultaneously you just send a signal to a main control circuit where either turn ALL rails to the side or just kick out that rail speed controller. This way you can have only one timer for ALL stops. Kicking out the rail speed controller has the benefit of not needing to remember which way you was going since no rails change orientation.

    BTW you don't need that much buttons really. One button, one display in the cabin and some sensors, displays, buttons and wifis under the floor. Voila - any floor can be ordered directly from the cabin

    As for the stop itself, you just need to call a cabin to it. The floor will be specified from the inside

    Seems I just need to add some screenshots... xD
     
    Joined
    Sep 14, 2017
    Messages
    666
    Reaction score
    928
    OR when both the activator AND the memory cell activate simultaneously you just send a signal to a main control circuit where either turn ALL rails to the side or just kick out that rail speed controller. This way you can have only one timer for ALL stops.
    Yes, I was a bit unclear, but this is what I was trying to describe.

    Kicking out the rail speed controller has the benefit of not needing to remember which way you was going since no rails change orientation.
    A very good solution. This also means that your elevator will cause less lag which is important if you are applying this concept to something bigger such as a train

    BTW you don't need that much buttons really. One button, one display in the cabin and some sensors, displays, buttons and wifis under the floor. Voila - any floor can be ordered directly from the cabin

    As for the stop itself, you just need to call a cabin to it. The floor will be specified from the inside

    Seems I just need to add some screenshots... xD
    This works for moving 1 floor at a time (I do something like this in my HB), but I don't think this is what he is asking for. To go straight from floor #1 to floor #5 you need multiple buttons unless you have some other solution I'm not getting. Also, the reason I suggest putting a panel on each floor is because the direction you need to go from floor 5 to floor 3 is different than floor 1 to floor 3; so, a button to goto floor 3 will behave differently based on what floor you are on. There are a few ways to do it with one panel of buttons on the elevator, but one way I know of is prone to breaking when the sector unloads and the other is much harder to hook up right.
     
    Joined
    Jun 9, 2013
    Messages
    114
    Reaction score
    112
    • Legacy Citizen 2
    • Legacy Citizen
    A very good solution. This also means that your elevator will cause less lag which is important if you are applying this concept to something bigger such as a train
    unfortunately not mine... The elevator wasn't developed by me, I just reverse-engineered it to get understanding of the system...
    Still quite useful.

    This works for moving 1 floor at a time (I do something like this in my HB), but I don't think this is what he is asking for. To go straight from floor #1 to floor #5 you need multiple buttons unless you have some other solution I'm not getting. Also, the reason I suggest putting a panel on each floor is because the direction you need to go from floor 5 to floor 3 is different than floor 1 to floor 3; so, a button to goto floor 3 will behave differently based on what floor you are on. There are a few ways to do it with one panel of buttons on the elevator, but one way I know of is prone to breaking when the sector unloads and the other is much harder to hook up right.
    The trick is you use hidden sensors to read the floor number on the display and then transmit it to the main processor via wifis. This way you remove a pretty large button panel from the cabin and can make a better-looking cabin while retaining functionality.

    As for the direction - the main circuit reads the location of the cabin relative to the destination and switch the system to that direction. No need to direct the cabin manually.
     
    Joined
    Jul 30, 2013
    Messages
    398
    Reaction score
    282
    • Wired for Logic Gold
    • Legacy Citizen 8
    • Purchased!
    Personally, I do not like to have logic in children entities, because this is difficult to "hide" and occupies a valuable space.

    Any logic stuff, it is better to put it in the parent entity (this is just my personal option); talking about wireles logic, to me, I still do not convince a lot to use those blocs, since they are exposed to many more errors and bugs than any other logical block.

    As several colleagues have suggested, if you want to minimize the use of logical blocks, and reduce the "area of floor selection," you must inevitably use display blocks, powerfuls, smalls and versatiles.

     
    Joined
    Jun 9, 2013
    Messages
    114
    Reaction score
    112
    • Legacy Citizen 2
    • Legacy Citizen
    Personally, I do not like to have logic in children entities, because this is difficult to "hide" and occupies a valuable space.

    Any logic stuff, it is better to put it in the parent entity (this is just my personal option); talking about wireles logic, to me, I still do not convince a lot to use those blocs, since they are exposed to many more errors and bugs than any other logical block.

    As several colleagues have suggested, if you want to minimize the use of logical blocks, and reduce the "area of floor selection," you must inevitably use display blocks, powerfuls, smalls and versatiles.

    Yeah, I agree with logic hiding issues. Such a cabin can be used only in fully-enclosed shafts unfortunately.

    As for the wifis, they are unavoidable in multi-stop elevator since you need to mark a stop while moving. That means the circuit must be moving with you and not be mounted into the wall of shaft. Or you need a dedicated "start moving" button, which slows an elevator down
     
    Joined
    Sep 23, 2014
    Messages
    137
    Reaction score
    38
    • Purchased!
    Well I was figuring that it could, at least theoretically, be operated using display logic; like you select a floor using a display module, and then it gets coded in to send the elevator car to the floor you picked.
     
    Joined
    Jun 11, 2016
    Messages
    1,170
    Reaction score
    646
    Well I was figuring that it could, at least theoretically, be operated using display logic; like you select a floor using a display module, and then it gets coded in to send the elevator car to the floor you picked.
    This is the first topic I tried to talk about with you. And now you come back for it.

    Whatever.

    That display block needs to be on the parent entity and on every floor then. Is that ok? You just can't put it in the capsule or it gets incredibly huge.
     
    Joined
    Sep 23, 2014
    Messages
    137
    Reaction score
    38
    • Purchased!
    yeah the idea would be that the logic would all be on the station itself rather than the elevator car; otherwise the car had to be made way too big. Also sorry I took so long to reply; for some reason I wasn't getting email notifications, so I didn't know to come and look at the thread.
    [doublepost=1522412590,1522412555][/doublepost]let's see if using the "more options" version of replying will make them come XD
     
    Joined
    Jun 11, 2016
    Messages
    1,170
    Reaction score
    646
    allright and do you want to type in the floor you want to select, or do you move a menu indicator that shifts through the floor index?
     
    Joined
    Jul 30, 2013
    Messages
    398
    Reaction score
    282
    • Wired for Logic Gold
    • Legacy Citizen 8
    • Purchased!
    If you want to have a menu with elevator floors, you can use my design, it does not have much complication, it would only require changing the regex commands a bit so that they "fit in" with your needs.

    Starmade MANIAC LOGIC

    If what you want is to have a "buffer" of the floors that are selected (a way to store the floors player selected), that would take a little more work ... but not impossible. In any case, making an elevator is simple, it is not necessary to complicate your life so much for something so mundane.