Esempio n. 1
0
/**
 * \brief Received message
 *
 * \note Process Dialogue with peer
 *      - Proces Profiles
 *      - Wait for received message
 *      - Process incoming message
 *      - Send response if necessary
 *
 * \param puc_rx_msg  Pointer to the data attached to the connection request
 * \param us_len      Data length of the data attached to the request
 *
 * \retval 1 primitive stored
 * \retval 0 primitive could not be stored
 */
uint8_t serial_if_plme_api_parser(uint8_t *puc_rx_msg, uint16_t us_len)
{
	uint8_t uc_cmd;
	int8_t c_result = -1;

	/* Extract command */
	uc_cmd = CMD_PRIME_PROTOCOL(puc_rx_msg[0]);
	UNUSED(us_len);

	/* Pointer to message data */
	puc_rx = (uint8_t *)&puc_rx_msg[1];

	/* Check received command */
	switch (uc_cmd) {
	case PRIME_PLME_RESET_REQUEST:
		c_result = prime_PLME_RESET_request();
		break;

	case PRIME_PLME_SLEEP_REQUEST:
		c_result = prime_PLME_SLEEP_request();
		break;

	case PRIME_PLME_RESUME_REQUEST:
		c_result = prime_PLME_RESUME_request();
		break;

	case PRIME_PLME_TESTMODE_REQUEST:
		c_result = _serial_if_plme_unpack_testmode_req();
		break;

	case PRIME_PLME_GET_REQUEST:
		c_result = _serial_if_plme_unpack_get_req();
		break;

	case PRIME_PLME_SET_REQUEST:
		c_result = _serial_if_plme_unpack_set_req();
		break;

	default:
		c_result = 0;           /* Primitive is ignored */
	}

	if (c_result == 0) {
		return 1;
	} else {
		return 0;
	}
}
Esempio n. 2
0
/**
 * \brief Received message
 *
 * \note Process Dialogue with peer
 *      - Proces Profiles
 *      - Wait for received message
 *      - Process incoming message
 *      - Send response if necessary
 *
 * \param puc_rx_msg  Pointer to the data attached to the connection request
 * \param us_len      Data length of the data attached to the request
 *
 * \retval 1 primitive stored
 * \retval 0 primitive could not be stored
 */
uint8_t serial_if_mlme_api_parser(uint8_t *puc_rx_msg, uint16_t us_len)
{
	uint8_t uc_cmd;
	int8_t c_result = -1;

	/* Extract command */
	uc_cmd = CMD_PRIME_PROTOCOL(puc_rx_msg[0]);
	UNUSED(us_len);

	/* Pointer to message data */
	puc_rx = (uint8_t *)&puc_rx_msg[1];

	/* Check received command */
	switch (uc_cmd) {
	case PRIME_MLME_REGISTER_REQUEST:
		c_result = _serial_if_mlme_unpack_register_req();
		break;

	case PRIME_MLME_UNREGISTER_REQUEST_BASE:
		c_result = _serial_if_mlme_unpack_unregister_req_base();
		break;

	case PRIME_MLME_UNREGISTER_REQUEST_SERVICE:
		c_result = prime_MLME_UNREGISTER_request_service();
		break;

	case PRIME_MLME_PROMOTE_REQUEST_BASE:
		c_result = _serial_if_mlme_unpack_promote_req_base();
		break;

	case PRIME_MLME_PROMOTE_REQUEST_SERVICE:
		c_result = prime_MLME_PROMOTE_request_service();
		break;

	case PRIME_MLME_DEMOTE_REQUEST_BASE:
		c_result = _serial_if_mlme_unpack_demote_req_base();
		break;

	case PRIME_MLME_DEMOTE_REQUEST_SERVICE:
		c_result = prime_MLME_DEMOTE_request_service();
		break;

	case PRIME_MLME_RESET_REQUEST:
		c_result = prime_MLME_RESET_request();
		break;

	case PRIME_MLME_GET_REQUEST:
		c_result = _serial_if_mlme_unpack_get_req();
		break;

	case PRIME_MLME_LIST_GET_REQUEST:
		c_result = _serial_if_mlme_unpack_list_get_req();
		break;

	case PRIME_MLME_SET_REQUEST:
		c_result = _serial_if_mlme_unpack_set_req();
		break;

	default:
		c_result = 0;
	}

	if (c_result == 0) {
		return 1;
	} else {
		return 0;
	}
}
Esempio n. 3
0
/**
 * \brief Received message
 *
 * \note Process Dialogue with peer
 *      - Proces Profiles
 *      - Wait for received message
 *      - Process incoming message
 *      - Send response if necessary
 *
 * \param puc_rx_msg  Pointer to the data attached to the connection request
 * \param us_len      Data length of the data attached to the request
 *
 * \retval true primitive stored
 * \retval false primitive could not be stored
 */
uint8_t serial_if_mac_api_parser(uint8_t *puc_rx_msg, uint16_t us_len)
{
	uint8_t uc_cmd;
	int8_t c_result = -1;

	/* Extract command */
	uc_cmd = CMD_PRIME_PROTOCOL(puc_rx_msg[0]);
	us_rx_len = us_len;

	/* Pointer to message data */
	puc_rx = (uint8_t *)&puc_rx_msg[1];

	/* Extract and store MAC data depending on the primitive */
	switch (uc_cmd) {
	case PRIME_MACSAP_ESTABLISH_REQUEST:
		c_result = _serial_if_mac_unpack_establish_req();
		break;

	case PRIME_MACSAP_ESTABLISH_RESPONSE:
		c_result = _serial_if_mac_unpack_establish_resp();
		break;

	case PRIME_MACSAP_REDIRECT_RESPONSE:
		c_result = _serial_if_mac_unpack_redirect_resp();
		break;

	case PRIME_MACSAP_RELEASE_REQUEST:
		c_result =  _serial_if_mac_unpack_release_req();
		break;

	case PRIME_MACSAP_RELEASE_RESPONSE:
		c_result = _serial_if_mac_unpack_release_resp();
		break;

	case PRIME_MACSAP_JOIN_REQUEST_BASE:
		c_result = _serial_if_mac_unpack_join_req_base();
		break;

	case PRIME_MACSAP_JOIN_REQUEST_SERVICE:
		c_result = _serial_if_mac_unpack_join_req_service();
		break;

	case PRIME_MACSAP_JOIN_RESPONSE_BASE:
		c_result = _serial_if_mac_unpack_join_resp_base();
		break;

	case PRIME_MACSAP_JOIN_RESPONSE_SERVICE:
		c_result = _serial_if_mac_unpack_join_resp_service();
		break;

	case PRIME_MACSAP_LEAVE_REQUEST_BASE:
		c_result = _serial_if_mac_unpack_leave_req_base();
		break;

	case PRIME_MACSAP_LEAVE_REQUEST_SERVICE:
		c_result = _serial_if_mac_unpack_leave_req_service();
		break;

	case PRIME_MACSAP_DATA_REQUEST:
		c_result = _serial_if_mac_unpack_data_req();
		break;

	default:
		c_result = 0;           /* Primitive is ignored */
	}

	if (c_result == 0) {
		return true;
	} else {
		return false;
	}
}