Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 24 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
24
Dung lượng
713 KB
Nội dung
3CS: Three Corner Sat Error! No text of specified style in document Error! No text of specified style in document Three Corner Sat Flight Software Specification - Release UN2-EEDS-SWBASE, 02-17-02 Rev A Prepared By: Dave Beckwith Prepared For: University Nanosat 3CS: Three Corner Sat Error! No text of specified style in document Error! No text of specified style in document Approvals: Originator/EEDS Team Lead Date Thermal Team Lead Date Comm Team Lead Date I&T Manager Date EPS Team Lead Date Safety Date FMMR Team Lead Date Systems Engineer Date Imaging Team Lead Date Configuration Manager Date 3CS: Three Corner Sat REV DRAFT DATE 02-17-02 Error! No text of specified style in document Error! No text of specified style in document Revision Log CHANGE Initial DRAFT version created LOCATION ALL ALL ALL 3CS: Three Corner Sat Error! No text of specified style in document Error! No text of specified style in document Table of Contents SCOPE 1.1 IDENTIFICATION 1.2 DOCUMENT MAINTENANCE .5 1.3 SYSTEM OVERVIEW 1.4 DOCUMENT OVERVIEW .5 1.5 DEFINITIONS, ACRONYMS, AND ABBREVIATIONS LOW LEVEL FLIGHT SOFTWARE 2.1 HANDLERS 2.1.1 I/O Blocks (IOBLK) 2.1.2 I/O Manager (IOMGR) 2.1.3 Serial manager (SERIALMGR) PROCESSING TASKS 3.1 COMMAND BLOCKS (CMDBLK) 3.2 PROCESS TASKS (PROCESSTASK) 3.3 SOFTWARE MANAGER (SWM) 3.4 SCIENCE MODULE (SCI) 10 3.5 ELECTRICAL POWER MANAGER (EPM) 11 3.6 BROADCAST PACKET MANAGER (BPGEN) .11 3.7 TRANSMIT COMMUNICATIONS (TX_COMM) 11 3.8 RECEIVE COMMUNICATIONS (RX_COMM) 11 SPACECRAFT COMMAND LANGUAGE (SCL) 11 4.1 DESCRIPTION 11 4.1.1 Core product 11 4.1.2 Software Bus .12 4.2 SCL MODEL 12 4.2.1 Scripts 12 4.2.2 Rules 13 4.2.3 Constraints 13 4.2.4 Database 13 4.3 USER INTERFACE 14 4.3.1 Application Specific Module (ASPCFC) 14 4.3.2 Packet Generator (PKTGEN) 14 4.3.3 Data IO for Special Sensors (DIOUSER) 14 4.3.4 Real Time Engine Services (RTESVC) .14 4.3.5 Access generated code 14 4.3.6 SCL setup files 14 CONTINUOUS ACTIVITY SCHEDULING PLANNING EXECUTION AND REPLANNING (CASPER) 15 5.1 DESCRIPTION 15 5.1.1 Planning .15 5.1.2 Resources .15 5.2 MODEL 15 5.3 SCL Interface 16 3CS: Three Corner Sat Error! No text of specified style in document Error! No text of specified style in document Scope 1.1 Identification This document applies to the Three Corner Sat (3CS) project, a joint project undertaken by Arizona State University, University of Colorado at Boulder, and New Mexico State University This project is part of the University Nanosatellite Program sponsored by the Air Force Office of Scientific Research (AFOSR) and the Defense Advanced Research Projects Agency (DARPA) 1.2 Document Maintenance This document falls under the 3CS document control requirements as specified under the 3CS Configuration Management plan The end-to-end subsystem is being developed at the University of Colorado and the team members there are to be part of any changes or updates All changes and updates must be made in accordance with the 3CS CM plan 1.3 System Overview The main objective of the 3CS mission is the successful demonstration of the following technologies and approaches: - Imaging - Virtual formation flying - Intersatellite Communications - Distributed & Automated Operations - Modular, Generic Nanosatellite Design - Micropropulsion Experiment – Validate MEMS Heater Chip for FMMR - Student Education 1.4 Document Overview The purpose of this document is to describe the components of the flight software, the software flown onboard the satellites, and their functions 1.5 Definitions, Acronyms, and Abbreviations Acronym 3CS ADC AFRL AOCS AODC APRS ASU C&DH Name Three Corner Sat Analog to Digital Converter Air Force Research Laboratory Attitude and Orbit Control Subsystem Attitude/Orbit Determinations and Control Automatic Position Reporting System Arizona State University Command and Data Handling 3CS: Three Corner Sat Acronym CDR CMOS COMM COTS CPR CPU CU DSES DSP EEPROM EEDS EPS ESD FCP FEA FEM FM FMMR FSDP FSW GaAs GMSK GPS GSFC HH I I/O ICB IMG IR JSC JPL KSC LR MCDL MDP MEMS MOP MSDS MUX NASA NiCd NMEA NMSU NSTS Error! No text of specified style in document Error! No text of specified style in document Name Critical Design Review Complimentary Metal Oxide Semiconductor Communications Subsystem Commercial off the Shelf Customer Payload Requirements Central Processing Unit University of Colorado at Boulder Deep Space Exploration Society Digital Signal Processor Electrically Erasable Programmable Read Only Memory End to End Data Subsystem (C&DH) Electric Power Subsystem Electrostatic Discharge Fracture Control Plan Finite Element Analysis Finite Element Method Frequency Modulation Free Molecule Micro Resistojet Flight Safety Data Package Flight Software (software onboard satellite) Gallium Arsenide Gaussian Minimum Shift Key Global Positioning System Goddard Space Flight Center Hitchhiker Current Input / Output (to and from a computer) Imaging Control Board Imaging Infrared Johnson Space Center Jet Propulsion Laboratory Kennedy Space Center Latching Relay Master Control Document List Maximum Design Pressure Micro-Electro-Mechanical Systems Maximum Operating Pressure Multiple Satellite Deployment System Multiplexer National Aeronautics and Space Administration Nickel Cadmium National Marine Electronics Association New Mexico State University National Space Transportation System 3CS: Three Corner Sat Acronym OEM O/S P PIC PLB PPF PROP PSDU PSRP PWM REA RFDW RTD RTE RF SA SCC S/C SCL SHCS SHELS SMA SMTR SPAM STK SVP SSS STRUCMEC H V WDT Error! No text of specified style in document Error! No text of specified style in document Name Original Equipment Manufacturer Operating System Power Programmable Integrated Controller Payload Bay Payload Processing Facility Propulsion Subsystem Propellant Storage and Delivery Unit Payload Safety Review Panel Pulse Width Modulation Responsible Engineering Authority Request For Deviation Resistance Temperature Device Realtime Engine Radio Frequency Solar Arrays Stress Corrosion Cracking Space Craft System Control Language (ground & onboard) Socket Head Cap Screw Shuttle Hitchhiker Ejection Launch System Shape Memory Alloy Structures, Mechanisms, Thermal and Radiation Size Power And Mass Satellite Tool Kit Structural Verification Plan Stack Separation System Structures and Mechanisms Subsystem Voltage Watch Dog Timer Low Level Flight Software The low level flight software performs services for the processing tasks at the next level up 2.1 Handlers Handlers perform I/O services that make it easier for the processing tasks to communicate with the physical equipment of the satellites 2.1.1 I/O Blocks (IOBLK) This is a C++ class defined in "iomgr.h" and implemented in "iomgr.C" which provides the structure needed to send an I/O request to a handler These blocks contain data elements that allow passing information to a handler to send output and receiving information back from the handler to receive input 3CS: Three Corner Sat Error! No text of specified style in document Error! No text of specified style in document 2.1.2 I/O Manager (IOMGR) This is a C++ class defined in "iomgr.h" and implemented in "iomgr.C" which provides a pure virtual base class upon which a handler class can be built The IOMGR class must be inherited into a new class that is a specialized handler for a specific type of I/O This class provides the following facilities for derived handler classes: 1) A request queue for incoming IOBLK objects which request input from, and/or output to a physical device 2) A start-up member function that spawns the handler as a separate VxWorks task 3) A task body which waits for requests to be entered into the request queue, and the calls the pure virtual "process_request()" function to perform the requested I/O 4) Utility member functions which can get information about the request queue and the requests pending 2.1.3 Serial manager (SERIALMGR) Since most of the I/O on the satellites is performed through serial (RS-232 format) digital transmission, a C++ handler class (SERIALMGR) is provided which performs serial I/O This class is defined in "serialmgr.h" and is implemented in "serialmgr.C" This class provides several features which make serial I/O more powerful and convenient for the processing tasks described below: Serial output from either a small buffer in the IOBLK object or from a separate buffer pointed to by a pointer in the IOBLK Serial input to either a small buffer in the IOBLK object or to a separate buffer pointed to by a pointer in the IOBLK Serial input can be terminated in any combination of the following three ways Input will be terminated when any of the specified conditions is met: 1) Terminal Count - the input request is terminated when a specified number of characters have been received An input status of is returned in this case Specify a count of zero to disable this type of termination 2) Timeout - the input request is terminated when a specified number of milliseconds have elapsed since the request was started An input status of is returned in this case Specify zero milliseconds to disable this type of termination 3) String Match - the request is terminated if a string of characters specified in the IOBLK is found in the serial input stream The match string can be from 1-7 characters An input status of is returned in this case Specify a null string to disable this type of termination Two or more serial handlers can share a single serial hardware port Each handler can have a different baud rate and special switching code to select a different external multiplexer port Each handler can specify whether it needs to perform input, output, or both This will be taken into account in preventing conflicts Processing Tasks Processing tasks implement the intelligence to perform specific types of processing in response to a command from SCL The following sections describe the C++ classes that implement the processing tasks 3.1 Command Blocks (CMDBLK) This is a C++ class defined in "ProcessTask.h" and implemented in "ProcessTask.C" which provides the structure needed to send a command to a "ProcessTask" object These blocks contain data elements that allow passing information to a processing task and receiving information back from the processing task 3CS: Three Corner Sat Error! No text of specified style in document Error! No text of specified style in document 3.2 Process Tasks (ProcessTask) This is a C++ class defined in "ProcessTask.h" and implemented in "ProcessTask.C" which provides a pure virtual base class upon which a processing task class can be built The ProcessTask class must be inherited into a new class that is a specialized task to perform a special type of processing This class provides many capabilities that are commonly needed by processing tasks: Each process task is assigned a range of numbers that will be the SCL record ID's (recid's) that it will service A static routing function, "Route_Cmd()", is provided to route each command (CMDBLK) to the appropriate processing task A command queue (CmdQueue) is provided to allow SCL or other processing tasks to queue commands to be executed This queue holds objects of the CMDBLK class A reply queue (ReplyQueue) is provided to receive I/O replies (IOBLK objects) back from handlers in response to I/O requests that have been performed A virtual "KeepAlive()" member function is provided which can be called periodically while the processing task is waiting for a command to be queued This can be used to pet a watchdog timer or check the status of a hardware device, for instance Several utility functions are provided to assist in parsing command parameters and other common needs 3.3 Software Manager (SWM) This is a processing task class (SW_MGR) derived from the "ProcessTask" class This task executes a collection of commands that are unique or don't fit in with any of the other processing tasks SCMD description name recID nparm example manual call initializes software runlevel cmd_init_runlevel1 2000 mcmd 2000 initializes software runlevel cmd_init_runlevel2 2001 mcmd 2001 initializes software runlevel cmd_init_runlevel3 2002 mcmd 2002 runs the new software in test mode cmd_test_sw_update 2005 mcmd 2005 loads the new software into the baseline cmd_load_sw_update 2006 mcmd 2006 loads the new schedule into the baseline cmd_load_schedule_update 2007 mcmd 2007 gets current time from another satellite (unused, cmd_get_time done automatically by COMM) 2008 mcmd 2008 command that does nothing 2009 mcmd 2009 sets the system time in vxWorks and in the SCL cmd_set_mission_time database (real UTC time) 2010 mcmd 2010,"979 " sets the satellite ID number (1=petey, 2=ralphie, cmd_set_satellite_num 3=sparky) and into SCL dbase 2011 mcmd 2011,"2" sets the actual time (real Boulder time) that the mission is deemed to have started cmd_set_mission_start 2012 mcmd 2012,"97 " starts the SWB ProcessMessage loop cmd_start_swb 2013 mcmd 2013 reboots vxworks (warm reboot) cmd_reboot_eeds 2014 mcmd 2014,"80309" gets the satellite number from the fsw's persistant storage into SCL database cmd_get_satellite_num 2015 mcmd 2015 sets the master number in the fsw's persistant storage and into SCL database cmd_set_master_num 2016 mcmd 2016, "1" cmd_no_op 3CS: Three Corner Sat Error! No text of specified style in document Error! No text of specified style in document SCMD description name recID nparm example manual call gets the master number from the fsw's persistant cmd_get_master_num storage into SCL database 2017 mcmd 2017 sends a cmd_ping_return cmd to the current "target" station cmd_ping_target 2018 mcmd 2018 sends a cmd_ping_reply cmd to the current target station (parameter is "this" station) cmd_ping_return 2019 mcmd 2019,"" displays a "ping OK" message (param is the stn# cmd_ping_reply replying to the ping) 2020 mcmd 2020,"" called during boot-up to init some system params from persistent variables 2021 mcmd 2021 generates software H&S data and DCOM it into cmd_get_sw_hs the SCL database 2022 mcmd 2022 sets the verbosity for the SWM module(0= none, cmd_swm_verbosity 1=errors, 2=comments, 3=all)(default=1) 2023 mcmd 2023,"2" initializes blank databases with values specific to cmd_init_dbs each satellite Done in FSW so SCL doesn't have to switch databases to it 2024 mcmd 2024 set/get the deployment_sv in persistant storage, cmd_deploy_done for false, true Negative for get 2025 mcmd 2025, "1" set/get the isl_mode_sv in persistant storage Use a negative argument to get, or a "off", "on" 2026 mcmd 2026, "1" gets the number of reboots out of persistant data cmd_reboot_count 2027 rcmdto, 2027 reboots the flight computer after a 20 second delay 2028 mcmd 2028,"80309" set/get the battery capacity from storage (< to cmd_batt_charge Get, >0 to Set) 2029 mcmd 2029,"32878" Copy/move a file from one place to another (P1: cmd_copy_file 0=copy, 1=move)(P2: src)(P3: dest) 2030 mcmd 2030,"0 /tffs1/xxx /tffs3/yyy" deletes a file (P1: file to delete) cmd_delete_file 2031 mcmd 2031, "/tffs1/xxx" lists the files in a directory or partition to a file (P1: dir/partition)(P2: output file name) cmd_list_dir 2032 mcmd 2032, "/tffs1 /tffs1/dir1.txt" cmd_reboot_reinit cmd_isl_mode cmd_delayed_reboot 3.4 Science Module (SCI) This is a processing task class (science_task) derived from the "ProcessTask" class On 3CS, the science task takes care of all things related to imaging SCMD description name recID nparm example manual call clears camera memory of pictures (required before taking a picture) cmd_clear_memory 6000 mcmd 6000 transfer image from camera to image buffer (takes over a minute) (default = 0) cmd_get_image 6002 mcmd 6002 3CS: Three Corner Sat Error! No text of specified style in document Error! No text of specified style in document SCMD description name recID nparm example manual call takes a picture using a serial command (avoid using cmd_take_picture this, see 6012) 6004 mcmd 6004 pings camera and returns status DCOM cmd_ping_camera 6005 mcmd 6005 process image in RAM (must be preceded by command 6002)(param optional, default=85) cmd_process_image 6006 mcmd 6006 deletes image in specified catalog slot (0 49) cmd_delete_image 6009 mcmd 6009,"24" selects one camera (0, 1, 2, 3) cmd_select_camera 6010 mcmd 6010, "2" presses power button on the camera to turn the camera circuits on (800 msec) cmd_power_camera 6011 mcmd 6011 presses shutter button on the camera to take a picture (preferred) cmd_press_picture 6012 mcmd 6012 drops the camera enable line for one second (this cuts power to the selected camera) cmd_drop_enable 6013 mcmd 6013 shows the contents of image catalog and writes the same text to "/tffs3/pic_cat.txt" cmd_get_image_cat 6014 mcmd 6014 sets "High Priority" flag for the next picture taken on the current camera cmd_set_image_hipri 6015 mcmd 6015 delete all images from the image catalog and the disk cmd_del_all_pics 6016 mcmd 6016,"80309" select level of verbosity for imaging (0=none, 1=errors, 2=commentary, 3=all)(default=2) cmd_sci_verbosity 6017 mcmd 6017,"1" Not Implemented mon_recent_image_slot 6018 mcmd 6018 returns the number of images currently in the image catalog cmd_get_img_count 6019 rcmdto, 6019 clears camera serial port input buffer test_camera_clear_buffer 6900 mcmd 6900 loopback test of camera serial port (requires loopback connector) test_camera_loopback mcmd 6901 6901 3.5 Electrical Power Manager (EPM) This is a processing task class (EPM) derived from the "ProcessTask" class SCMD description name recID nparm example manual call clears EPS serial port input buffer cmd_clear_buffer 4000 mcmd 4000 samples a single EPS telemetry channel mon_eps_chan 4001 mcmd 4001,"17" 4002 mcmd 4002,"3" sets the EPS automatic telemetry gathering time interval cmd_eps_auto_telem (in 10 sec intervals) gets one record of the EPS telemetry log cmd_eps_telem_dump 4003 mcmd 4003,"24" sends a ping command to EPS cmd_ping_eps 4004 mcmd 4004 switches a single EPS device on or off ( ) cmd_switch_eps 4005 mcmd 4005,"10 1" samples entire EPS health and status telemetry (49 mon_eps_hs 4006 mcmd 4006 3CS: Three Corner Sat Error! No text of specified style in document Error! No text of specified style in document SCMD description name recID nparm example manual call variables) samples FMMR health and status from EPS (5 variables) mon_fmmr_hs 4007 mcmd 4007 select level of verbosity for EPS (0=none, 1=errors, 2=commentary, 3=all)(default=2) cmd_epm_verbosity 4008 mcmd 4008,"1" clears EPS serial port input buffer test_eps_clear_buffer 4900 mcmd 4900 loopback test of EPS serial port (requires loopback connector) test_eps_loopback 4901 mcmd 4901 3.6 Broadcast Packet Manager (BPGEN) This is a processing task class (BPGEN) derived from the "ProcessTask" class SCMD description name recID nparm example manual call prepares image and H&S for transmission cmd_prepare_file 3002 mcmd 3002,"filename" sends H&S to target station (SCL parameter contains two FSW parameters) cmd_send_hs 3003 mcmd 3003," " sends just the software H&S to target station (SCL parameter contains two FSW params) cmd_send_sw_hs 3004 mcmd 3004," " sends specified image to target station cmd_send_image 3005 mcmd 3005,"" sends a software update to target station cmd_send_sw_update 3006 mcmd 3006 sends a schedule update to target station cmd_send_schedule_update 3007 mcmd 3007 sends a string to execute a command on the target station (1st item in string is recid) cmd_send_cmd 3008 mcmd 3008, "1007 1" send the highest ranked image in the catalog to cmd_send_best_image the target station 3009 mcmd 3009 select level of verbosity for BPGEN (0=none, 1=errors, 2=commentary, 3=all)(default=2) 3017 mcmd 3017,"1" cmd_bpgen_verbosity 3.7 Communications (TX_COMM and RX_COMM) This is a processing task class (TX_COMM) derived from the "ProcessTask" class SCMD description name recID nparm example manual call Clear the lists of files partially received/sent (accepted only when COMM is stopped) cmd_clear_partial_file 7101 mcmd 7101 sends packets that are in a temp file generated by bpgen (called only by BPGEN) cmd_TX_send 7500 ***the user should never call this cmd*** sets the call sign for a particular station in the station table ( ) cmd_set_call 7501 mcmd 7501, "5 KB0LEX" sets the frequency for a particular station in the cmd_set_freq 7502 mcmd 7502, "5 " 3CS: Three Corner Sat Error! No text of specified style in document Error! No text of specified style in document SCMD description name recID nparm example manual call station table ( ) sets the station with which the transmitter will try cmd_set_station to communicate () (target station) 7503 mcmd 7503, "3" turns both transceivers and the comm circuits off cmd_comm_off 7504 mcmd 7504 sets radio up and attempts to connect to the specified "target" station cmd_comm_on 7505 mcmd 7505 sets radio up for comm with "target" station (unconnected mode or accept connections) cmd_listen_comm 7506 mcmd 7506 sets the squelch level in the fsw's station table ( ) cmd_set_sqlch 7507 mcmd 7507, "1 2" sets the transmit power in the fsw's station table ( cmd_set_tpwr ) 7508 mcmd 7508, "1 3" locks (or unlocks) a particular radio for use (0=radio 0, 1=radio 1, -1=unlock, use any) cmd_radio_lock 7509 mcmd 7509, "-1" select level of verbosity for COMM (0=none, 1=errors, 2=commentary, 3=all)(default=2) cmd_comm_verbosity 7510 mcmd 7510,"1" returns a count of the number of incomplete files cmd_comm_incomplete 7511 for the specified station mcmd 7511, "" attempts to complete transmission of file to the cmd_comm_resend current target station 7512 mcmd 7512 displays comm station table cmd_comm_table 7600 mcmd 7600 sends a command to transceiver (primary) cmd_send_comm1 7900 mcmd 7900, "TC 1" sends a command to transceiver (secondary) cmd_send_comm2 7901 mcmd 7901, "TC 1" loopback test of the transceiver (requires loopback connector) cmd_loopback 7902 mcmd 7902 Transmitter test (radio currently in use will transmit at 2.5W for 20 sec.) cmd_test_freq 7903 mcmd 7903[,"]" Spacecraft Command Language (SCL) 4.1 Description SCL is a commercial-off-the-shelf product used to provide artificial intelligence (AI) to the command and control of the operations of our spacecraft SCL technology has been in development since 1988 by Interface Control Systems Since its flight on board Clementine I and ROMPS in 1994, SCL has proven its mettle on numerous flight and ground projects 4.1.1 Core product SCL provides rules, constraints, and scripts to command and safeguard the satellite Fundamental to SCL is the SCL language The SCL language combines the features of a traditional scripting language, such as STOL, with the logic capture capability of a rule-based expert system and the functionality of a database definition language Using the SCL language—including scripts, rules and constraints, data formats, templates and definitions—a system designer can fully define all data and processes used by the control system (a collection of sensors and actuators that are related by a process that drives the actuators based on sensor measurements) The system can take action based on time, operator directive, autonomously as a function of detected system state, or any combination of these In addition, a user can dynamically reconfigure the system by modifying, in real-time, the SCL language constructs that specify what actions should take place under what circumstances 3CS: Three Corner Sat Error! No text of specified style in document Error! No text of specified style in document The SCL DataIO module acquires data in real-time from external sources, updates the database, converts the data to engineering units, and filters, smoothes and archives the data if desired DataIO also performs limit-checking, and notifies the Real Time Engine if any data value change exceeds a user-defined threshold The SCL Real Time Engine (RTE) is the inference engine for the underlying expert system, the SCL command interpreter, and the script scheduler and execution manager SCL scripts and rules are compiled by the SCL Compiler and loaded to the RTE in the form of an SCL Project This project provides the RTE with the procedural, scheduling, and event-capturing elements of the system The RTE captures all SCL database updates and processes the corresponding rules associated with a particular database item The SCL Compiler also supports real-time communication between an external operator and the RTE and SCL database via a “command line” interface An extensive Application Programmers Interface (API) allows full access to the SCL database, socket interfaces, a complete RPC library, and the message software bus In addition, the API allows the workstation version of SCL to interface with several third-party products, including a wide range of Graphical User Interface (GUI) packages SCL interfaces with: 3CS custom flight software JPL's CASPER planning software running on-board the spacecraft JPL's ASPEN planning software running on the ground Kinesix's SAMMI GUI running on the ground 4.1.2 Software Bus SCL Commanding can be implemented using several strategies With the default strategy, the RTE uses the Message Software Bus to send a “notify“ message to an external “listen” application when an SCL script or rule changes the state of an actuator An alternate method uses a third-party database to create a command “packet” that the RTE sends across the software bus SCL also provides a constraint checking capability that allows the RTE to impose preconditions on command execution This enables you to avoid potential failure scenarios, or to automatically execute pre-command configuration scripts 4.2 SCL model The core SCL product allows the 3CS Flight Software Team to develop a model specifically detailing all the activities and capabilities of the satellites The SCL model includes scripts that can perform tasks with the FSW, rules that will monitor the health and status of the hardware and software, and a database to store information needed to run the mission 4.2.1 Scripts Scripts are sets of instructions that are required to perform a particular task The scripts that are on 3CS are divided into levels: CASPER interface scripts Scheduling scripts Executing scripts CASPER interfaces with SCL by executing its own set of scripts This process is described in the CASPER section below Scheduling scripts are high level scripts that make it easy for CASPER or an operator to tell SCL when to initiate a task These tasks are simply names of Executing scripts which contain a series of FSW instructions The EEDS system attempts to use the high-level execution capabilities of SCL to issue all the commands necessary to perform a given task The low-level tasks (such as talking to the hardware) are all left to the custom FSW on-board The Executing scripts are divided into several categories with descriptions in the table below Script Category Description Communications Sending packets to other satellites or to the ground Configuring the communication hardware Imaging Taking an image (or multiple images) and processing it 3CS: Three Corner Sat Error! No text of specified style in document Error! No text of specified style in document Master control Identifying which satellite is the master and who has the authority to make decisions for the other satellites Health and Status (H&S) Updating the database with all the current values from the flight software Free Molecule Micro Resistojet (FMMR) Starts and stops the FMMR experiment and logs its data Power Keeps track of the battery level and where the sun is in respect to our solar panels Testing Commands that simplify the checkout procedures on the ground and in space The following table defines all the SCL scripts in the model Scripts description name recID parameters example manual call change transmission_sv for receiving/sending (not used in connected mode) acknowledge 1001 ***not called from command line*** makes the local satellite the master and commands the other two sats to execute change_master assume_master 1002 new_master mcmd recID, "params" ***not used-delete???*** turns on/off cameras and preps for picture taking on camera_# camera_switch 1003 camera_# mcmd recID, "params" turns the second fmmr unit off fmmr_off 1004 unit number ***not called from command line*** sets the interval which the battery model samples the sensors set_battery_cycle 1005 calc_sec, store_every_x_times mcmd 1005, "10 5" runs the specified fmmr unit fmmr_on 1006 unit, running time ***not called from command line*** resests the current target to a different sat name reset_current_sat_name 1007 none ***not called from command line*** dumps the inportant values from the database to the screen db_dump 1008 none sets the database value of transceiver usage to or set_transceiver_usage 1010 Stops running log_profile and restarts the normal hs check stop_profile 1012 none logs variables to a easily parsable string log_profile 1013 none Checks the locks on devices then runs a flight_reboot when not busy unplanned_reboot 1014 none Turns the imaging board and camera on/off camera_devices 1015 level (on or off) This a constraint function called in scripts only 1016 reject_downlink schedules an image at a given time in UTC schedule_take_image 1017 pic_time, cam_num takes and processes an image with take_image camera_# on the satellite that executes the script 1018 camera_# Passes the string into rtedebug debug_print 1019 string Pings the camera a specified number of max times and cycles power if specified ping_camera 1020 max_attempts, cycle_power Returns the difference between the future convert_time 1021 act_time mcmd recID, "params" 3CS: Three Corner Sat Error! No text of specified style in document Error! No text of specified style in document Scripts description name recID parameters example manual call act_time and the current scl seconds time Sets the radio to the correct station specified set_comm_station by dest_sat (doesn't set converse) 1022 dest_sat individually commands all sats to execute schedule_stereo_image take_image with camera_# (ISL script) If outside ISL, then it will not send anything but it will execute take_two_images locally 1023 image_time, cam_num Constratin to reject crosslink if batt is low reject_crosslink 1024 Constraint function on transmissions reject_transmission 1025 none set_tranceiver_usage 1029 amount comm_setup 1031 destination mcmd recID, "params" 1034 new_master mcmd recID, "params" powers comm and initializes radio for downlink/crosslink and connection/less mode depending on what is in FSW's destination table commands new_master to execute schedule_change_master assume_master (ISL script) If outside ISL, then it will not send anything The new_master variable is set by an SCL rule that updates next_master by looking at the power available on each HS that comes in mcmd recID, "params" set_ram_storage 1035 amount commands both slave sat to execute send_hs to dest_satellite (ISL script) If outside ISL, then it will not send anything schedule_check_hs 1036 none mcmd recID, "params" sends hs to dest_satellite send_hs 1037 dest_satellite, db_id mcmd recID, "params" set_gs_availability_sv 1038 state schedule_crosslink_image 1039 image_slot mcmd recID, "params" sends image file to dest_satellite or ground send_image 1040 dest_satellite, image_slot mcmd recID, "params" ***not used-delete???*** individually schedule_startup commands each slave sat to execute startup through each runlevel (ISL script) If outside ISL, then it will not send anything 1041 start_time mcmd recID, "params" commands both slave sast to execute send_image to dest_satellite (ISL script) If outside ISL, then it will not send anything set_camera_usage 1042 amount this script automatically started after the startup project is loaded on each satellite This script get_hs every X seconds and kicks off other commands that each satellite should have running 1044 none does a local h&s check and stores in db check_hs 1046 function to send a packet send_it 1049 set the sv set_earth_day_night_sv 1050 state get stored values of db after a reboot init_db 1051 Returns the transceiver to convese mode and the parameter is what station to listen to set_comm_converse_mode 1052 dest_sat sets the sv set_isl_mode_sv 1053 state sets the sv set_transceiver_sv 1054 state mcmd recID, "params" ***not called from command line*** 3CS: Three Corner Sat Error! No text of specified style in document Error! No text of specified style in document Scripts description name recID parameters sets the sv set_master_sv 1055 value sets the sv set_sat_day_night_sv 1057 state reset_current_dat_name 1058 set_battery 1059 amount sets the sv set_imaging_board_sv 1060 state sets the sv set_camera_sv 1061 state sets the sv set_fmmr_heater_sv 1062 state deployment_sequence 1064 takes two images seperated by take_two_interval_sv schedule_take_two_images 1065 pic_time, cam_num tells the current satellite to downlink to CU, dest_sat should always be CU downlink_hs 1066 dest_satellite, db_id example manual call mcmd 1065, "0 1" Downlinks the h&s on the current satellite to downlink_hs_rgs a remote ground station 1068 Executed from ground during a pass to ask downlink_image the satellite for an image It asks dest_sat for image_slot 1069 dest_sat, image_slot downlinks an image to a remote ground station.Downlinks image_slot downlink_image_rgs 1070 image_slot Asks both slave sats for the latest image they took Will be done after a stereo picture schedule_send_latest_image 1071 none mcmd 1071 set the functional sv set_functional_sv 1073 value mcmd 1074, "1" tells the two slaves to take an image crosslink_take_image 1074 pic_time, cam_num mcmd 1075, "30, 1" set the hs_interval_sv set_hs_interval_sv 1075 value mcmd 1077, "60" starts executing hs every hs_interval_sv secs restart_hs 1076 none mcmd 1076 Does a clean reboot of the system flight_reboot 1077 none Is executed on the slave to set station to master assume_slave 1079 new_master set_debug_sv 1080 debug_sv Sets the transmit power to the dest sat at the requested power_level set_transmit_power 1081 dest_sat, power_level Changes the satellite name change_sat_name 1103 satellite_num mcmd 1103, "1" Prints the database values print_db 1105 none mcmd 1105 Sends a packet send_packet 1106 type(1=cmd,2=hs,3=image), dest_sat, parameter string mcmd 1106, "1 1018 0" print debugs if debug_sv is at debug_print1 1107 print debugs if debug_sv is at debug_print2 1108 print debugs if debug_sv is at debug_print3 1109 mcmd 1079, "2" Returns the transceiver to connected mode set_comm_connected_mode and the parameter is what station to listen to 1110 dest_sat ***not called from command line*** Returns the transceiver to converse mode and listening to dest_sat reinitialize_comm 1111 dest_sat ***not called from command line*** CASPER activity script, the take_image script performs the change_camera casper_change_camera 1215 activity_id, activity_start_time, activity_duration, cam ***not called from command line*** 3CS: Three Corner Sat Error! No text of specified style in document Error! No text of specified style in document Scripts description name recID parameters example manual call commands (i.e selects the camera to use) CASPER activity script, ??? casper_change_gs_availability 1216 activity_id, activity_start_time, activity_duration, value ***not called from command line*** CASPER activity script, the take_image casper_change_imaging_board script performs the change_camera_electronics commands (i.e turns on interface board) 1217 casper_change_gs_availability activity_id, activity_start_time, activity_duration, value ***not called from command line*** CASPER activity script, changes the state variable whether we're in ISL range or not casper_change_isl_mode 1218 activity_id, activity_start_time, activity_duration, value ***not called from command line*** CASPER activity script, ??? casper_change_master 1219 activity_id, activity_start_time, activity_duration, new_master, old_master ***not called from command line*** CASPER activity script, ??? casper_check_hs 1220 activity_id, activity_start_time, activity_duration ***not called from command line*** CASPER activity script, ??? casper_check_image_quality 1221 activity_id, activity_start_time, activity_duration ***not called from command line*** CASPER activity script, the take_image casper_check_sun_inview script performs the check_sun_inview commands (i.e.sun_inview_sv to out, top, or bottom) 1222 activity_id, activity_start_time, activity_duration ***not called from command line*** CASPER activity script, the take_image casper_copy_image_to_nvram script performs the copy_picture_to_nvram commands 1223 activity_id, activity_start_time, activity_duration, amount_in_ram, amount_to_copy, comp_pic_size, neg_pic_size, pic_size ***not called from command line*** CASPER activity script, the take_image script performs the copy_picture_to_ram commands casper_copy_image_to_ram 1224 activity_id, activity_start_time, activity_duration, pic_size ***not called from command line*** CASPER activity script, ??? casper_create_activity 1225 activity_id, activity_start_time, activity_duration, act_name, act_start, act_type ***not called from command line*** CASPER activity script, ??? casper_cu_pass 1226 activity_id, activity_start_time, activity_duration, downlink_stored_data, max_downlink_dur, uplink_dur ***not called from command line*** CASPER activity script, ??? casper_cu_pass_init 1227 activity_id, activity_start_time, activity_duration ***not called from command line*** CASPER activity script, ??? casper_delete_activity 1228 activity_id, activity_start_time, activity_duration, act_name ***not called from command line*** CASPER activity script, ??? casper_delete_past_activities 1229 activity_id, activity_start_time, activity_duration ***not called from command line*** CASPER activity script, ??? casper_dispatch_activities 1230 activity_id, activity_start_time, activity_duration ***not called from command line*** CASPER activity script, ??? casper_downlink 1231 activity_id, activity_start_time, ***not called from activity_duration, batt, command line*** curr_nvram, downlink_amount, downlink_stored_data, max_duration, power, rate, sph, tmp_batt CASPER activity script, ??? casper_downlink_hs 1232 activity_id, activity_start_time, activity_duration, batt, power, sph, tmp_batt ***not called from command line*** CASPER activity script, ??? casper_downlink_image 1233 activity_id, activity_start_time, activity_duration, batt, power, rate, size, sph, tmp_batt ***not called from command line*** CASPER activity script, ??? casper_earth_day 1234 activity_id, activity_start_time, activity_duration ***not called from command line*** CASPER activity script, ??? casper_gs_pass 1235 activity_id, activity_start_time, ***not called from 3CS: Three Corner Sat Error! No text of specified style in document Error! No text of specified style in document Scripts description name recID parameters activity_duration example manual call command line*** CASPER activity script, ??? casper_gs_pass_init 1236 activity_id, activity_start_time, activity_duration ***not called from command line*** CASPER activity script, the take_image script performs the image commands casper_image 1237 activity_id, activity_start_time, activity_duration, batt, cam, power, sph, tmp_batt ***not called from command line*** CASPER activity script, ??? casper_init 1238 activity_id, activity_start_time, ***not called from activity_duration, batt, cam, command line*** cam_elec, cu, edn, fmmr_heat, gs, gs_avail, isl, master, nvram0, nvram1, nvram2, nvram3, ram, sdn, sun CASPER activity script, ??? casper_init_isl 1239 activity_id, activity_start_time, activity_duration ***not called from command line*** CASPER activity script, ??? casper_load_activities 1240 activity_id, activity_start_time, activity_duration, ini_file ***not called from command line*** casper_place_activities 1241 casper_process_image 1242 activity_id, activity_start_time, activity_duration, pic_size ***not called from command line*** monitors the resources used while receving casper_receive_hs a h&s 1243 ***not called from command line*** monitors resource used while receiving image casper_receive_image 1244 ***not called from command line*** CASPER activity script, ??? casper_receive_image_to_nvram 1245 ***not called from command line*** CASPER activity script, ??? casper_receive_image_to_ram 1246 ***not called from command line*** CASPER activity script, ??? casper_satellite_day 1247 activity_id, activity_start_time, ***not called from activity_duration, batt, batt_cap, command line*** curr_batt, rate CASPER activity script, ??? casper_save_activities 1248 activity_id, activity_start_time, activity_duration, ini_file CASPER activity script, ??? casper_schedule_change_master 1249 activity_id, activity_start_time, ***not called from activity_duration, command line*** change_master_dur, cmd_time, crosslink_dur, init_isl_dur, mode, new_master CASPER activity script, executes schedule_send_hs casper_schedule_check_hs CASPER activity script, ??? casper_schedule_receive_images 1251 ***not called from command line*** CASPER activity script, executes schedule_stereo_image casper_schedule_stereo_image 1252 activity_id, activity_start_time, activity_duration, cam, image_time, mode ***not called from command line*** CASPER activity script, executes take_image casper_take_image 1253 activity_id, activity_start_time, activity_duration, batt, cam, image_time, power, sph, tmp_batt ***not called from command line*** CASPER activity script, ??? casper_take_two_images 1254 activity_id, activity_start_time, ***not called from activity_duration, batt, cam1, command line*** cam2, image_time, power, sph, tmp_batt CASPER activity script, ??? casper_transceiver_listen 1255 CASPER activity script, the take_image script performs the process_image commands ***not called from command line*** 1250 activity_id, activity_start_time, ***not called from activity_duration, check_hs_dur, command line*** cmd_time, crosslink_dur, init_isl_dur, mode ***not called from command line*** 3CS: Three Corner Sat Error! No text of specified style in document Error! No text of specified style in document Scripts description name recID parameters example manual call casper_transceiver_transmit 1256 CASPER activity script, ??? casper_update_parameter_int 1257 activity_id, activity_start_time, activity_duration, act_name, param_name, param_value ***not called from command line*** CASPER activity script, ??? casper_update_parameter_string 1258 activity_id, activity_start_time, activity_duration, act_name, param_name, param_value ***not called from command line*** CASPER activity script, ??? casper_uplink 1259 activity_id, activity_start_time, ***not called from activity_duration, batt, power, command line*** rate, sph, tmp_batt, up_amount CASPER activity script, ??? casper_use_fmmr 1260 activity_id, activity_start_time, activity_duration, batt, power, sph, tmp_batt ***not called from command line*** CASPER activity script, ??? casper_wait_activity 1261 activity_id, activity_start_time, activity_duration ***not called from command line*** CASPER activity script, ??? casper_update_timelines 1262 ***not called from command line*** loads the object file casper.a load_casper 1263 none mcmd 1263 parses 3csargs.txt and spawns casper task spawn_casper 1264 none mcmd 1264 does load_casper and then spawn_casper 1265 none mcmd 1265 gracefully shuts down casper It sends a stop_casper swb to casper to shut down It does cleanup of memory and unload modules 1266 none mcmd 1266 calls taskDelete on the casper task and kill_casper removes the object files that casper loads It does NOT cleanup memory 1267 none mcmd 1267 does kill_casper and unloads casper.a kill_unload_casper 1268 none mcmd 1268 casper_reboot_satellite 1269 activity_id, activity_start_time, activity_duration ***not called from command line*** stores the battery charge in persistant data store_battery_charge 1270 none ***not called from command line*** Changes the beacon status of the current satellite 1271 new_beacon ***not called from command line*** 1272 calc_sec ***not called from command line*** load_spawn_casper change_beacon checks the input current and output voltagae calculate_battery_charge and current of the battery casper_print_telem 1273 none Used on ground to request h&s from dest_sat gr_downlink_hs 1801 dest_sat Used on ground to downlink all three db's from the dest_sat gr_downlink_all 1802 dest_sat Used on ground to downlink the requested image_slot from the dest_sat gr_downlink_image 1803 dest_sat, image_slot Used on ground to uplink the specified filename to the dest_sat gr_uplink 1804 dest_sat, filename pings the dest satellite from the ground station gr_ping_sat 1805 dest_sat Sets up a flight computer as a ground station gr_stop_sat_scripts 1806 none locks the comm on specified radio lock_comm 1908 status This script removes all the locks on hardware remove_locks 1909 none mcmd 1909 prints out the specified scl database test_db_dump 1910 database ID mcmd 1910, "2" runs the initialization test for the functional test test_initialization 1911 none mcmd 1911 3CS: Three Corner Sat Error! No text of specified style in document Error! No text of specified style in document Scripts description name recID parameters example manual call functional test for eps test_eps 1912 none mcmd 1912 functional test for eps solar panels test_eps_sp 1913 none mcmd 1913 functional test for imaging test_imaging 1914 none mcmd 1914 functional test for thermal test_thermal 1915 none mcmd 1915 functional test for fmmr test_fmmr 1916 none mcmd 1916 prints the current time to the output display print_time 1919 Tests the fmmr unit test_eedstofmmr 1920 Starts the profile script every interval start_profile 1925 interval mcmd 1925, "15" 4.2.2 Rules Rules continually watch for degrading or harmful situations and take the appropriate steps if those situations are encountered Rules are broken up to the same categories as the scripts above When a database values goes beyond its limits, a rule will fire These rules will attempt to fix the situation and log their activity, so that ground controllers can analyze the problem and prevent it from occurring again Rules can be turned on or off individually or by category 4.2.3 Constraints Constraints perform similar duties that rules by checking resources before a command is executed All the constraints at this time are coded into the scripts themselves 4.2.4 Database The SCL database holds information that is collected and needed by scripts, rules, constraints, and the FSW itself 3CS has databases on board Database holds a copy of the SCL related data that the FSW stores in a file in case of power failure This database is repopulated on each reboot The other three databases hold satellite information for each satellite (Petey is database 1, Ralphie is database 2, and Sparky is database 3) Each satellite specific database is populated each time a health and status is received via the Intersatellite Link (ISL) The databases consists of: Database Items Description RTAS Real Time Analog Sensors - where the current EPS values are stored in engineering units RTAD Real Time Analog Derived items - where software calculated values get stored 3CS also stores its raw EPS values here because they are kept in its original format RTDS Real Time Digital Sensors - where software or hardware states get stored RTDD Real Time Digital Derived items - where software or hardware states get calculated and stored COFM Coefficient Families - values that get put into the equation: a + bx + cx^2 + dx^3 + This equation then gets applied to raw data and stored into the appropriate RTAS as an engineering value DCOM Decommunication specifications - a structure of data and where it will be stored in the database STFM State Family fields - a list of text states that correspond to a numeric value 4.3 User Interface SCL can be modified to interface with our system through a few key modules We wish to keep modifications restricted to these modules so that support and upgrading to newer versions are as simple as possible The modules which were modified are detailed below 3CS: Three Corner Sat Error! No text of specified style in document Error! No text of specified style in document 4.3.1 Application Specific Module (ASPCFC) 3CS uses the aspcfc.cpp interface to the RTE to create a command interface to the flight software The commands are spelled out in threecs_swb_cmds.sml When these commands are typed into the command line, aspcfc.cpp routes the message directly to the flight software (typically, these commands are routed to the software bus but for the sake of simplicity, speed and reliability, we choose to skip the software bus step) The threecs_swb_cmds.sml is an autogenerated file from the 3CS Access database 4.3.2 Packet Generator (PKTGEN) PKTGEN is a packet generator that pulls data from the database and combines it into a known format into one large data array PKTGEN can 'reach' into each of the three satellite databases to pull out the health and status of any satellite that we need to see 4.3.3 Data IO for Special Sensors (DIOUSER) For sensors that not act on a linear basis, DIOUSER provides a way to convert the non-linear sensor values into engineering units For 3CS, the thermistors are not linear and need the extra code put into DIOUSER 4.3.4 Real Time Engine Services (RTESVC) The RTE acts as the interface between most components of SCL The two specific functions below were added to aid that interface 4.3.4.1 Execute Script (EXEC_SCRIPT) This function acts as the interface between the FSW and executing SCL scripts The flight software calls this function with the recid (the script number to run), parameters (the information that the script needs to know), and a time in which to run 4.3.4.2 SCL set record value This function acts as another interface between the FSW and the database The primary interface is the DCOM record (i.e the FSW provides an array of data to DIO and tells it which DCOM to use to store it) However, in order to store a single value, it is quicker to use scl_set_record_value This function sets a single record value 4.3.5 Access generated code 3CS uses a Microsoft Access database to auto-generate some code needed for the mission The files that are currently generated are: the 3CS database (threecs.sml) as described above the commands (cmds.h) as described in the Process Task section above the commands webpage (command_list.html) that the ground operators can refer to the commands (threecs_swb_cmds.sml) that ASPCFC uses to know which functions the FSW will handle 4.3.6 SCL setup files SCL has three setup files that were modified to support the 3CS mission These files are usersclcomp.sml, userdbconfig.sml, and userscltst.sml The functionality that they control are listed below: Setup file Description usersclcomp Controls the default database, the VxWorks parameters, and the connections used to establish links to RTEs running on different targets userdbconfig Controls the database maximum size and database names 3CS: Three Corner Sat Error! No text of specified style in document Error! No text of specified style in document userscltst Controls the connections used to establish links to telemetry coming from different targets Continuous Activity Scheduling Planning Execution and Replanning (CASPER) 5.1 Description CASPER is a commercial-off-the-shelf product used to provide artificial intelligence (AI) to the planning and operational capability of our spacecraft CASPER technology has been in development since 1988 by Interface Control Systems CASPER has proven its abilities on numerous ground projects 5.1.1 Planning CASPER uses iterative repair to support continuous modification and updating of a current working plan in light of changing operating context Rather than considering planning a batch process in which a planner is presented with goals and an initial state, the planner has a current goal set, a plan, a current state, and a model of the expected future state At any time an incremental update to the goals or current state may update the current state of the plan and thereby invoke the planner process This update may be an unexpected event or simply time progressing forward The planner is then responsible for maintaining a consistent, satisfying plan with the most current information This current plan and projection is the planner's estimation as to what it expects to happen in the world if things go as expected However, since things rarely go exactly as expected, the planner stands ready to continually modify the plan Current iterative repair planning techniques enable incremental changes to the goals and the initial state or plan and then iteratively resolve any conflicts in the plan After each update, its effects will be propagated through the current projections, conflicts identified, and the plan updated (e.g., plan repair algorithms invoked) 5.1.2 Resources CASPER's duty is to schedule a series of activities that the flight software will perform at particular times in its orbit CASPER creates this schedule by taking a list of activities that the EEDS Team creates and compares the power, hardware and software resources needed to perform these tasks with the resources available on-board the spacecraft If the resources exist when the activity is scheduled to be committed, CASPER will forward the commands onto the flight software If the resources not exist, then CASPER will try and rearrange the schedule to accommodate the user's initial requests If the resources change beyond the expectations of the Mission Operations Team (i.e the battery level threatens to go dangerously low), then CASPER can deal with the problem and not allow the activity to occur which could potentially avoid a situation leading to mission failure CASPER uses several model files (as described in the next section) to know which resources are used for each activity The planning mode uses the knowledge of what resources are currently available to determine if the next activity should be allowed to continue If these resources are not available, then the task can be deleted or postponed to a later time when the resources are expected to exist 5.2 Model The core CASPER product allows the 3CS Flight Software Team to develop a model specifically detailing all the activities and capabilities of the satellites The CASPER model files below provide the information in the Description column to CASPER CASPER model file Description Activities.mdl Describes how each activity breaks down into smaller activity Defines some estimates and does some calculations on how long an activity lasts and what resources it uses Commands.fmt Describes what format each command takes for the ini files below Control.ini Defines some CASPER core activities Control.mdl Defines some CASPER core activities CU_inview.ini Defines when the CU/ASU/NMSU universities are in view of the satellites as they're in 3CS: Three Corner Sat Error! No text of specified style in document Error! No text of specified style in document orbit CU_pass.ini Defines when the CU/ASU/NMSU universities are available to receive data Earth_day_night.ini Defines when the earth below the satellite is in sunlight or dark GS_inview.ini Defines when a Remote Ground Site is in view of the satellites as they're in orbit GS_pass.ini Defines when a Remote Ground Site is available to receive data Hs.ini Defines when a health and status will be transmitted to the ground Init.ini Defines the initial conditions of CASPER during testing During flight, this file is not used because SCL will provide the initial conditions Model.mdl Defines the start time of the CASPER planning horizon Parameters.mdl Defines some parameters used to describe the amount of resources used for each activity Requests.ini Defines when a science experiment will be preformed on-board This includes taking an image and testing FMMR Resources.mdl Defines some parameters used to describe the amount of resources used for each activity Sat_day_night.mdl Defines when the satellites are in sunlight or dark This means that solar cells will generate power during the sunlight 'days' Schedule_hs.ini Defines when a health and status will be transmitted to other satellites in the constellation State_variables.mdl Defines the values that CASPER needs to know from SCL in order to plan its activities Timeline.ini Defines which activities will be handled in the new planning period 5.3 SCL Interface CASPER interfaces with the FSW via SCL scripts CASPER has no direct access to the hardware Each activity may have a script associated with it that it will kick off The CASPER script simply kicks off a scheduling script as described in the SCL section above ... 13 4.2 .3 Constraints 13 4.2.4 Database 13 4 .3 USER INTERFACE 14 4 .3. 1 Application Specific Module (ASPCFC) 14 4 .3. 2 Packet Generator... transmission cmd_prepare_file 30 02 mcmd 30 02,"filename" sends H&S to target station (SCL parameter contains two FSW parameters) cmd_send_hs 30 03 mcmd 30 03, " " sends just the software H&S to target station... cmd_send_sw_hs 30 04 mcmd 30 04," " sends specified image to target station cmd_send_image 30 05 mcmd 30 05,"" sends a software update to target station cmd_send_sw_update 30 06 mcmd 30 06 sends a schedule