Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
platform/mbed/main_nat.cpp
- Committer:
- va009039
- Date:
- 2014-06-21
- Revision:
- 8:88d4fba4ccd5
- Parent:
- 7:71a6f45bc563
File content as of revision 8:88d4fba4ccd5:
#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 DEVICE_ANALOGOUT==0
class AnalogOut {
public:
AnalogOut(PinName pin){}
void write(float value){}
void write_u16(unsigned short value){}
float read(){ return 0.0; }
};
#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,
};