C MIP-SDK
|
#include "mip_types.h"
Go to the source code of this file.
Data Structures | |
struct | _mip_header |
struct | _mip_field_header |
struct | _global_ack_nack_field |
Defines | |
#define | MIP_SYNC_BYTE1 0x75 |
#define | MIP_SYNC_BYTE2 0x65 |
#define | MIP_HEADER_SIZE sizeof(mip_header) |
#define | MIP_CHECKSUM_SIZE 2 |
#define | MIP_MAX_PAYLOAD_SIZE 255 |
#define | MIP_MAX_PAYLOAD_DATA_SIZE 253 |
#define | MIP_FIELD_HEADER_SIZE sizeof(mip_field_header) |
#define | MIP_MAX_PACKET_SIZE (MIP_HEADER_SIZE + MIP_MAX_PAYLOAD_SIZE + MIP_CHECKSUM_SIZE) |
#define | MIP_REPLY_DESC_GLOBAL_ACK_NACK 0xF1 |
#define | MIP_DESC_GLOBAL_PRODUCTION_TEST 0xFE |
#define | MIP_ACK_NACK_ERROR_NONE 0x00 |
#define | MIP_ACK_NACK_ERROR_UNKNOWN_COMMAND 0x01 |
#define | MIP_ACK_NACK_ERROR_CHECKSUM_INVALID 0x02 |
#define | MIP_ACK_NACK_ERROR_PARAMETER_INVALID 0x03 |
#define | MIP_ACK_NACK_ERROR_COMMAND_FAILED 0x04 |
#define | MIP_ACK_NACK_ERROR_COMMAND_TIMEOUT 0x05 |
#define | MIP_ACK_NACK_ERROR_UNKNOWN_DESCRIPTOR_SET 0x06 |
#define | MIP_OK 0 |
#define | MIP_ERROR 1 |
#define | MIP_MEMORY_ERROR 2 |
#define | MIP_FIELD_NOT_AVAILABLE 3 |
#define | MIP_INVALID_PACKET 4 |
#define | MIP_CHECKSUM_ERROR 5 |
#define | MIP_FUNCTION_SELECTOR_WRITE 0x01 |
#define | MIP_FUNCTION_SELECTOR_READ 0x02 |
#define | MIP_FUNCTION_SELECTOR_STORE_EEPROM 0x03 |
#define | MIP_FUNCTION_SELECTOR_LOAD_EEPROM 0x04 |
#define | MIP_FUNCTION_SELECTOR_LOAD_DEFAULT 0x05 |
#define | IS_MIP_FUNCTION_SELECTOR(SELECTOR) |
Typedefs | |
typedef struct _mip_header | mip_header |
typedef struct _mip_field_header | mip_field_header |
typedef struct _global_ack_nack_field | global_ack_nack_field |
Functions | |
u16 | mip_init (u8 *mip_buffer, u16 buffer_size, u8 descriptor_set) |
u16 | mip_add_field (u8 *mip_buffer, u16 buffer_size, void *field_data, u16 data_size, u16 data_descriptor) |
u16 | mip_add_formatted_field (u8 *mip_buffer, u16 buffer_size, void *field) |
u16 | mip_finalize (u8 *mip_buffer) |
u16 | mip_is_initialized (u8 *mip_buffer, u8 descriptor_set) |
u16 | mip_is_mip_packet (u8 *mip_buffer) |
u8 | mip_get_packet_descriptor_set (u8 *mip_buffer) |
u8 | mip_get_payload_size (u8 *mip_buffer) |
u8 * | mip_get_payload_ptr (u8 *mip_buffer) |
u16 | mip_get_packet_size (u8 *mip_buffer) |
u16 | mip_get_first_field (u8 *mip_buffer, mip_field_header **field_header, u8 **field_data, u16 *field_offset) |
u16 | mip_get_next_field (u8 *mip_buffer, mip_field_header **field_header, u8 **field_data, u16 *field_offset) |
u16 | mip_calculate_checksum (u8 *mip_buffer) |
u16 | mip_is_checksum_valid (u8 *mip_buffer) |
#define IS_MIP_FUNCTION_SELECTOR | ( | SELECTOR | ) |
(((SELECTOR) == MIP_FUNCTION_SELECTOR_WRITE) || \ ((SELECTOR) == MIP_FUNCTION_SELECTOR_READ) || \ ((SELECTOR) == MIP_FUNCTION_SELECTOR_STORE_EEPROM) || \ ((SELECTOR) == MIP_FUNCTION_SELECTOR_LOAD_EEPROM) || \ ((SELECTOR) == MIP_FUNCTION_SELECTOR_LOAD_DEFAULT))
u16 mip_add_field | ( | u8 * | mip_buffer, |
u16 | buffer_size, | ||
void * | field_data, | ||
u16 | data_size, | ||
u16 | data_descriptor | ||
) |
Adds a field to an initialized MIP packet buffer.
[in,out] | u8 | *mip_buffer - pointer to memory used to construct the mip packet. |
[in] | u16 | buffer_size - size of the mip mempory buffer. |
[in] | void | *field_data - buffer containing the field data. |
[in] | u8 | u16 data_size - size of the field data (exlcuding the field header). |
[in] | u8 | u16 data_descriptor - the data descriptor for the field. |
MIP_OK | - field added to MIP packet. |
MIP_ERROR | - A pointer is NULL. |
MIP_MEMORY_ERROR | - Not enough room in the mip buffer to add the field or the packet will be too large for a MIP. |
None
u16 mip_add_formatted_field | ( | u8 * | mip_buffer, |
u16 | buffer_size, | ||
void * | field | ||
) |
Adds a pre-formatted field (header and data already assembled) to an initialized MIP packet buffer.
[in,out] | u8 | *mip_buffer - pointer to memory used to construct the mip packet. |
[in] | u16 | buffer_size - size of the mip mempory buffer. |
[in] | void | *field - buffer containing the field (must have header and data already assembled). |
MIP_OK | - field added to MIP packet. |
MIP_ERROR | - A pointer is NULL. |
MIP_MEMORY_ERROR | - Not enough room in the mip buffer to add the field or the packet will be too large for a MIP. |
None
u16 mip_calculate_checksum | ( | u8 * | mip_buffer | ) |
u16 mip_finalize | ( | u8 * | mip_buffer | ) |
u16 mip_get_first_field | ( | u8 * | mip_buffer, |
mip_field_header ** | field_header, | ||
u8 ** | field_data, | ||
u16 * | field_offset | ||
) |
Gets the first MIP field (a wrapper for mip_get_next_field that makes it easier to use).
[in] | u8 | *mip_buffer - pointer to memory containing the mip packet. |
[out] | mip_field_header | **field_header - pointer to the first field header. |
[out] | u8 | **field_data - pointer to the first field data. |
[out] | u16 | *field_offset - integer offset from start of packet payload of first field. |
None
u16 mip_get_next_field | ( | u8 * | mip_buffer, |
mip_field_header ** | field_header, | ||
u8 ** | field_data, | ||
u16 * | field_offset | ||
) |
Gets the next data field at field_offset
.
[in] | u8 | *mip_buffer - pointer to memory containing the mip packet. |
[out] | mip_field_header | **field_header - pointer to the current field header. |
[out] | u8 | **field_data - pointer to the current field data. |
[in,out] | u16 | *field_offset - integer offset from start of packet payload of next field. |
MIP_OK | - c\ field_header and field_data contain the parsed information. |
MIP_ERROR | - A pointer is NULL. |
MIP_INVALID_PACKET | - The buffer does not contain a valid MIP packet. |
MIP_FIELD_NOT_AVAILABLE | - The requested field does not exist. |
None
u8 mip_get_packet_descriptor_set | ( | u8 * | mip_buffer | ) |
u16 mip_get_packet_size | ( | u8 * | mip_buffer | ) |
u8* mip_get_payload_ptr | ( | u8 * | mip_buffer | ) |
u8 mip_get_payload_size | ( | u8 * | mip_buffer | ) |
u16 mip_init | ( | u8 * | mip_buffer, |
u16 | buffer_size, | ||
u8 | descriptor_set | ||
) |
Initialize a MIP packet header.
[out] | u8 | *mip_buffer - pointer to memory used to construct the mip packet. |
[in] | u16 | buffer_size - size of the mip memory buffer. |
[in] | u8 | descriptor_set - descriptor set field value. |
MIP_OK | - MIP packet initialized. |
MIP_ERROR | - The pointer is NULL. |
MIP_MEMORY_ERROR | - Not enough room in the mip buffer. |
None
u16 mip_is_checksum_valid | ( | u8 * | mip_buffer | ) |
u16 mip_is_initialized | ( | u8 * | mip_buffer, |
u8 | descriptor_set | ||
) |
Check if a MIP packet is initialized.
[in] | u8 | *mip_buffer - pointer to memory used to construct the mip packet. |
[in] | u8 | descriptor_set - expected descriptor set field value. |
MIP_OK | - MIP packet initialized. |
MIP_ERROR | - The pointer is NULL or the MIP packet is not intialized. |
None
u16 mip_is_mip_packet | ( | u8 * | mip_buffer | ) |
Checks if the buffer contains a valid MIP header.
[in,out] | u8 | *mip_buffer - pointer to memory containing the mip packet. |
MIP_OK | - Header is valid. |
MIP_ERROR | - The pointer is NULL. |
MIP_MEMORY_ERROR | - The buffer does not contain a valid MIP packet header. |
None