Esempio n. 1
0
Actuator* Actuator::creatObject( uint8_t ID, uint8_t pin)
{
    Actuator *pObject = NULL;

    /**search**/
    pObject = getObject( pin );

    if ( pObject )
    {
        return pObject;
    }

    if ( objectNum >= ACTUATOR_MAXMUM )
    {
        return NULL;
    }

    /**creat **/
    
    switch ( ID )
    {
        case FUNCTION_LED:
            pObject = new LED( pin );
            
            break;
            
        case FUNCTION_RGB:
            break;
            
        case FUNCTION_PLAYER_MINI:
            if ( PALETTE_PIN_UART == pin)
            {
                pObject = new MP3Music( pin, FUNCTION_PLAYER_MINI );
            }
            break;

        case FUNCTION_ACTUATOR_DIGITAL:
            pObject = new PinDigitalActuator( pin );


    }

    /**store **/

    if ( pObject )
    {
        rigisterObject( pin, pObject );
        objectNum++;
    }
    
    return pObject;

}
Esempio n. 2
0
Sensor* Sensor::creatObject( uint8_t ID, uint8_t pin, uint8_t auxiliaryPin)
{
    Sensor *pObject = NULL;


    /**search**/
    pObject = getObject( pin );

    if ( pObject )
    {
        return pObject;
    }

    if ( objectNum >= SENSOR_MAXNUM )
    {
        return NULL;
    }

    /**creat **/

    switch ( ID )
    {
        case FUNCTION_SENSOR_DHT22:
            pObject = new DHT22Sensor( pin );
            break;

        case FUNCTION_SENSOR_BMP085:
            pObject = new BMP085Sensor( pin );
            break;

        case FUNCTION_SENSOR_GP2Y1010:
            pObject = new GP2Y1010Sensor( pin, auxiliaryPin );
            break;

        default:
           ; //nothing

    }


    /**store **/

    if ( pObject )
    {
        rigisterObject( pin, pObject );
        objectNum++;  //must be increase after Rigister
    }

    return pObject;
}