So I had a problem. I wanted to be able to broadcast a set of circuit signals representing a list of required items for a given outpost. The problem was that the radio only supports green and red channels leading to N>3 outputs intermixing signals.

Solution: Use a repeating clock that sends a signal only if Z={{my_chosen_channel_num}}. There’s some odd stuff going on combinator wise to keep signal values in memory while the Z timer is on a different channel. Also requires a single clock radio blueprint in order to keep receivers and transmitters in-sync with one another.

This is my first time fiddling with circuits more advanced than if X > Y inserter_enabled so if you find a way to make this better LMK

  • xmunk@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    12
    ·
    1 day ago

    In computing this sort of a problem would generally be solved by tagging via packet metadata - wouldn’t it be simpler to reserve a portion of the signal for a recipient address for signal decoding?

      • Starfighter@discuss.tchncs.de
        link
        fedilink
        English
        arrow-up
        7
        ·
        edit-2
        1 day ago

        I mean TDMA is also a perfectly valid solution.

        Just needs an easier way to synchronize clocks. Maybe one (master) station could send out a sync word that lets all other stations start their clocks.

        • maarvin@lemmy.worldOP
          link
          fedilink
          English
          arrow-up
          8
          ·
          1 day ago

          The easy solution to clock sync was to only have one clock. There’s some funkiness required to TX a signal during the TX’s clock cycle due to combinator timing but, I used that to my advantage on the RX side as it now only requires a single frame delay combinator to keep the signal alive 100% of the time.

      • xmunk@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        7
        ·
        1 day ago

        I am a dev in my professional life - the number of times I’ve used that reply to feedback is innumerable (I literally used it on Wednesday in reply to a proposed solution to mitigating replication lag).

        Realizing you did a dumb thing is part of the game of life. Now you’ve finished building one awesome system and can probably refactor it to an even awesomer system!

        • maarvin@lemmy.worldOP
          link
          fedilink
          English
          arrow-up
          4
          ·
          edit-2
          1 day ago

          Woo! Same! I’m working on a bit packing solution ATM. Should be more UPS friendly and more resource friendly :D

          I think I was leaning into the clock method as it doesn’t have an upper/lower limit to circuit values or number of distinct circuits. Actually as I’m typing this I realized concurrent signals would have to share a 32 bit address space greatly limiting the min/max values. Two channels already limits me to 2^16-1 assuming I want a signed value.