python

Dependencies:   TSI mbed

Fork of pymite by Norimasa Okamoto

platform/mbed/main_nat.cpp

Committer:
va009039
Date:
2014-06-14
Revision:
7:71a6f45bc563
Parent:
5:19bd98307341
Child:
8:88d4fba4ccd5

File content as of revision 7:71a6f45bc563:

#undef __FILE_ID__
#define __FILE_ID__ 0x0A
/**
 * PyMite usr native function file
 *
 * automatically created by pmImgCreator.py
 * on Fri Mar 15 14:38:03 2013
 *
 * DO NOT EDIT THIS FILE.
 * ANY CHANGES WILL BE LOST.
 *
 * @file    main_nat.cpp
 */

#define __IN_LIBNATIVE_C__
#include "pm.h"

/* From: mbed.py */
#include "mbed.h"
#include "NativeClassInterface.h"
#if defined(TARGET_KL25Z)
#include "TSISensor.h"
#endif

#if defined(TARGET_NUCLEO_F401RE)
class AnalogOut {
public:
AnalogOut(PinName pin){}
void write(float value){}
void write_u16(unsigned short value){}
float read(){}
};
#endif

PmReturn_t
nat_placeholder_func(pPmFrame_t *ppframe)
{

    /*
     * Use placeholder because an index 
     * value of zero denotes the stdlib.
     * This function should not be called.
     */
    PmReturn_t retval;
    PM_RAISE(retval, PM_RET_EX_SYS);
    return retval;

}

PmReturn_t
nat_01_mbed___init__(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.init<DigitalOut,PinName>(OBJ_TYPE_STR);
        
}

PmReturn_t
nat_02_mbed_write(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.method<DigitalOut,int,&DigitalOut::write>(OBJ_TYPE_NON, OBJ_TYPE_INT);
        
}

PmReturn_t
nat_03_mbed_read(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.method<int,DigitalOut,&DigitalOut::read>(OBJ_TYPE_INT);
        
}

PmReturn_t
nat_04_mbed___init__(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.init<DigitalIn,PinName>(OBJ_TYPE_STR);
        
}

PmReturn_t
nat_05_mbed_read(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.method<int,DigitalIn,&DigitalIn::read>(OBJ_TYPE_INT);
        
}

PmReturn_t
nat_06_mbed___init__(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.init<DigitalInOut,PinName>(OBJ_TYPE_STR);
        
}

PmReturn_t
nat_07_mbed_read(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.method<int,DigitalInOut,&DigitalInOut::read>(OBJ_TYPE_INT);
        
}

PmReturn_t
nat_08_mbed_write(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.method<DigitalInOut,int,&DigitalInOut::write>(OBJ_TYPE_NON, OBJ_TYPE_INT);
        
}

PmReturn_t
nat_09_mbed_input(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.method<DigitalInOut,&DigitalInOut::input>(OBJ_TYPE_NON);
        
}

PmReturn_t
nat_10_mbed_output(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.method<DigitalInOut,&DigitalInOut::output>(OBJ_TYPE_NON);
        
}

PmReturn_t
nat_11_mbed___init__(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.init<AnalogIn,PinName>(OBJ_TYPE_STR);
        
}

PmReturn_t
nat_12_mbed_read_u16(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.method<uint16_t,AnalogIn,&AnalogIn::read_u16>(OBJ_TYPE_INT);
        
}

PmReturn_t
nat_13_mbed_read(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.method<float,AnalogIn,&AnalogIn::read>(OBJ_TYPE_FLT);
        
}

PmReturn_t
nat_14_mbed___init__(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.init<AnalogOut,PinName>(OBJ_TYPE_STR);
        
}

PmReturn_t
nat_15_mbed_write_u16(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.method<AnalogOut,uint16_t,&AnalogOut::write_u16>(OBJ_TYPE_NON, OBJ_TYPE_INT);
        
}

PmReturn_t
nat_16_mbed_write(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.method<AnalogOut,float,&AnalogOut::write>(OBJ_TYPE_NON, OBJ_TYPE_FLT);
        
}

PmReturn_t
nat_17_mbed_read(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.method<float,AnalogOut,&AnalogOut::read>(OBJ_TYPE_FLT);
        
}

PmReturn_t
nat_18_mbed___init__(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.init<PwmOut,PinName>(OBJ_TYPE_STR);
        
}

PmReturn_t
nat_19_mbed_write(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.method<PwmOut,float,&PwmOut::write>(OBJ_TYPE_NON, OBJ_TYPE_FLT);
        
}

PmReturn_t
nat_20_mbed_read(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.method<float,PwmOut,&PwmOut::read>(OBJ_TYPE_FLT);
        
}

PmReturn_t
nat_21_mbed_period(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.method<PwmOut,float,&PwmOut::period>(OBJ_TYPE_NON, OBJ_TYPE_FLT);
        
}

PmReturn_t
nat_22_mbed_period_ms(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.method<PwmOut,int,&PwmOut::period_ms>(OBJ_TYPE_NON, OBJ_TYPE_INT);
        
}

PmReturn_t
nat_23_mbed_period_us(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.method<PwmOut,int,&PwmOut::period_us>(OBJ_TYPE_NON, OBJ_TYPE_INT);
        
}

PmReturn_t
nat_24_mbed_pulsewidth(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.method<PwmOut,float,&PwmOut::pulsewidth>(OBJ_TYPE_NON, OBJ_TYPE_FLT);
        
}

PmReturn_t
nat_25_mbed_pulsewidth_ms(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.method<PwmOut,int,&PwmOut::pulsewidth_ms>(OBJ_TYPE_NON, OBJ_TYPE_INT);
        
}

PmReturn_t
nat_26_mbed_pulsewidth_us(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.method<PwmOut,int,&PwmOut::pulsewidth_us>(OBJ_TYPE_NON, OBJ_TYPE_INT);
        
}

PmReturn_t
nat_27_mbed___init__(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.init<Serial,PinName,PinName>(OBJ_TYPE_STR, OBJ_TYPE_STR);
        
}

PmReturn_t
nat_28_mbed_baud(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        Serial* obj;
        nci._load_obj<Serial>(&obj);
        obj->baud(nci.argv<int>(1));
        return nci.set_return_value<int>(OBJ_TYPE_INT, 0);
        //return nci.method<Serial,int,&Serial::baud>(OBJ_TYPE_NON, OBJ_TYPE_INT);
        
}

PmReturn_t
nat_29_mbed_readable(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        Serial* obj;
        nci._load_obj<Serial>(&obj);
        int r = obj->readable();
        return nci.set_return_value<int>(OBJ_TYPE_INT, r);
        //return nci.method<int,Serial,&Serial::readable>(OBJ_TYPE_INT);
   
}

PmReturn_t
nat_30_mbed_writeable(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        Serial* obj;
        nci._load_obj<Serial>(&obj);
        int r = obj->writeable();
        return nci.set_return_value<int>(OBJ_TYPE_INT, r);
        //return nci.method<int,Serial,&Serial::writeable>(OBJ_TYPE_INT);
        
}

PmReturn_t
nat_31_mbed_putc(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        Serial* obj;
        nci._load_obj<Serial>(&obj);
        int r = obj->putc(nci.argv<int>(1));
        return nci.set_return_value<int>(OBJ_TYPE_INT, r);
        //return nci.method<int,Serial,int,&Serial::putc>(OBJ_TYPE_INT, OBJ_TYPE_STR);
        
}

PmReturn_t
nat_32_mbed_puts(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        Serial* obj;
        nci._load_obj<Serial>(&obj);
        int r = obj->puts(nci.argv<const char*>(1));
        return nci.set_return_value<int>(OBJ_TYPE_INT, r);
        //return nci.method<int,Serial,char*,&Serial::puts>(OBJ_TYPE_INT, OBJ_TYPE_STR);
        
}

PmReturn_t
nat_33_mbed_getc(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        Serial* obj;
        nci._load_obj<Serial>(&obj);
        int r = obj->getc();
        return nci.set_return_value<int>(OBJ_TYPE_STR, r);
        //return nci.method<int,Serial,&Serial::getc>(OBJ_TYPE_STR);
        
}

PmReturn_t
nat_34_mbed___init__(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.init<SPI,PinName,PinName,PinName>(OBJ_TYPE_STR, OBJ_TYPE_STR, OBJ_TYPE_STR);
        
}

PmReturn_t
nat_35_mbed_format(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.method<SPI,int,int,&SPI::format>(OBJ_TYPE_NON, OBJ_TYPE_INT, OBJ_TYPE_INT);
        
}

PmReturn_t
nat_36_mbed_frequency(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.method<SPI,int,&SPI::frequency>(OBJ_TYPE_NON, OBJ_TYPE_INT);
        
}

PmReturn_t
nat_37_mbed_write(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.method<int,SPI,int,&SPI::write>(OBJ_TYPE_INT, OBJ_TYPE_INT);
        
}

PmReturn_t
nat_38_mbed___init__(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.init<I2C,PinName,PinName>(OBJ_TYPE_STR, OBJ_TYPE_STR);
        
}

PmReturn_t
nat_39_mbed_frequency(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.method<I2C,int,&I2C::frequency>(OBJ_TYPE_NON, OBJ_TYPE_INT);
        
}

PmReturn_t
nat_40_mbed_read(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.method<int,I2C,int,char*,int,bool,&I2C::read>(OBJ_TYPE_INT, 
        OBJ_TYPE_INT, OBJ_TYPE_STR, OBJ_TYPE_INT, OBJ_TYPE_INT);
        
}

PmReturn_t
nat_41_mbed_write(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.method<int,I2C,int,const char*,int,bool,&I2C::write>(OBJ_TYPE_INT, 
        OBJ_TYPE_INT, OBJ_TYPE_STR, OBJ_TYPE_INT, OBJ_TYPE_INT);
        
}

PmReturn_t
nat_42_mbed___init__(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.init<Timer>();
        
}

PmReturn_t
nat_43_mbed_start(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.method<Timer,&Timer::start>(OBJ_TYPE_NON);
        
}

PmReturn_t
nat_44_mbed_stop(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.method<Timer,&Timer::stop>(OBJ_TYPE_NON);
        
}

PmReturn_t
nat_45_mbed_reset(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.method<Timer,&Timer::reset>(OBJ_TYPE_NON);
        
}

PmReturn_t
nat_46_mbed_read(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.method<float,Timer,&Timer::read>(OBJ_TYPE_FLT);
        
}

PmReturn_t
nat_47_mbed_read_ms(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.method<int,Timer,&Timer::read_ms>(OBJ_TYPE_INT);
        
}

PmReturn_t
nat_48_mbed_read_us(pPmFrame_t *ppframe)
{

        NativeClassInterface nci;
        return nci.method<int,Timer,&Timer::read_us>(OBJ_TYPE_INT);
        
}

PmReturn_t
nat_49_mbed___init__(pPmFrame_t *ppframe)
{

#if defined(TARGET_KL25Z)
        NativeClassInterface nci;
        return nci.init<TSISensor>();
#endif
        
}

PmReturn_t
nat_50_mbed_readPercentage(pPmFrame_t *ppframe)
{

#if defined(TARGET_KL25Z)
        NativeClassInterface nci;
        return nci.method<float,TSISensor,&TSISensor::readPercentage>(OBJ_TYPE_FLT);
#endif
        
}

PmReturn_t
nat_51_mbed_readDistance(pPmFrame_t *ppframe)
{

#if defined(TARGET_KL25Z)
        NativeClassInterface nci;
        return nci.method<uint8_t,TSISensor,&TSISensor::readDistance>(OBJ_TYPE_INT);
#endif
        
}

/* Native function lookup table */
pPmNativeFxn_t const usr_nat_fxn_table[] =
{
    nat_placeholder_func,
    nat_01_mbed___init__,
    nat_02_mbed_write,
    nat_03_mbed_read,
    nat_04_mbed___init__,
    nat_05_mbed_read,
    nat_06_mbed___init__,
    nat_07_mbed_read,
    nat_08_mbed_write,
    nat_09_mbed_input,
    nat_10_mbed_output,
    nat_11_mbed___init__,
    nat_12_mbed_read_u16,
    nat_13_mbed_read,
    nat_14_mbed___init__,
    nat_15_mbed_write_u16,
    nat_16_mbed_write,
    nat_17_mbed_read,
    nat_18_mbed___init__,
    nat_19_mbed_write,
    nat_20_mbed_read,
    nat_21_mbed_period,
    nat_22_mbed_period_ms,
    nat_23_mbed_period_us,
    nat_24_mbed_pulsewidth,
    nat_25_mbed_pulsewidth_ms,
    nat_26_mbed_pulsewidth_us,
    nat_27_mbed___init__,
    nat_28_mbed_baud,
    nat_29_mbed_readable,
    nat_30_mbed_writeable,
    nat_31_mbed_putc,
    nat_32_mbed_puts,
    nat_33_mbed_getc,
    nat_34_mbed___init__,
    nat_35_mbed_format,
    nat_36_mbed_frequency,
    nat_37_mbed_write,
    nat_38_mbed___init__,
    nat_39_mbed_frequency,
    nat_40_mbed_read,
    nat_41_mbed_write,
    nat_42_mbed___init__,
    nat_43_mbed_start,
    nat_44_mbed_stop,
    nat_45_mbed_reset,
    nat_46_mbed_read,
    nat_47_mbed_read_ms,
    nat_48_mbed_read_us,
    nat_49_mbed___init__,
    nat_50_mbed_readPercentage,
    nat_51_mbed_readDistance,
};