-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Description
I want to know how to set up MIB of cfdp plugin so that I can connect with cFS.
I've set up cFS and COSMOS with a "COSMOS and NASA cFS" guide documentation, and it works very well.
Now I want to try CFDP with COSMOS.
I've installed CF app from NASA and finished building.
And I tried to send TX_FILE command with COSMOS.
- I made "map.bin" file in /cf directory with SB command
- I sent TX_FILE command
COMMAND CF TX_FILE BIG_ENDIAN "Send file from Spacecraft to Ground"
APPEND_ID_PARAMETER CCSDS_STREAMID 16 UINT MIN_UINT16 MAX_UINT16 0x18B3 "CCSDS Packet Identification" BIG_ENDIAN
APPEND_PARAMETER CCSDS_SEQUENCE 16 UINT MIN_UINT16 MAX_UINT16 0xC000 "CCSDS Packet Sequence Control" BIG_ENDIAN
APPEND_PARAMETER CCSDS_LENGTH 16 UINT MIN_UINT16 MAX_UINT16 137 "CCSDS Packet Data Length" BIG_ENDIAN
APPEND_PARAMETER CCSDS_FC 8 UINT MIN_UINT8 MAX_UINT8 2 "CCSDS Command Function Code"
APPEND_PARAMETER CCSDS_CHECKSUM 8 UINT MIN_UINT8 MIN_UINT8 0 "Checksum"
APPEND_PARAMETER CLASS 8 UINT 0 1 1 "0=CFDP class 1, 1=CFDP class 2"
APPEND_PARAMETER KEEP 8 UINT 0 1 1 "0=delete file after transfer, 1=keep file"
APPEND_PARAMETER CHAN 8 UINT 0 1 0 "Channel number (0 or 1)"
APPEND_PARAMETER PRIO 8 UINT 0 255 0 "Priority (0 is highest)"
APPEND_PARAMETER DEST_ID 16 UINT MIN_UINT16 MAX_UINT16 1 "CFDP destination entity ID"
APPEND_PARAMETER SRC_FILENAME 512 STRING "/cf/map.bin" "Spacecraft /path/filename"
APPEND_PARAMETER DEST_FILENAME 512 STRING "temp.bin" "Complete host /path/filename"
- I got this log message
2025-05-20 11:57:30 EVS Port1 1980-012-14:14:20.95008 66/1/CF_APP 90: CF: start class 2 tx of file 25:/cf/map.bin -> 791609600:temp.bin
2025-05-20 11:57:30 EVS Port1 1980-012-14:14:20.95019 66/1/CF_APP 118: CF: file transfer successfully initiated
- Then I got this log message
2025-05-20 11:58:41 EVS Port1 1980-012-14:15:31.70014 66/1/CF_APP 106: CF S2(25:1), ack limit reached, no eof-ack
And here's my plugin.txt of cfdp and cFS CF app configuration table
VARIABLE cfdp_microservice_name CFDP
VARIABLE cfdp_route_prefix /cfdp
VARIABLE cfdp_port 2905
VARIABLE cfdp_cmd_target_name CF
VARIABLE cfdp_cmd_packet_name CFDP_PDU
VARIABLE cfdp_cmd_item_name PDU
VARIABLE cfdp_tlm_target_name CF
VARIABLE cfdp_tlm_packet_name CFDP_PDU
VARIABLE cfdp_tlm_item_name PDU
VARIABLE source_entity_id 1
VARIABLE destination_entity_id 25
VARIABLE root_path /DEFAULT/targets_modified/CFDP/tmp
VARIABLE bucket config
# Set to true to enable a test configuration
VARIABLE plugin_test_mode "false"
MICROSERVICE CFDP <%= cfdp_microservice_name %>
WORK_DIR .
ROUTE_PREFIX <%= cfdp_route_prefix %>
ENV OPENC3_ROUTE_PREFIX <%= cfdp_route_prefix %>
ENV SECRET_KEY_BASE 324973597349867207430793759437697498769349867349674
PORT <%= cfdp_port %>
CMD rails s -b 0.0.0.0 -p <%= cfdp_port %> -e production
# MIB Options Follow -
# You will need to modify these for your mission
OPTION source_entity_id <%= source_entity_id %>
OPTION tlm_info <%= cfdp_tlm_target_name %> <%= cfdp_tlm_packet_name %> <%= cfdp_tlm_item_name %>
OPTION destination_entity_id <%= destination_entity_id %>
OPTION cmd_info <%= cfdp_cmd_target_name %> <%= cfdp_cmd_packet_name %> <%= cfdp_cmd_item_name %>
OPTION root_path <%= root_path %>
/**
* @file
* The CF Application default configuration table
*/
#include "cfe.h"
#include "cfe_tbl_filedef.h"
#include "cf_tbldefs.h"
CF_ConfigTable_t CF_config_table = {
10, /* ticks_per_second */
16384, /* max number of bytes per wakeup to calculate r2 recv file CRC */
25, /* the local entity ID of the CF app */
{ /* channel configuration for CF_NUM_CHANNELS */
{
/* channel 0 */
5, /* max number of outgoing messages per wakeup */
5, /* max number of rx messages per wakeup */
3, /* ACK timer */
3, /* NAK timer */
30, /* inactivity timer */
4, /* ACK limit */
4, /* NAK limit */
0x18c8, /* input message id */
0x08c2, /* output message id */
16, /* input pipe depth */
{ /* polling directory configuration for CF_MAX_POLLING_DIR_PER_CHAN */
{
/* polling directory 0 */
5, /* interval seconds */
25, /* priority */
CF_CFDP_CLASS_2, /* class to send */
23, /* destination entity id */
"/cf", /* source directory */
"./poll_dir", /* destination directory */
0 /* polling directory enable flag (1 = enabled) */
},
{
0 /* zero fill unused polling directory slots */
}},
"", /* throttle sem, empty string means no throttle */
1, /* dequeue enable flag (1 = enabled) */
.move_dir = "" /* If not empty, will attempt move instead of delete on TX file complete */
},
{ /* channel 1 */
5, /* max number of outgoing messages per wakeup */
5, /* max number of rx messages per wakeup */
3, /* ack timer */
3, /* nak timer */
30, /* inactivity timer */
4, /* ack limit */
4, /* nak limit */
0x18c9, /* input message id */
0x08c3, /* output message id */
16, /* input pipe depth */
{ /* polling directory configuration for CF_MAX_POOLING_DIR_PER_CHAN */
{
0 /* zero fill unused polling directory slots */
}},
"", /* throttle sem, empty string means no throttle */
1, /* dequeue enable flag (1 = enabled) */
.move_dir = ""}},
480, /* outgoing_file_chunk_size */
"/cf", /* directory to put temp files */
};
CFE_TBL_FILEDEF(CF_config_table, CF_APP.config_table, CF config table, cf_def_config.tbl)
I checked config/DEFAULT/targets_modified/CFDP/tmp/ directory but, of course, there was no file.
Metadata
Metadata
Assignees
Labels
No labels