Digi XBee(R) ANSI C Host Library
Files | Data Structures | Macros | Functions
Frames: File System (0x3B, 0x3C, 0xBB, 0xBC)

Support of Local/Remote File System Request/Response frames on XBee/XBee 3 Cellular (firmware x16 and later) and XBee 3 802.15.4/DigiMesh/Zigbee (firmware x00D and later). More...

Files

file  file_system.h
 
file  xbee_file_system.c
 

Data Structures

struct  xbee_header_file_system_req_t
 Frame format for the header of File System Request frame. More...
 
struct  xbee_header_remote_fs_req_t
 Frame format for the header of Remote File System Request frame. More...
 
struct  xbee_fs_req_path_and_name_t
 Format for the payload of File System Request with path_id and name: More...
 
struct  xbee_fs_req_file_open_t
 Format for the payload of "File Open" File System Request. More...
 
struct  xbee_fs_req_file_read_t
 Format for the payload of "File Read" File System Request. More...
 
struct  xbee_fs_req_file_write_t
 Format for the payload of "File Write" File System Request. More...
 
struct  xbee_fs_req_file_close_t
 Format for the payload of "File Close" File System Request. More...
 
struct  xbee_fs_req_dir_read_t
 Format for the payload of "Directory Read/Close" File System Requests. More...
 
struct  xbee_header_file_system_resp_t
 Frame format for the header of File System Response frame. More...
 
struct  xbee_header_remote_fs_resp_t
 Frame format for the header of Remote File System Response frame. More...
 
struct  xbee_payload_fs_dir_entry_t
 Format for a directory entry in a Directory Read Response. More...
 
struct  xbee_payload_fs_file_open_resp_t
 Format for the payload of File System Response: File Open. More...
 
struct  xbee_payload_fs_file_rw_resp_t
 Format for the payload of File System Response: File Read/File Write. More...
 
struct  xbee_payload_fs_volume_resp_t
 Format for the payload of File System Response: Volume Stat/Format. More...
 

Macros

#define XBEE_FRAME_FILE_SYSTEM_REQ   0x3B
 File System Request frame type.
 
#define XBEE_FRAME_REMOTE_FS_REQ   0x3C
 Remote File System Request frame type (on XBee3 802.15.4/DigiMesh/Zigbee)
 
#define XBEE_FS_CMD_ID_FILE_OPEN   0x01
 
#define XBEE_FS_CMD_ID_FILE_CLOSE   0x02
 
#define XBEE_FS_CMD_ID_FILE_READ   0x03
 
#define XBEE_FS_CMD_ID_FILE_WRITE   0x04
 
#define XBEE_FS_CMD_ID_FILE_HASH   0x08
 
#define XBEE_FS_CMD_ID_DIR_CREATE   0x10
 
#define XBEE_FS_CMD_ID_DIR_OPEN   0x11
 
#define XBEE_FS_CMD_ID_DIR_CLOSE   0x12
 
#define XBEE_FS_CMD_ID_DIR_READ   0x13
 
#define XBEE_FS_CMD_ID_GET_PATH_ID   0x1C
 
#define XBEE_FS_CMD_ID_RENAME   0x21
 
#define XBEE_FS_CMD_ID_DELETE   0x2F
 
#define XBEE_FS_CMD_ID_VOL_STAT   0x40
 
#define XBEE_FS_CMD_ID_VOL_FORMAT   0x4F
 
#define XBEE_FS_OPT_CREATE   (1<<0)
 
#define XBEE_FS_OPT_EXCLUSIVE   (1<<1)
 
#define XBEE_FS_OPT_READ   (1<<2)
 
#define XBEE_FS_OPT_WRITE   (1<<3)
 
#define XBEE_FS_OPT_TRUNCATE   (1<<4)
 
#define XBEE_FS_OPT_APPEND   (1<<5)
 
#define XBEE_FS_OPT_SECURE   (1<<7)
 
#define XBEE_FS_OFFSET_CURRENT   0xFFFFFFFF
 Value for .offset_be field of File Read/Write to use remote file's current offset. More...
 
#define XBEE_FS_BYTE_COUNT_MAX   0xFFFF
 Value for .byte_count_be field of File Read to read maximum number of bytes.
 
#define XBEE_FRAME_FILE_SYSTEM_RESP   0xBB
 File System Response frame type.
 
#define XBEE_FRAME_REMOTE_FS_RESP   0xBC
 Remote File System Response frame type (on XBee3 802.15.4/DigiMesh/Zigbee)
 
#define XBEE_FS_STATUS_SUCCESS   0x00
 
#define XBEE_FS_STATUS_UNKNOWN_ERROR   0x01
 
#define XBEE_FS_STATUS_INVALID_COMMAND   0x02
 
#define XBEE_FS_STATUS_INVALID_PARAM   0x03
 
#define XBEE_FS_STATUS_ACCESS_DENIED   0x50
 
#define XBEE_FS_STATUS_ALREADY_EXISTS   0x51
 
#define XBEE_FS_STATUS_DOES_NOT_EXIST   0x52
 
#define XBEE_FS_STATUS_INVALID_NAME   0x53
 
#define XBEE_FS_STATUS_IS_DIRECTORY   0x54
 
#define XBEE_FS_STATUS_DIR_NOT_EMPTY   0x55
 
#define XBEE_FS_STATUS_EOF   0x56
 
#define XBEE_FS_STATUS_HW_FAILURE   0x57
 
#define XBEE_FS_STATUS_NO_DEVICE   0x58
 
#define XBEE_FS_STATUS_VOLUME_FULL   0x59
 
#define XBEE_FS_STATUS_TIMED_OUT   0x5A
 
#define XBEE_FS_STATUS_BUSY   0x5B
 
#define XBEE_FS_STATUS_RESOURCE_FAILURE   0x5C
 
#define XBEE_FS_DIR_ENTRY_IS_DIR   (UINT32_C(1)<<31)
 
#define XBEE_FS_DIR_ENTRY_IS_SECURE   (UINT32_C(1)<<30)
 
#define XBEE_FS_DIR_ENTRY_IS_LAST   (UINT32_C(1)<<24)
 
#define XBEE_FS_DIR_ENTRY_FLAG_MASK   UINT32_C(0xFF000000)
 
#define XBEE_FS_MAX_PATH_ELEMENT_LEN   64
 
#define xbee_fs_req_send(xbee, header_data, header_len, target)   xbee_fs_req_send_data(xbee, NULL, 0, header_data, header_len, target)
 
#define xbee_fs_req_send_str(xbee, header_data, header_len, var_str, target)
 

Functions

int xbee_fs_extract_dir_entry (xbee_fs_dir_entry_t *entry, const uint8_t FAR *payload, int length)
 Send a File System Request to the local or a remote XBee module. More...
 
int xbee_fs_req_send_data (xbee_dev_t *xbee, const void *header_data, uint16_t header_len, const void *payload, uint16_t payload_len, const addr64 FAR *target_ieee)
 Send a File System Request to the local or a remote XBee module. More...
 

Detailed Description

Support of Local/Remote File System Request/Response frames on XBee/XBee 3 Cellular (firmware x16 and later) and XBee 3 802.15.4/DigiMesh/Zigbee (firmware x00D and later).

Macro Definition Documentation

#define XBEE_FS_OFFSET_CURRENT   0xFFFFFFFF

Value for .offset_be field of File Read/Write to use remote file's current offset.

#define xbee_fs_req_send_str (   xbee,
  header_data,
  header_len,
  var_str,
  target 
)
Value:
xbee_fs_req_send_data(xbee, header_data, header_len, \
var_str, strlen(var_str), target)
int xbee_fs_req_send_data(xbee_dev_t *xbee, const void *header_data, uint16_t header_len, const void *payload, uint16_t payload_len, const addr64 FAR *target_ieee)
Send a File System Request to the local or a remote XBee module.
Definition: xbee_file_system.c:36

Function Documentation

int xbee_fs_extract_dir_entry ( xbee_fs_dir_entry_t entry,
const uint8_t FAR payload,
int  length 
)

Send a File System Request to the local or a remote XBee module.

Parameters
[out]entryStructure to hold the parsed entry.
[in]payloadRemaining payload to parse.
[in]lengthNumber of bytes remaining in the payload.
Return values
>0number of bytes extracted from payload
<0error trying to send

References be32toh, EBADMSG, EINVAL, and FAR.

int xbee_fs_req_send_data ( xbee_dev_t xbee,
const void *  header_data,
uint16_t  header_len,
const void *  payload,
uint16_t  payload_len,
const addr64 FAR target_ieee 
)

Send a File System Request to the local or a remote XBee module.

Parameters
[in]xbeeLocal device receiving the frame.
[in]header_dataHeader starting with fs_cmd_id field.
[in]header_lenNumber of bytes in header_data.
[in]payloadPayload bytes following header.
[in]payload_lenNumber of bytes in payload.
[in]target_ieeeAddress of remote device or NULL for local.
Return values
>0frame_id assigned to the request
<0error trying to send

References EMSGSIZE, XBEE_FRAME_FILE_SYSTEM_REQ, XBEE_FRAME_REMOTE_FS_REQ, xbee_frame_write(), and xbee_next_frame_id().