Improve Logic and display

    Joined
    Apr 14, 2018
    Messages
    49
    Reaction score
    57
    There is some things who I'am interesting to get, who can reduce logic circuits space and/or reduce calcul charge :
    • Xor gate : 1 gate instead of 4.
    • Make ratio (on speed rail controller, sensor) with less activator : activators slave of activators are counted in ratio of controller. then link them with each other reduce number needed. i.e :
      4 activators, 3 linked between us and 1 other only on controller allow 0, 9/10, 1
    • When a Master slave is selected, [SHIFT]+C should create a new master for current slave (as master actually do for slave)
    • Add 2 codes for Displays :
      • [HIDE]text[HIDE]
        text between this two tag arn't display but regExp escape only the tag, then :
        [HIDE][REPLACEALL]\d\b[WITH][HIDE]6 only display "6", but RegExp interprete :
        [REPLACEALL]\d\b[WITH]6
        That's could allow me to save many displays and regexp steps.
      • [LABEL](0-9) and [GOTO](0-9)
        The first number after these tags are the number of call or send tag
        Code side : It's a filter to copy only on displays with the same label number.
        IF [GOTO]5 is writed in source display, only content of targets with [LABEL]5 will be changed.
        Place It first in Display then you can link up to 9 differents displays on the same button and choose dynamically by display content wich one will be the target !
        This not difficult tag make me dream !
    **Edit (2)** (with good ideas/confirmation of posts)
    • Make a Telnet/terminal interface (aside displayBox type, as a checkbox to switch in terminal type)
      [Enter] could be the "apply line" in display block.
    • Stack displays with same orientation make the stack fill more characters.
      Evident vertically (10 lines > 20 lines, etc....)
      Horizontally, as they could be already exceed, i don't know, may fill more characters but don't display characters who exceed (only when stacked)
    • How can I forget that !!!
      Allow to call a group not captured ! (don't make a display error when calling $1 but nothing was captured into) it is so restrictive !
     
    Last edited:
    Joined
    Jan 17, 2017
    Messages
    40
    Reaction score
    46
    It's a filter to copy only on displays with the same label number.
    IF [GOTO]5 is writed in source display, only content of targets with [LABEL]5 will be changed.
    Place It first in Display then you can link up to 9 differents displays on the same button and choose dynamically by display content wich one will be the target
    Have you used sensors yet? They do this.

    You want [HIDE] to do what [PASSWORD] does with more functionality, yes? so some text is hidden and text out side of the tags is still displayed within the same display? that'd be handy.
     
    Joined
    Apr 14, 2018
    Messages
    49
    Reaction score
    57
    Have you used sensors yet? They do this.
    I'am not sure sensors do what I talk about without many logical blocks around to choose target.
    With sensor I get signal for 2 identic displays content, I get signal for ratio of a status block.
    But i can't change the target of displays without set a logic system around each target displays to root content and a biiigg around source to manage that. (or hit "C" and "V").
    So maybe I don't see a pretty solution in current system I work on, among others :
    I want to put a content on an random display, keep the target in memory to acces it later and use others possible target for other stuff And without use "C' and "V" naturally.
    That's actually could take half place of all the system I build.
    If you can explain me how I can do this I could be delighted.
    On lasts logics systems i made aournd 200 blocks Such features could save 20 blocks and may 1/3 of regExp process...
     
    • Like
    Reactions: Fays
    Joined
    Jan 17, 2017
    Messages
    40
    Reaction score
    46
    I thought I'd put together what I thought you were aiming for with the [LABEL] and [GOTO] Tags for the sake of being on the same page as you.

    While it does take up a decent chunk of space (morbidly unorganized esp.) I personally don't mind working this logic out - but I'd only ever use it on a station, and for fairly straight forward applications.

    On the other hand, it IS an awful lot if your restricted on space (like medium sized ship or something), or if you need to set up multiple groups for different tasks.. and the unreliability of displays to retain their continence after a copy paste could lead to frustrating repetition (even when they do copy the text, the meta data seems corrupt and wont actually work with logic interaction; not sure what that's about).

    While building this I was curious what application you would need it for, the first thing that struck me is this would be pretty cool for modifying your existing display logic from 1 spot, and addressing the components so you can modify them from 1 display v.s running all over the map... but the level of additional logic components would ramp up real quick and nearly defeat the purpose (going from cool functionality to .. I see blue screens and orange blocks when I close my eyes).

    I think I understand better where you're coming from now... though [LABEL] (at least) would need to be immune/ unchangeable by other displays. I wonder if the 'block coordinates' of the display could be used as the [LABEL] address... I dunno, but Ima +1 this :D




     
    • Like
    Reactions: arkahys
    Joined
    Sep 14, 2017
    Messages
    666
    Reaction score
    928
    While we are at it... can we make displays use a console font, and allow enough characters to actually fill it?
    Ideally, I'd actually like a display to support much bigger text blocks, like maybe 5k characters so that you could use them for more complex regex and style tags and make projecting text onto other backgrounds more feasible.
     
    Joined
    Apr 14, 2018
    Messages
    49
    Reaction score
    57
    I think I understand better where you're coming from now... though [LABEL] (at least) would need to be immune/ unchangeable by other displays. I wonder if the 'block coordinates' of the display could be used as the [LABEL] address... I dunno, but Ima +1 this :D
    lol, coordinates was my first thought :
    [Goto]x,x,x
    where x,x,x, is the coordinate of the target display, But that's make many more information to store in the block. And more important, if you share this, coordinates become false for a copy paste compared to the entitie where is it ! (until you make a system to apply dinamically coordinates when past system)
    or have to get a [LABEL] to get coordinate of a display, so we come back to my idea, with no "multitarget".
    the other purpose is to store generic value and just by change the goto number (and place,etc..) you can throw it to many targets.
    In a way, it is a goal to compensate what Nosajimiki talk about :
    This utility i don't find really one but 0, 1/4, 1/2, 3/4, 1 if you want make 2 or more such display (for all stocks or just shield+power+etc..):
    Make a ~10hz clock where you have separate outputs** and connect it to same sensors (0, 1/4 etc...) make a simple counter for ticks then you have a number for the device probed that you can write on 0,1/4, etc... displays :
    [GOTO]"Tick"[REPLACEALL](.*"Name")".*progress bar"[WITH]$0"Your pretty 0, 1/4, 1/2, 3/4, 1 progress bar"

    saving start about 2/3 target displays . for some people i saw make such progress bar for each ores or for systems...

    support much bigger text blocks
    In a complex display system (Characters, or regExp) you have already many common parts, I'am not actually on the brainstorm of complex project, so I can't give a very good exemple, but simple exemple :

    for characters : same events on numbered (or named) common events to trigger (Without [hide]tag) :
    on display :
    [HIDE][LABEL]8[GOTO]1[HIDE]"format"Door 8 Closed

    1st step :
    [REPLACEALL]\[LABEL\](\d)"format"(.+)(Closed|Open|OFF|ON|Empty|Full|Docked|Free)[With]$0~$1%Door1Button2Cargo3Rail4%$2~Closed1Open~OFF2ON~Empty3Full~docked4free~etc
    > 2nd step :
    [REPLACEALL](\d)~(.+)(\s\d\s)%\w*\2(\d)\w*%(\w*)~\w*(\5\4(\w+)~|(\w+)\4\5)(?:\w*)[WITH][GOTO]$0[WITH]\[HIDE\]\[LABEL\]$0~type\[HIDE\]"format"$1$2$5

    [HIDE]numberType[HIDE] can be avoid by use the same trick as above : a number by tick.
    About 150 caracters on each, but with [HIDE] in this case, we can divide (without lost process, as sub display can be used for other purpose)



    ~10hz clock[...]** (I will give a good stable one : 4x3x2 + 4rail for docked, as soon as I get accuracy hz results as I don't get same value for 1sec ,10sec and 100 sec, I don't want to share things without "strong numbers", sorry do my best to translate my thinks in english) get same results as alterintel