# Generator assumptions for wildfire_py.vsi.cmd

Decisions the generator made that are NOT Teamcenter data. 63 components in the file.

- ports grouped under their owning Fnd0LogicalBlock from owners.json (63 block components); signal names carry their port as a prefix
- 14 merged Ethernet port(s): a block's Ethernet ports share ONE VSI port (one socket per Teamcenter port, vsiBuild allows one port per protocol per component): Airborne_Detection_Segment.ethernet_p <- airAuditOut, airDetOut, airCmdIn; Command_and_Control_Segment.ethernet_p <- adsUtm, c2TaskIn, c2UtmSvc, gcsUtm, c2CmdOut, gcsC2, gcsRadioRf; Communications_Suite.ethernet_p <- satRf, commsEth, irdEth, losEth, satEth, antIrd, irdRf, antLos, losRf; Detection_Tower_Station.ethernet_p <- bhrBackhaul, bhrEth, tepBackhaul, twrBackhaul; Detection_and_Fusion_Segment.ethernet_p <- cueUtil, fusUtilIn, fusAudit, fusAuditOut, trkAudit, fusAirIn, fusTaskOut, fusAckIn, fusConfOut, fusWxIn, rskWx, cueNldn, fusNldnIn, cueFirms, fusCueIn, fusSat, fusIn, fusTowerIn; Dissemination_Segment.ethernet_p <- capApi, disCapSvc, audIn, disAuditIn, cadApi, disCadSvc, disIrwinOut, disAlertIn, disIrwinSvc, irwApi, disWfdssSvc, wfdApi; Edge_Detection_Processor.ethernet_p <- edpEth, edpFiber; Electro_Optical_Infrared_Gimbal.ethernet_p <- gimData, lwirData, mwirData, swirData, vnirData; Gimbal_Video_Aggregator.ethernet_p <- gvaFiberOut, gvaLwirIn, gvaMwirIn, gvaSwirIn, gvaVnirIn; Ground_Sensor_Segment.ethernet_p <- gasData, rawsData, gasRadio, gndDetOut; Space_Cue_Segment.ethernet_p <- satApi, spcCueOut, spcFirmsIn; Sustainment_Segment.ethernet_p <- lreMaint, susMaintSeat; Wildfire_Detection_Payload.ethernet_p <- recAudit, plEthOut, recEth, plMaint; Wildfire_Detection_System.ethernet_p <- sysCapOut, sysUtilIn, sysUtmOut, sysMaint, sysCadOut, sysIrwinOut, sysWxIn, sysNldnIn, sysFirmsIn, sysWfdssOut
- 15 satellite component(s): a block's second port on a non-Ethernet gateway cannot share its component, so it stands beside it as <block>__<port>: Wildfire_Detection_Payload__plWow (GenericPayload), Gimbal_Servo_Controller__gscCtrl (GenericPayload), Gimbal_Servo_Controller__gscGimbalCtl (GenericPayload), Gimbal_Servo_Controller__gscImuIn (GenericPayload), Eye_Safe_Laser_Rangefinder__lrfInhibit (GenericPayload), Safety_Interlock_Unit__siuFts (GenericPayload), Safety_Interlock_Unit__siuGimbal (GenericPayload), Safety_Interlock_Unit__siuWow (GenericPayload), Safety_Interlock_Unit__siuLaserInh (GenericPayload), DAA_Processor__daaOutBus (Can), Edge_Detection_Processor__edpTime (GenericPayload), Pan_and_Tilt_Unit__ptuCtrl (GenericPayload), Electro_Optical_Infrared_Gimbal__gimLaserInhibit (GenericPayload), Flight_Control_Computer__fccNav (Can), Vehicle_Management_System__vmsDaaIn (Can)
- 28 block(s) folded into their parent block to fit --group-cap 63 (largest saving, then deepest, then smallest, first); their ports keep their own names inside the parent component: VNIR Multispectral Camera -> Electro-Optical Infrared Gimbal; SWIR Camera -> Electro-Optical Infrared Gimbal; MWIR Radiometric Sensor -> Electro-Optical Infrared Gimbal; LWIR Imaging Sensor -> Electro-Optical Infrared Gimbal; Mission Data Recorder -> Wildfire Detection Payload; Ku SATCOM Terminal -> Communications Suite; Iridium Backup Transceiver -> Communications Suite; C-Band Line of Sight Datalink -> Communications Suite; Antenna Subsystem -> Communications Suite; Air-to-Air Radar -> Detect and Avoid System; Tower Edge Processor -> Detection Tower Station; C2 Ground Radio -> Ground Control Station; Backhaul Radio -> Detection Tower Station; Airspace Deconfliction Service -> Ground Control Station; Track Manager -> Detection and Fusion Segment; Satellite Hotspot Provider -> Space Cue Segment; Remote Automated Weather Station -> Ground Sensor Segment; Public Alerting Gateway -> Dissemination Segment; Launch and Recovery Element -> Sustainment Segment; In-Situ Sensor Node -> Ground Sensor Segment; IRWIN Adapter -> Dissemination Segment; Fusion Core -> Detection and Fusion Segment; Fire Risk Weighting Service -> Detection and Fusion Segment; Decision Support Adapter -> Dissemination Segment; Cue Ingest Service -> Detection and Fusion Segment; CAD Adapter -> Dissemination Segment; Audit Ledger -> Dissemination Segment; Ground Control Station -> Command and Control Segment
- 16 bus(es) now join two ports of the SAME component (after grouping or folding); emitted as written, vsiBuild is the judge of whether it accepts them
- --python-blocks '^(Navigation_Unit|Landing_Gear_System|Flight_Termination_System|Safety_Interlock_Unit__siuWow|Gimbal_Video_Aggregator)$': 4 block(s) emitted as Python components: Flight_Termination_System, Landing_Gear_System, Navigation_Unit, Safety_Interlock_Unit__siuWow
- 1 matched block(s) KEPT C++ because they carry an Ethernet port: Gimbal_Video_Aggregator (vsiBuild 2026.2 emits an empty establishTcpUdpConnection for a Python component whose sockets carry no connected signals, and this generator connects none over Ethernet)
- 15 Gpio port(s) emitted as c++2DtGenericPayload: vsiBuild 2026.2 cannot join two C++ components over Gpio (no c++2DtUart gateway; GPIO signals only connect to a virtual platform)
- 13 Uart port(s) emitted as c++2DtGenericPayload: vsiBuild 2026.2 cannot join two C++ components over Uart (no c++2DtUart gateway; GPIO signals only connect to a virtual platform)
- satRf: fnd0Direction is 'Bi-Directional', signals declared in_out
- gscLrfCtl: signals declared output for connect signals although fnd0Direction is 'Bi-Directional'
- lrfCtrl: signals declared input for connect signals although fnd0Direction is 'Bi-Directional'
- plInhibit: signals declared output for connect signals although fnd0Direction is 'Input'
- airDetOut: fnd0Direction is 'Bi-Directional', signals declared in_out
- commsEth: fnd0Direction is 'Bi-Directional', signals declared in_out
- daaEth: fnd0Direction is 'Bi-Directional', signals declared in_out
- edpEth: fnd0Direction is 'Bi-Directional', signals declared in_out
- fusAirIn: fnd0Direction is 'Bi-Directional', signals declared in_out
- irdEth: fnd0Direction is 'Bi-Directional', signals declared in_out
- losEth: fnd0Direction is 'Bi-Directional', signals declared in_out
- plEthOut: fnd0Direction is 'Bi-Directional', signals declared in_out
- radEth: fnd0Direction is 'Bi-Directional', signals declared in_out
- recEth: fnd0Direction is 'Bi-Directional', signals declared in_out
- satEth: fnd0Direction is 'Bi-Directional', signals declared in_out
- ftsArm: signals declared output for connect signals although fnd0Direction is 'Bi-Directional'
- siuFts: signals declared input for connect signals although fnd0Direction is 'Bi-Directional'
- camCtrl: signals declared output for connect signals although fnd0Direction is 'Bi-Directional'
- ptuCmdIn: signals declared input for connect signals although fnd0Direction is 'Bi-Directional'
- ptuCtrl: signals declared input for connect signals although fnd0Direction is 'Bi-Directional'
- tepCam: signals declared input for connect signals although fnd0Direction is 'Bi-Directional'
- adsUtm: fnd0Direction is 'Bi-Directional', signals declared in_out
- c2TaskIn: fnd0Direction is 'Bi-Directional', signals declared in_out
- c2UtmSvc: fnd0Direction is 'Bi-Directional', signals declared in_out
- fusTaskOut: fnd0Direction is 'Bi-Directional', signals declared in_out
- gcsUtm: fnd0Direction is 'Bi-Directional', signals declared in_out
- sysUtmOut: fnd0Direction is 'Bi-Directional', signals declared in_out
- utmSvc: fnd0Direction is 'Bi-Directional', signals declared in_out
- lreMaint: fnd0Direction is 'Bi-Directional', signals declared in_out
- maintSeat: fnd0Direction is 'Bi-Directional', signals declared in_out
- phmMaint: fnd0Direction is 'Bi-Directional', signals declared in_out
- plMaint: fnd0Direction is 'Bi-Directional', signals declared in_out
- susMaintSeat: fnd0Direction is 'Bi-Directional', signals declared in_out
- sysMaint: fnd0Direction is 'Bi-Directional', signals declared in_out
- edpGimbal: signals declared output for connect signals although fnd0Direction is 'Bi-Directional'
- gimCtrl: signals declared input for connect signals although fnd0Direction is 'Bi-Directional'
- gscCtrl: signals declared input for connect signals although fnd0Direction is 'Bi-Directional'
- gscGimbalCtl: signals declared input for connect signals although fnd0Direction is 'Bi-Directional'
- gscImuIn: signals declared input for connect signals although fnd0Direction is 'Bi-Directional'
- imuData: signals declared input for connect signals although fnd0Direction is 'Bi-Directional'
- siuGimbal: signals declared input for connect signals although fnd0Direction is 'Bi-Directional'
- cadApi: fnd0Direction is 'Bi-Directional', signals declared in_out
- disCadSvc: fnd0Direction is 'Bi-Directional', signals declared in_out
- disIrwinOut: fnd0Direction is 'Bi-Directional', signals declared in_out
- dispatchSvc: fnd0Direction is 'Bi-Directional', signals declared in_out
- fusAckIn: fnd0Direction is 'Bi-Directional', signals declared in_out
- sysCadOut: fnd0Direction is 'Bi-Directional', signals declared in_out
- acsBus: fnd0Direction is 'Bi-Directional', signals declared in_out
- acuBus: fnd0Direction is 'Bi-Directional', signals declared in_out
- adsBus: fnd0Direction is 'Bi-Directional', signals declared in_out
- adsbBus: fnd0Direction is 'Bi-Directional', signals declared in_out
- battBus: fnd0Direction is 'Bi-Directional', signals declared in_out
- cryoCtrl: fnd0Direction is 'Bi-Directional', signals declared in_out
- daaBus: fnd0Direction is 'Bi-Directional', signals declared in_out
- daaOut: fnd0Direction is 'Bi-Directional', signals declared in_out
- daaOutBus: fnd0Direction is 'Bi-Directional', signals declared in_out
- ebcBus: fnd0Direction is 'Bi-Directional', signals declared in_out
- edpCtrl: fnd0Direction is 'Bi-Directional', signals declared in_out
- fccActuator: fnd0Direction is 'Bi-Directional', signals declared in_out
- fccNav: fnd0Direction is 'Bi-Directional', signals declared in_out
- irdCtrl: fnd0Direction is 'Bi-Directional', signals declared in_out
- navBus: fnd0Direction is 'Bi-Directional', signals declared in_out
- pcuCtrl: fnd0Direction is 'Bi-Directional', signals declared in_out
- pduBus: fnd0Direction is 'Bi-Directional', signals declared in_out
- phmCtrl: fnd0Direction is 'Bi-Directional', signals declared in_out
- plCtrlBus: fnd0Direction is 'Bi-Directional', signals declared in_out
- tmuCtrl: fnd0Direction is 'Bi-Directional', signals declared in_out
- vmsBus: fnd0Direction is 'Bi-Directional', signals declared in_out
- vmsDaaIn: fnd0Direction is 'Bi-Directional', signals declared in_out
- gvaTime: signals declared input for connect signals although fnd0Direction is 'Output'
- navTime: signals declared input for connect signals although fnd0Direction is 'Output'
- vmsTime: signals declared input for connect signals although fnd0Direction is 'Output'
- disAlertIn: fnd0Direction is 'Bi-Directional', signals declared in_out
- disIrwinSvc: fnd0Direction is 'Bi-Directional', signals declared in_out
- fusConfOut: fnd0Direction is 'Bi-Directional', signals declared in_out
- incidentSvc: fnd0Direction is 'Bi-Directional', signals declared in_out
- irwApi: fnd0Direction is 'Bi-Directional', signals declared in_out
- sysIrwinOut: fnd0Direction is 'Bi-Directional', signals declared in_out
- antIrd: fnd0Direction is 'Bi-Directional', signals declared in_out
- irdRf: fnd0Direction is 'Bi-Directional', signals declared in_out
- airCmdIn: fnd0Direction is 'Bi-Directional', signals declared in_out
- antLos: fnd0Direction is 'Bi-Directional', signals declared in_out
- c2CmdOut: fnd0Direction is 'Bi-Directional', signals declared in_out
- fccC2: fnd0Direction is 'Bi-Directional', signals declared in_out
- gcsC2: fnd0Direction is 'Bi-Directional', signals declared in_out
- gcsRadioRf: fnd0Direction is 'Bi-Directional', signals declared in_out
- losRf: fnd0Direction is 'Bi-Directional', signals declared in_out
- every signal typed 'int': Teamcenter records no signal data type
- bus PublicAlertingGateway: hub-and-spoke TCP with hub=capApi and ip ports 8800..8801 chosen by the generator; Teamcenter records no socket roles or port numbers, and vsiBuild allows at most two VSI ports per tcpIp socket
- bus UtilityFaultService: hub-and-spoke TCP with hub=cueUtil and ip ports 8802..8803 chosen by the generator; Teamcenter records no socket roles or port numbers, and vsiBuild allows at most two VSI ports per tcpIp socket
- bus AuditLogInterface: hub-and-spoke TCP with hub=airAuditOut and ip ports 8804..8809 chosen by the generator; Teamcenter records no socket roles or port numbers, and vsiBuild allows at most two VSI ports per tcpIp socket
- bus RangefinderSerial: no Output/Input pair in fnd0Direction, so gscLrfCtl was taken as source
- bus PayloadPowerInhibitDiscrete: no Output/Input pair in fnd0Direction, so plInhibit was taken as source
- bus PayloadEthernet: hub-and-spoke TCP with hub=airDetOut and ip ports 8810..8819 chosen by the generator; Teamcenter records no socket roles or port numbers, and vsiBuild allows at most two VSI ports per tcpIp socket
- bus FlightTerminationDiscrete: no Output/Input pair in fnd0Direction, so ftsArm was taken as source
- bus TowerCameraControl: no Output/Input pair in fnd0Direction, so camCtrl was taken as source
- bus AirspaceServiceInterface: hub-and-spoke TCP with hub=adsUtm and ip ports 8820..8822 chosen by the generator; Teamcenter records no socket roles or port numbers, and vsiBuild allows at most two VSI ports per tcpIp socket
- bus MaintenanceInterface: hub-and-spoke TCP with hub=lreMaint and ip ports 8823..8826 chosen by the generator; Teamcenter records no socket roles or port numbers, and vsiBuild allows at most two VSI ports per tcpIp socket
- bus GimbalSerialControl: no Output/Input pair in fnd0Direction, so edpGimbal was taken as source
- bus AgencyDispatchService: hub-and-spoke TCP with hub=cadApi and ip ports 8827..8829 chosen by the generator; Teamcenter records no socket roles or port numbers, and vsiBuild allows at most two VSI ports per tcpIp socket
- bus SensorFiberLink: hub-and-spoke TCP with hub=edpFiber and ip ports 8830..8831 chosen by the generator; Teamcenter records no socket roles or port numbers, and vsiBuild allows at most two VSI ports per tcpIp socket
- bus PayloadControlBus: frame id 0x100 and a flat 8-bit-per-signal layout are generator defaults; Teamcenter records no frame id or bit layout
- bus TimeReference: no Output/Input pair in fnd0Direction, so edpTime was taken as source
- bus ImagingSensorInterface: hub-and-spoke TCP with hub=gvaLwirIn and ip ports 8832..8835 chosen by the generator; Teamcenter records no socket roles or port numbers, and vsiBuild allows at most two VSI ports per tcpIp socket
- bus IrwinIncidentService: hub-and-spoke TCP with hub=disAlertIn and ip ports 8836..8838 chosen by the generator; Teamcenter records no socket roles or port numbers, and vsiBuild allows at most two VSI ports per tcpIp socket
- bus WeatherModelService: hub-and-spoke TCP with hub=fusWxIn and ip ports 8839..8840 chosen by the generator; Teamcenter records no socket roles or port numbers, and vsiBuild allows at most two VSI ports per tcpIp socket
- bus LightningDataService: hub-and-spoke TCP with hub=cueNldn and ip ports 8841..8842 chosen by the generator; Teamcenter records no socket roles or port numbers, and vsiBuild allows at most two VSI ports per tcpIp socket
- bus IridiumBackupC2: NO socket emitted; every spoke from hub=antIrd was omitted as a self-link on one merged port (see the spoke list)
- bus SatelliteCueService: hub-and-spoke TCP with hub=cueFirms and ip ports 8843..8847 chosen by the generator; Teamcenter records no socket roles or port numbers, and vsiBuild allows at most two VSI ports per tcpIp socket
- bus DecisionSupportService: hub-and-spoke TCP with hub=disWfdssSvc and ip ports 8848..8849 chosen by the generator; Teamcenter records no socket roles or port numbers, and vsiBuild allows at most two VSI ports per tcpIp socket
- bus LineOfSightC2Link: hub-and-spoke TCP with hub=airCmdIn and ip ports 8850..8855 chosen by the generator; Teamcenter records no socket roles or port numbers, and vsiBuild allows at most two VSI ports per tcpIp socket
- bus TowerBackhaul: hub-and-spoke TCP with hub=bhrBackhaul and ip ports 8856..8858 chosen by the generator; Teamcenter records no socket roles or port numbers, and vsiBuild allows at most two VSI ports per tcpIp socket
- 22 Ethernet spoke(s) omitted because both Teamcenter ports sit on the same merged VSI port (a server and a client of one ip port on one port is refused): PublicAlertingGateway: capApi -> disCapSvc; UtilityFaultService: cueUtil -> fusUtilIn; AirspaceServiceInterface: adsUtm -> c2TaskIn; AirspaceServiceInterface: adsUtm -> c2UtmSvc; AirspaceServiceInterface: adsUtm -> gcsUtm; MaintenanceInterface: lreMaint -> susMaintSeat; AgencyDispatchService: cadApi -> disCadSvc; AgencyDispatchService: cadApi -> disIrwinOut; ImagingSensorInterface: gvaLwirIn -> gvaMwirIn; ImagingSensorInterface: gvaLwirIn -> gvaSwirIn; ImagingSensorInterface: gvaLwirIn -> gvaVnirIn; IrwinIncidentService: disAlertIn -> disIrwinSvc; IrwinIncidentService: disAlertIn -> irwApi; WeatherModelService: fusWxIn -> rskWx; LightningDataService: cueNldn -> fusNldnIn; IridiumBackupC2: antIrd -> irdRf; SatelliteCueService: cueFirms -> fusCueIn; SatelliteCueService: cueFirms -> fusSat; DecisionSupportService: disWfdssSvc -> wfdApi; TowerBackhaul: bhrBackhaul -> bhrEth; TowerBackhaul: bhrBackhaul -> tepBackhaul; TowerBackhaul: bhrBackhaul -> twrBackhaul
