Stationeers

Stationeers

View Stats:
The new IC Channels
For those of us dabbling in MIPS, can we see some samples of the new Channel feature and a good practical use for the new feature?

It sounds to me like it might be a variation of the Transmitter/Reciever device and allows me to store a value to a slot that can be called from other non-connected networks?

Say on my solar panel IC Housing I want to save a daylight mode setting to share...

#on Network 1
alias Sensor d0
alias Daylight r0
l Daylight Sensor Activate #0 = night, 1 = day
s Sensor:0 Channel0 Daylight #this doesn't look right to me, how's this work?


#on Network 2
alias Sensor d0 #Not sure how I'm supposed to dial in this device
alias Daylight r0
l Daylight Sensor:0 Channel0

Just laying this out doesn't appear to be logically correct and I don't think I've yet grasped this new concept. Is anyone better able to translate this new feature WITH examples to ease the information digestion?
< >
Showing 1-10 of 10 comments
I've been playing around with this is creative. I get that you can R/W arbitrary data on a cable network now, but I don't see how you share that data across a network boundary as they say it's the "primary use case." We need a better example.

I even tried using an TX/RX pair of logic transmitters, setting data on all eight channels on the TX network side hoping that the mirroring RX on another network could read it. The RX reads just result in NaN.

Update: After further experimentation, it occurs to me that we are misinterpreting the intent of the feature, which is unfortunately phrased in the update notes. The channel feature allows one to share data between multiple devices on a network - not share data across multiple networks.
Last edited by DeathBirdsFly; Apr 28 @ 3:31pm
Rocket  [developer] Apr 28 @ 6:57pm 
Originally posted by DeathBirdsFly:
but I don't see how you share that data across a network boundary
The IC can access *any* network connection off of a device, even ones not in the same network.

So if you have d0 bound to a logic memory, and another entire network on the *other* connection of the logic memory - you can access *both* cable networks for read/write. This allows IC's to access cable networks for data sharing that they are one removed from.
Originally posted by Rocket:
Originally posted by DeathBirdsFly:
but I don't see how you share that data across a network boundary
The IC can access *any* network connection off of a device, even ones not in the same network.

So if you have d0 bound to a logic memory, and another entire network on the *other* connection of the logic memory - you can access *both* cable networks for read/write. This allows IC's to access cable networks for data sharing that they are one removed from.

Ok, I understand now. So you have to have at least one device on both networks acting as a bridge of sorts.
Rocket  [developer] Apr 28 @ 10:29pm 
Originally posted by DeathBirdsFly:
Ok, I understand now. So you have to have at least one device on both networks acting as a bridge of sorts.
You can use db:0 and db:1 to get the two connections for the IC itself. That would mean the IC could be the bridge between two networks.
Last edited by Rocket; Apr 28 @ 10:29pm
I think I'm starting to understand the new concept a bit more, at least I've had some success with the programming side though results are not what I expected. I made two independent networks built based on my original post of attempting to store and share a Daylight condition. (Screenshots below).

Network 1 program:
alias Sensor d0
alias Daytime r0
Start:
l Daytime Sensor Activate #get daylight status
s db Setting Daytime #store status to this housing
s db:0 Channel0 Daytime #store status to channel 0
yield
j Start

Network 2 program:
alias Daytime r0
Start:
l Daytime db:0 Channel0 #get channel 0 value
s db Setting Daytime #save value to housing
yield
j Start

With the networks not physically connected like this...
https://steamcommunity.com/sharedfiles/filedetails/?id=2968820135
I received a NaN result (No Available Network).

However, when there was a physical network connection I did get the expected result.
https://steamcommunity.com/sharedfiles/filedetails/?id=2968820145

With a physically connected network, I don't need a channel to share the value, I can just connect to the Network 1 db housing and get the value.

So if the point is to be able to transfer this data to a non-connected network, this appears to be failing or I'm not getting the intended function of this new feature.
Last edited by JeanDeaux; Jun 1 @ 2:32pm
Originally posted by JeanDeaux:
I think I'm starting to understand the new concept a bit more, at least I've had some success with the programming side though results are not what I expected.

I have this example that may help. This represents a test of how I intend to use this feature. I have a main power line that forks off into several APC's. I will use a "bridge controller" to send/receive data to networks on the output side of the APC's.

https://steamcommunity.com/sharedfiles/filedetails/?id=2968998375

# Network 1 alias dial d0 alias dialSet r0 main: yield l dialSet dial Setting # write dial value to power connection s db:1 Channel0 dialSet j main

# Network bridge alias apc1 d0 alias apc2 d1 alias dialSet r0 # read dial value from apc1 power connection # and write it to apc2 power connection main: yield l dialSet apc1:1 Channel0 s apc2:1 Channel0 dialSet j main

# Network 2 alias led d0 alias dialSet r0 main: yield # read dial value from this power connection # and display it l dialSet db:1 Channel0 s led Setting dialSet j main
Okay, it looks like Channels ignore the firewalls of the network devices. Transformers, APC's, all those devices that break a network connection a Channel can pass data through. So you still need a physical path, it's not magically transmitted via some data teleport technology.

Or perhaps it's thru just one firewall. That might explain your IC in the middle, acting like a relay to the next network?
Last edited by JeanDeaux; Apr 29 @ 8:54pm
Originally posted by JeanDeaux:
Or perhaps it's thru just one firewall. That might explain your IC in the middle, acting like a relay to the next network?

Yes, that's its function. In that example, data is moving from network 1 to network 2 only, but I could have made the whole thing full-duplex by adding an opposing dial and led and some additional code that uses the same connection points but a different channel number.
Ketrix May 2 @ 2:54am 
So Channels are the IC's version of the Logic Mirror chip? But instead of mirroring all variables on a single device, it mirrors 8 data values that are stored on the cable network itself (just as if there are 8 invisible Logic Memories that only an IC can access).

Apart from sharing data between adjacent networks, this should also make it easier to have multiple IC's working together on the same task since they can now share more data without having to use encoding.

The wireless link between Logic Transmitters don't seem to send any Channel values, so each pair of logic transmitters can still only send one value (via the Setting variable) which means that encoding is still useful here.
Originally posted by JeanDeaux:
Okay, it looks like Channels ignore the firewalls of the network devices. ...
No. You just have access ...
... to all channels ...
... of all connections ...
... of all devices connected.
This means you can read/write 8 values on each network cable/pipe/chute/etc of any device, your IC10 connected.

For example and your imagination:
Write 321 on channal5 of Sorter1 Output chute and find it on Sorter3 Input on Channel5.
< >
Showing 1-10 of 10 comments
Per page: 1530 50

Date Posted: Apr 28 @ 6:37am
Posts: 10