snapkitty
hardware
ada
fortran
python
File size: 1,004 Bytes
5befefa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/**

 * Communications state machine — RECONSTRUCTED

 */

export type CommsState = "ACQUIRE"|"LOCK"|"DATA"|"DROP";
export type LinkType = "S_BAND"|"VHF"|"UHF";

export class CommsLink {
  state: CommsState="ACQUIRE";
  link: LinkType;
  signalDb = -120;
  constructor(link:LinkType){ this.link=link; }
  update(signalDb:number){
    this.signalDb=signalDb;
    switch(this.state){
      case "ACQUIRE": if(signalDb>-90) this.state="LOCK"; break;
      case "LOCK": if(signalDb>-85) this.state="DATA"; else if(signalDb<-100) this.state="DROP"; break;
      case "DATA": if(signalDb<-100) this.state="DROP"; break;
      case "DROP": if(signalDb>-90) this.state="ACQUIRE"; break;
    }
  }
}

export class MsfNetwork {
  links=new Map<string, CommsLink>([
    ["GOLDSTONE", new CommsLink("S_BAND")],
    ["HONEYSUCKLE", new CommsLink("S_BAND")],
    ["CARNARVON", new CommsLink("S_BAND")],
  ]);
  route(frame:any){ /* INFERRED: fan-out to MCC consoles */ return frame; }
}