Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

User:Carsten Milkau/Dual-Atmosphere Airlock: Difference between revisions

From Stationeers Wiki
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:
= Dual-Atmosphere Airlock =
== 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]]


== Current Atmosphere ==
<pre>if (internal_pressure > vacuum_pressure)
then current_atmosphere = current_atmosphere
else current_atmosphere = target_atmosphere</pre>


[[Carsten Milkau/D-Latch]]
=== Door sensor ===


== Door sensor ==
* <del>[[User:Carsten Milkau/OR Gate]]</del>
* [[Kit (Logic I/O)#Batch Reader|Batch Reader]]
* [[User:Carsten Milkau/NOT Gate]]


* [[Carsten Milkau/OR Gate]]
<pre>num_open_doors = read_sum(airlock_door open)
* [[Carsten Milkau/NOT Gate]]
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]]


[[Carsten Milkau/NOT Gate]]
<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

User:Carsten Milkau/D-Latch

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

Compare Unit

if (my target atmosphere) 
then pressurize 
else depressurize