/** * \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; } }
/** * \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; } }
/** * \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; } }