User:Carsten Milkau/Dual-Atmosphere Airlock: Difference between revisions
From Stationeers Wiki
More actions
No edit summary |
→Vent direction: Vent direction: equality comparison is a more straightforward explanation than a NOT gate |
||
| (7 intermediate revisions by 3 users not shown) | |||
| Line 1: | Line 1: | ||
= | == Structure == | ||
== Constants == | == Piping == | ||
== Electronics == | |||
=== Constants === | |||
* Zero | * Zero | ||
* "Vacuum" pressure | * "Vacuum" pressure | ||
== Target Atmosphere == | === Target Atmosphere === | ||
* [[Kit (Logic Switch)|Switch]] | * [[Kit (Logic Switch)|Switch]] | ||
* [[Carsten Milkau/RS-Latch]] | * [[User:Carsten Milkau/RS-Latch]] | ||
=== Current Atmosphere === | |||
[[User:Carsten Milkau/D-Latch]] | |||
== | <pre>if (internal_pressure > vacuum_pressure) | ||
then current_atmosphere = current_atmosphere | |||
else current_atmosphere = target_atmosphere</pre> | |||
=== Door sensor === | |||
* <del>[[User:Carsten Milkau/OR Gate]]</del> | |||
* [[Kit (Logic I/O)#Batch Reader|Batch Reader]] | |||
* [[User:Carsten Milkau/NOT Gate]] | |||
<pre>num_open_doors = read_sum(airlock_door open) | |||
doors_closed = (num_open_doors = 0)</pre> | |||
== Door control == | === Door control === | ||
if (my atmosphere) | if (my atmosphere) | ||
| Line 26: | Line 38: | ||
else Zero | else Zero | ||
== Vent activation == | === Vent activation === | ||
if (my atmosphere) | if (my atmosphere) | ||
| Line 32: | Line 44: | ||
else Zero | else Zero | ||
== Vent direction == | * atmosphere 0: max(atmosphere1, any door open) = Zero | ||
* atmosphere 1: atmosphere1 > any door open | |||
=== Vent direction === | |||
[[Kit (Logic Processor)#Compare Unit|Compare Unit]] | |||
<pre>if (my target atmosphere) | |||
then pressurize | |||
else depressurize</pre> | |||
Latest revision as of 14:18, 22 July 2018
Structure
Piping
Electronics
Constants
- Zero
- "Vacuum" pressure
Target Atmosphere
Current Atmosphere
if (internal_pressure > vacuum_pressure) then current_atmosphere = current_atmosphere else current_atmosphere = target_atmosphere
Door sensor
num_open_doors = read_sum(airlock_door open) doors_closed = (num_open_doors = 0)
Door control
if (my atmosphere) then (internal pressure >= external pressure) else Zero
Vent activation
if (my atmosphere) then (doors closed) else Zero
- atmosphere 0: max(atmosphere1, any door open) = Zero
- atmosphere 1: atmosphere1 > any door open
Vent direction
if (my target atmosphere) then pressurize else depressurize