예제 #1
0
/******************************************************************************
 * @fn          handle_freq_cmd
 *
 * @brief       Handle a Frequency application command.
 *
 * input parameters
 * @param   frame     - pointer to frame with command context
 *
 * @return   Return FHS_RELEASE if caller should release frame otherwise
 *           return FHS_REPLAY.
 */
static fhStatus_t handle_freq_cmd(mrfiPacket_t *frame)
{
  fhStatus_t rc = FHS_RELEASE;

  switch (*(MRFI_P_PAYLOAD(frame)+F_APP_PAYLOAD_OS))
  {
    case FREQ_REQ_PING:
      rc = send_ping_reply(frame);
      break;

#ifndef ACCESS_POINT
    case FREQ_REQ_MOVE:
#ifdef RANGE_EXTENDER
      replayFirst(frame);
#endif
      /* Make sure the change channel Freq command came from
       * a valid source before obeying.
       */
      if (change_channel_cmd_is_valid(frame))
      {
        change_channel_cmd(frame);
      }
      break;
#endif

#ifdef ACCESS_POINT
    case FREQ_REQ_REQ_MOVE:
      break;
#endif
    default:
      break;
  }

  return rc;
}
예제 #2
0
/******************************************************************************
 * @fn          handle_freq_cmd
 *
 * @brief       Handle a Frequency application command.
 *
 * input parameters
 * @param   frame     - pointer to frame with command context
 *
 * @return   Return FHS_RELEASE if caller should release frame otherwise
 *           return FHS_REPLAY.
 */
static fhStatus_t handle_freq_cmd(mrfiPacket_t *frame)
{
  fhStatus_t rc = FHS_RELEASE;

  switch (*(MRFI_P_PAYLOAD(frame)+F_APP_PAYLOAD_OS))
  {
    case FREQ_REQ_PING:
      rc = send_ping_reply(frame);
      break;

#ifndef ACCESS_POINT
    case FREQ_REQ_MOVE:
#ifdef RANGE_EXTENDER
      replayFirst(frame);
#endif
      change_channel_cmd(frame);
      break;
#endif

#ifdef ACCESS_POINT
    case FREQ_REQ_REQ_MOVE:
      break;
#endif
    default:
      break;
  }

  return rc;
}