Background: I created a Boolean that would apply a Shift layer when my MCG's lever is in the Safe position (aka when Button 35 is held). I followed the instructions in the software manual (last updated to v2.18 pdf), and then had to do a little trial and error to get it working, but overall it was actually pretty easy.
My reason for posting is that the only way I got it to work was by doing the opposite of the instructions, and leaving the "Inv" box un-checked. I'm glad to see the whole setup working, I'm just hoping to figure out why it's working this way, when from the current settings I would have assumed the opposite would be true.
Here is the current Boolean config that works:
What it does is applies the Shift Layer 1 when the Logical 35 is pressed - aka when the trigger lever is in the Safe position. But from my (still fresh and limited) understanding of the way these Booleans work, it looks to me as if it should only apply the Shift Layer when Logical 35 is NOT pressed. I suspect I'm misinterpreting what the "Inv" boxes do, and their relationship with the drop-downs, as the manual isn't clear on that.
So my questions then are:
1. I'm clearly misreading this, can someone with more knowledge break it down a bit better?
2. Is this the best way to even do what I'm wanting (shift layer 1 on Log 35)? It's so far working and very simple to enable, but is there maybe a more preferred "VKB-iffic" way to do this?
Can someone explain why this Boolean is apparently functioning inverse to its settings?
Moderator: AdminGroup
-
- Posts: 13
- Joined: Sat Jun 22, 2024 19:34
- Has thanked: 6 times
-
- Posts: 13
- Joined: Sat Jun 22, 2024 19:34
- Has thanked: 6 times
Re: Can someone explain why this Boolean is apparently functioning inverse to its settings?
I appreciate the offer! In this case though, it is working for me, just not how I was expecting it would. My main questions are about the "NOT" Boolean and the "Inv" boxes, as detailed above. I think I'm just not correctly understanding how they are supposed to work, and why.
Re: Can someone explain why this Boolean is apparently functioning inverse to its settings?
It is analogous to circuit diagrams. A NOT gate has an inverting output. If you make the output non-inverting, it is no longer functioning as NOT.
Though I agree that the labeling is slightly misleading. All other gates are labeled with the assumption of no inversion taking place
Though I agree that the labeling is slightly misleading. All other gates are labeled with the assumption of no inversion taking place
-
- Posts: 13
- Joined: Sat Jun 22, 2024 19:34
- Has thanked: 6 times
Re: Can someone explain why this Boolean is apparently functioning inverse to its settings?
Delta wrote:It is analogous to circuit diagrams. A NOT gate has an inverting output. If you make the output non-inverting, it is no longer functioning as NOT.
Though I agree that the labeling is slightly misleading. All other gates are labeled with the assumption of no inversion taking place
Huh. Wild. Yeah, I'm not an electrician, but I am a programmer, and that's the opposite of what I was expecting from a Boolean function. My expectation would be that NOT in this case means "IF ButtonX is NOT pressed, THEN do Y."
So if I'm reading you correctly, then, NOT actually means IS? If so, that's good for me to add to my working notes.
-
- Posts: 3541
- Joined: Tue Jan 15, 2013 23:56
- Location: г.Минск
- Has thanked: 46 times
- Been thanked: 690 times
Re: Can someone explain why this Boolean is apparently functioning inverse to its settings?
Only with the help of a jumper is it possible to assign a physical line to a logical or virtual button and assign functions to it that are not available for logical and virtual buttons.
This is the main task of the jumper.
This is the main task of the jumper.
-
- Posts: 13
- Joined: Sat Jun 22, 2024 19:34
- Has thanked: 6 times
Re: Can someone explain why this Boolean is apparently functioning inverse to its settings?
...I'll take your word for it. 
Thanks for the explanations folks, it still doesn't quite make sense to me, but I can work with it. Much appreciated.

Thanks for the explanations folks, it still doesn't quite make sense to me, but I can work with it. Much appreciated.
Re: Can someone explain why this Boolean is apparently functioning inverse to its settings?
My background is electronics engineering, and the booleans are very much based on logic circuits. The functions are gates, the triggers are flip flops, modals are closest to multiplexers, and counters and comparators have their circuitry equivalent too.
Little trivia: in most logic families, the fundamental form of a gate is actually inverting. So to build an AND gate, you take a NAND gate (short for "not AND") and put an inverter behind it.
Still, NOT is special in that it is the only gate named after its inverting form in devcfg. I wonder what it would be named to be less misleading. In circuitry we would call it a buffer, since it regenerates the signal level and prevents back propagation of loads on the line. But in software? Should we cal it NNOT? Should we call it OT, in analogy to AND and OR?
I think Ron's "Jumper" idea sounds cleanest. But if you do decide to update DevCfg, maybe still keep it in the form of "Jumper/NOT" or something like it, to allow older instructions to work and to make it clear that this is the right function for an inverting gate.
Little trivia: in most logic families, the fundamental form of a gate is actually inverting. So to build an AND gate, you take a NAND gate (short for "not AND") and put an inverter behind it.
Still, NOT is special in that it is the only gate named after its inverting form in devcfg. I wonder what it would be named to be less misleading. In circuitry we would call it a buffer, since it regenerates the signal level and prevents back propagation of loads on the line. But in software? Should we cal it NNOT? Should we call it OT, in analogy to AND and OR?
I think Ron's "Jumper" idea sounds cleanest. But if you do decide to update DevCfg, maybe still keep it in the form of "Jumper/NOT" or something like it, to allow older instructions to work and to make it clear that this is the right function for an inverting gate.
-
- Posts: 13
- Joined: Sat Jun 22, 2024 19:34
- Has thanked: 6 times
Re: Can someone explain why this Boolean is apparently functioning inverse to its settings?
I'm new to the club so won't presume to suggest anything better than what exists, for the record. But to answer those questions with my own thoughts, when I went in looking for how to do things on my own, the first things I looked for were things like "IF" and "OR" and was surprised to find neither. My understanding of Booleans comes from code and scripting with IF/AND/OR/WHILE/etc statements and loops. Anyway that's when I dove into the docs and then did some searches, and finally after much fiddling posted here. Now after this chat I'm off on a wiki hole into "jumpers" to learn more about that.
FWIW, jumpers mean little to nothing for me, unfortunately, I haven't had to fiddle with one since fussing with sound cards in the 90s, so the reference is lost on me. I could be an outlier though, but circuitry just isn't my background.
In the end, I'm glad it works (and so easily), I'm now just trying make an effort to understand why things work the way they do. Thanks!
FWIW, jumpers mean little to nothing for me, unfortunately, I haven't had to fiddle with one since fussing with sound cards in the 90s, so the reference is lost on me. I could be an outlier though, but circuitry just isn't my background.
In the end, I'm glad it works (and so easily), I'm now just trying make an effort to understand why things work the way they do. Thanks!
Who is online
Users browsing this forum: Google [Bot] and 26 guests