/*********************************************************************
 * @fn      SensorTagIO_reset
 *
 * @brief   Reset characteristics
 *
 * @param   none
 *
 * @return  none
 */
void SensorTagIO_reset(void)
{
  ioValue = SensorTag_testResult();
  Io_setParameter(SENSOR_DATA, 1, &ioValue);

  ioMode = IO_MODE_LOCAL;
  Io_setParameter(SENSOR_CONF, 1, &ioMode);

  // Normal mode; make sure LEDs and buzzer are off
  PIN_setOutputValue(hGpioPin, IOID_RED_LED, Board_LED_OFF);
  PIN_setOutputValue(hGpioPin, IOID_GREEN_LED, Board_LED_OFF);
  PIN_setOutputValue(hGpioPin, IOID_BLUE_LED, Board_LED_OFF);
}
/*********************************************************************
 * @fn      SensorTagIO_reset
 *
 * @brief   Reset characteristics
 *
 * @param   none
 *
 * @return  none
 */
void SensorTagIO_reset(void)
{
  ioValue = sensorTestResult();
  Io_setParameter( SENSOR_DATA, 1, &ioValue);

  ioMode = IO_MODE_LOCAL;
  Io_setParameter( SENSOR_CONF, 1, &ioMode);
  
  // Normal mode; make sure LEDs and buzzer are off
  PIN_setOutputValue(hGpioPin, Board_LED1, Board_LED_OFF);
  PIN_setOutputValue(hGpioPin, Board_LED2, Board_LED_OFF);
  Clock_stop(buzzClockHandle);
  PIN_setOutputValue(hGpioPin, Board_BUZZER, Board_BUZZER_OFF);
}
Exemple #3
0
/*********************************************************************
 * @fn      SensorTagIO_reset
 *
 * @brief   Reset characteristics
 *
 * @param   none
 *
 * @return  none
 */
void SensorTagIO_reset(void)
{
  ioValue = sensorTestResult();
  Io_setParameter( SENSOR_DATA, 1, &ioValue);

  ioMode = IO_MODE_LOCAL;
  Io_setParameter( SENSOR_CONF, 1, &ioMode);
  
  // Normal mode; make sure LEDs and buzzer are off
  PIN_setOutputValue(hGpioPin, Board_LED1, Board_LED_OFF);
  PIN_setOutputValue(hGpioPin, Board_LED2, Board_LED_OFF);
  
  if (buzzerOn) {
    buzzerClose();
    buzzerOn = false;
  }
}
/*********************************************************************
 * @fn      SensorTagIO_processCharChangeEvt
 *
 * @brief   Process a change in the IO characteristics
 *
 * @return  none
 */
void SensorTagIO_processCharChangeEvt(uint8_t paramID)
{ 
  if( paramID == SENSOR_CONF )
  {
    
    Io_getParameter(SENSOR_CONF, &ioMode);
    if (ioMode == IO_MODE_SELFTEST)
    {
      ioValue = sensorTestResult();
      Io_setParameter(SENSOR_DATA, 1, &ioValue);
    }
    else 
    {
      // Mode change: make sure LEDs and buzzer are off
      Io_setParameter(SENSOR_DATA, 1, &ioValue);
      
      PIN_setOutputValue(hGpioPin, Board_LED1, Board_LED_OFF);
      PIN_setOutputValue(hGpioPin, Board_LED2, Board_LED_OFF);
      Clock_stop(buzzClockHandle);
      PIN_setOutputValue(hGpioPin, Board_BUZZER, Board_BUZZER_OFF);
    }
  } 
  else if (paramID == SENSOR_DATA)
  {
    Io_getParameter(SENSOR_DATA, &ioValue);
  }
  
  if (ioMode == IO_MODE_REMOTE)
  {
    // Control by remote client: 
    // - possible to operate the LEDs and buzzer
    // - right key functionality overridden (will not terminate connection)
    if (!!(ioValue & IO_DATA_LED1))
    {
      PIN_setOutputValue(hGpioPin, Board_LED1, Board_LED_ON);
    }
    else
    {
      PIN_setOutputValue(hGpioPin, Board_LED1, Board_LED_OFF);
    }
    
    if (!!(ioValue & IO_DATA_LED2))
    {
      PIN_setOutputValue(hGpioPin, Board_LED2, Board_LED_ON);
    }
    else
    {
      PIN_setOutputValue(hGpioPin, Board_LED2, Board_LED_OFF);
    }
    
    if (!!((ioValue & IO_DATA_BUZZER)))
    {
      Clock_start(buzzClockHandle);
    }
    else
    {
      Clock_stop(buzzClockHandle);
      PIN_setOutputValue(hGpioPin, Board_BUZZER, Board_BUZZER_OFF);
    }
  }
}
/*********************************************************************
 * @fn      SensorTagIO_processCharChangeEvt
 *
 * @brief   Process a change in the IO characteristics
 *
 * @param   none
 *
 * @return  none
 */
void SensorTagIO_processCharChangeEvt(uint8_t paramID)
{
  if (paramID == SENSOR_CONF)
  {

    Io_getParameter(SENSOR_CONF, &ioMode);
    if (ioMode == IO_MODE_SELFTEST)
    {
      ioValue = SensorTag_testResult();
      Io_setParameter(SENSOR_DATA, 1, &ioValue);
    }
    else
    {
      // Mode change: make sure LEDs are off
      Io_setParameter(SENSOR_DATA, 1, &ioValue);

      PIN_setOutputValue(hGpioPin, IOID_RED_LED, Board_LED_OFF);
      PIN_setOutputValue(hGpioPin, IOID_GREEN_LED, Board_LED_OFF);
      PIN_setOutputValue(hGpioPin, IOID_BLUE_LED, Board_LED_OFF);

    }
  }
  else if (paramID == SENSOR_DATA)
  {
    Io_getParameter(SENSOR_DATA, &ioValue);
  }

  if (ioMode == IO_MODE_REMOTE)
  {
    // Control by remote client:
    // - possible to operate the LEDs and buzzer
    // - right key functionality overridden (will not terminate connection)
    if (!!(ioValue & IO_DATA_LED_R))
    {
      PIN_setOutputValue(hGpioPin, IOID_RED_LED, Board_LED_ON);
    }
    else
    {
      PIN_setOutputValue(hGpioPin, IOID_RED_LED, Board_LED_OFF);
    }

    if (!!(ioValue & IO_DATA_LED_G))
    {
      PIN_setOutputValue(hGpioPin, IOID_GREEN_LED, Board_LED_ON);
    }
    else
    {
      PIN_setOutputValue(hGpioPin, IOID_GREEN_LED, Board_LED_OFF);
    }

    if (!!(ioValue & IO_DATA_LED_B))
    {
      PIN_setOutputValue(hGpioPin, IOID_BLUE_LED, Board_LED_ON);
    }
    else
    {
      PIN_setOutputValue(hGpioPin, IOID_BLUE_LED, Board_LED_OFF);
    }

    if (!!((ioValue & IO_DATA_EXT_FLASH_ERASE)))
    {
        SensorTagFactoryReset_extFlashErase();
    }
  }
}