Actions

User

Difference between revisions of "Carsten Milkau/Dual-Atmosphere Airlock"

From Unofficial Stationeers Wiki

< User:Carsten Milkau
(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 08:18, 22 July 2018

Structure[edit]

Piping[edit]

Electronics[edit]

Constants[edit]

  • Zero
  • "Vacuum" pressure

Target Atmosphere[edit]

Current Atmosphere[edit]

User:Carsten Milkau/D-Latch

if (internal_pressure > vacuum_pressure)
then current_atmosphere = current_atmosphere
else current_atmosphere = target_atmosphere

Door sensor[edit]

num_open_doors = read_sum(airlock_door open)
doors_closed   = (num_open_doors = 0)

Door control[edit]

 if (my atmosphere) 
 then (internal pressure >= external pressure)
 else Zero

Vent activation[edit]

 if (my atmosphere) 
 then (doors closed) 
 else Zero
  • atmosphere 0: max(atmosphere1, any door open) = Zero
  • atmosphere 1: atmosphere1 > any door open

Vent direction[edit]

Compare Unit

if (my target atmosphere) 
then pressurize 
else depressurize