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.
Fork of pymite by
main_nat.cpp
00001 #undef __FILE_ID__ 00002 #define __FILE_ID__ 0x0A 00003 /** 00004 * PyMite usr native function file 00005 * 00006 * automatically created by pmImgCreator.py 00007 * on Fri Mar 15 14:38:03 2013 00008 * 00009 * DO NOT EDIT THIS FILE. 00010 * ANY CHANGES WILL BE LOST. 00011 * 00012 * @file main_nat.cpp 00013 */ 00014 00015 #define __IN_LIBNATIVE_C__ 00016 #include "pm.h" 00017 00018 /* From: mbed.py */ 00019 #include "mbed.h" 00020 #include "NativeClassInterface.h" 00021 #if defined(TARGET_KL25Z) 00022 #include "TSISensor.h" 00023 #endif 00024 00025 #if DEVICE_ANALOGOUT==0 00026 class AnalogOut { 00027 public: 00028 AnalogOut(PinName pin){} 00029 void write(float value){} 00030 void write_u16(unsigned short value){} 00031 float read(){ return 0.0; } 00032 }; 00033 #endif 00034 00035 PmReturn_t 00036 nat_placeholder_func(pPmFrame_t *ppframe) 00037 { 00038 00039 /* 00040 * Use placeholder because an index 00041 * value of zero denotes the stdlib. 00042 * This function should not be called. 00043 */ 00044 PmReturn_t retval; 00045 PM_RAISE(retval, PM_RET_EX_SYS); 00046 return retval; 00047 00048 } 00049 00050 PmReturn_t 00051 nat_01_mbed___init__(pPmFrame_t *ppframe) 00052 { 00053 00054 NativeClassInterface nci; 00055 return nci.init<DigitalOut,PinName>(OBJ_TYPE_STR); 00056 00057 } 00058 00059 PmReturn_t 00060 nat_02_mbed_write(pPmFrame_t *ppframe) 00061 { 00062 00063 NativeClassInterface nci; 00064 return nci.method<DigitalOut,int,&DigitalOut::write>(OBJ_TYPE_NON, OBJ_TYPE_INT); 00065 00066 } 00067 00068 PmReturn_t 00069 nat_03_mbed_read(pPmFrame_t *ppframe) 00070 { 00071 00072 NativeClassInterface nci; 00073 return nci.method<int,DigitalOut,&DigitalOut::read>(OBJ_TYPE_INT); 00074 00075 } 00076 00077 PmReturn_t 00078 nat_04_mbed___init__(pPmFrame_t *ppframe) 00079 { 00080 00081 NativeClassInterface nci; 00082 return nci.init<DigitalIn,PinName>(OBJ_TYPE_STR); 00083 00084 } 00085 00086 PmReturn_t 00087 nat_05_mbed_read(pPmFrame_t *ppframe) 00088 { 00089 00090 NativeClassInterface nci; 00091 return nci.method<int,DigitalIn,&DigitalIn::read>(OBJ_TYPE_INT); 00092 00093 } 00094 00095 PmReturn_t 00096 nat_06_mbed___init__(pPmFrame_t *ppframe) 00097 { 00098 00099 NativeClassInterface nci; 00100 return nci.init<DigitalInOut,PinName>(OBJ_TYPE_STR); 00101 00102 } 00103 00104 PmReturn_t 00105 nat_07_mbed_read(pPmFrame_t *ppframe) 00106 { 00107 00108 NativeClassInterface nci; 00109 return nci.method<int,DigitalInOut,&DigitalInOut::read>(OBJ_TYPE_INT); 00110 00111 } 00112 00113 PmReturn_t 00114 nat_08_mbed_write(pPmFrame_t *ppframe) 00115 { 00116 00117 NativeClassInterface nci; 00118 return nci.method<DigitalInOut,int,&DigitalInOut::write>(OBJ_TYPE_NON, OBJ_TYPE_INT); 00119 00120 } 00121 00122 PmReturn_t 00123 nat_09_mbed_input(pPmFrame_t *ppframe) 00124 { 00125 00126 NativeClassInterface nci; 00127 return nci.method<DigitalInOut,&DigitalInOut::input>(OBJ_TYPE_NON); 00128 00129 } 00130 00131 PmReturn_t 00132 nat_10_mbed_output(pPmFrame_t *ppframe) 00133 { 00134 00135 NativeClassInterface nci; 00136 return nci.method<DigitalInOut,&DigitalInOut::output>(OBJ_TYPE_NON); 00137 00138 } 00139 00140 PmReturn_t 00141 nat_11_mbed___init__(pPmFrame_t *ppframe) 00142 { 00143 00144 NativeClassInterface nci; 00145 return nci.init<AnalogIn,PinName>(OBJ_TYPE_STR); 00146 00147 } 00148 00149 PmReturn_t 00150 nat_12_mbed_read_u16(pPmFrame_t *ppframe) 00151 { 00152 00153 NativeClassInterface nci; 00154 return nci.method<uint16_t,AnalogIn,&AnalogIn::read_u16>(OBJ_TYPE_INT); 00155 00156 } 00157 00158 PmReturn_t 00159 nat_13_mbed_read(pPmFrame_t *ppframe) 00160 { 00161 00162 NativeClassInterface nci; 00163 return nci.method<float,AnalogIn,&AnalogIn::read>(OBJ_TYPE_FLT); 00164 00165 } 00166 00167 PmReturn_t 00168 nat_14_mbed___init__(pPmFrame_t *ppframe) 00169 { 00170 00171 NativeClassInterface nci; 00172 return nci.init<AnalogOut,PinName>(OBJ_TYPE_STR); 00173 00174 } 00175 00176 PmReturn_t 00177 nat_15_mbed_write_u16(pPmFrame_t *ppframe) 00178 { 00179 00180 NativeClassInterface nci; 00181 return nci.method<AnalogOut,uint16_t,&AnalogOut::write_u16>(OBJ_TYPE_NON, OBJ_TYPE_INT); 00182 00183 } 00184 00185 PmReturn_t 00186 nat_16_mbed_write(pPmFrame_t *ppframe) 00187 { 00188 00189 NativeClassInterface nci; 00190 return nci.method<AnalogOut,float,&AnalogOut::write>(OBJ_TYPE_NON, OBJ_TYPE_FLT); 00191 00192 } 00193 00194 PmReturn_t 00195 nat_17_mbed_read(pPmFrame_t *ppframe) 00196 { 00197 00198 NativeClassInterface nci; 00199 return nci.method<float,AnalogOut,&AnalogOut::read>(OBJ_TYPE_FLT); 00200 00201 } 00202 00203 PmReturn_t 00204 nat_18_mbed___init__(pPmFrame_t *ppframe) 00205 { 00206 00207 NativeClassInterface nci; 00208 return nci.init<PwmOut,PinName>(OBJ_TYPE_STR); 00209 00210 } 00211 00212 PmReturn_t 00213 nat_19_mbed_write(pPmFrame_t *ppframe) 00214 { 00215 00216 NativeClassInterface nci; 00217 return nci.method<PwmOut,float,&PwmOut::write>(OBJ_TYPE_NON, OBJ_TYPE_FLT); 00218 00219 } 00220 00221 PmReturn_t 00222 nat_20_mbed_read(pPmFrame_t *ppframe) 00223 { 00224 00225 NativeClassInterface nci; 00226 return nci.method<float,PwmOut,&PwmOut::read>(OBJ_TYPE_FLT); 00227 00228 } 00229 00230 PmReturn_t 00231 nat_21_mbed_period(pPmFrame_t *ppframe) 00232 { 00233 00234 NativeClassInterface nci; 00235 return nci.method<PwmOut,float,&PwmOut::period>(OBJ_TYPE_NON, OBJ_TYPE_FLT); 00236 00237 } 00238 00239 PmReturn_t 00240 nat_22_mbed_period_ms(pPmFrame_t *ppframe) 00241 { 00242 00243 NativeClassInterface nci; 00244 return nci.method<PwmOut,int,&PwmOut::period_ms>(OBJ_TYPE_NON, OBJ_TYPE_INT); 00245 00246 } 00247 00248 PmReturn_t 00249 nat_23_mbed_period_us(pPmFrame_t *ppframe) 00250 { 00251 00252 NativeClassInterface nci; 00253 return nci.method<PwmOut,int,&PwmOut::period_us>(OBJ_TYPE_NON, OBJ_TYPE_INT); 00254 00255 } 00256 00257 PmReturn_t 00258 nat_24_mbed_pulsewidth(pPmFrame_t *ppframe) 00259 { 00260 00261 NativeClassInterface nci; 00262 return nci.method<PwmOut,float,&PwmOut::pulsewidth>(OBJ_TYPE_NON, OBJ_TYPE_FLT); 00263 00264 } 00265 00266 PmReturn_t 00267 nat_25_mbed_pulsewidth_ms(pPmFrame_t *ppframe) 00268 { 00269 00270 NativeClassInterface nci; 00271 return nci.method<PwmOut,int,&PwmOut::pulsewidth_ms>(OBJ_TYPE_NON, OBJ_TYPE_INT); 00272 00273 } 00274 00275 PmReturn_t 00276 nat_26_mbed_pulsewidth_us(pPmFrame_t *ppframe) 00277 { 00278 00279 NativeClassInterface nci; 00280 return nci.method<PwmOut,int,&PwmOut::pulsewidth_us>(OBJ_TYPE_NON, OBJ_TYPE_INT); 00281 00282 } 00283 00284 PmReturn_t 00285 nat_27_mbed___init__(pPmFrame_t *ppframe) 00286 { 00287 00288 NativeClassInterface nci; 00289 return nci.init<Serial,PinName,PinName>(OBJ_TYPE_STR, OBJ_TYPE_STR); 00290 00291 } 00292 00293 PmReturn_t 00294 nat_28_mbed_baud(pPmFrame_t *ppframe) 00295 { 00296 00297 NativeClassInterface nci; 00298 Serial* obj; 00299 nci._load_obj<Serial>(&obj); 00300 obj->baud(nci.argv<int>(1)); 00301 return nci.set_return_value<int>(OBJ_TYPE_INT, 0); 00302 //return nci.method<Serial,int,&Serial::baud>(OBJ_TYPE_NON, OBJ_TYPE_INT); 00303 00304 } 00305 00306 PmReturn_t 00307 nat_29_mbed_readable(pPmFrame_t *ppframe) 00308 { 00309 00310 NativeClassInterface nci; 00311 Serial* obj; 00312 nci._load_obj<Serial>(&obj); 00313 int r = obj->readable(); 00314 return nci.set_return_value<int>(OBJ_TYPE_INT, r); 00315 //return nci.method<int,Serial,&Serial::readable>(OBJ_TYPE_INT); 00316 00317 } 00318 00319 PmReturn_t 00320 nat_30_mbed_writeable(pPmFrame_t *ppframe) 00321 { 00322 00323 NativeClassInterface nci; 00324 Serial* obj; 00325 nci._load_obj<Serial>(&obj); 00326 int r = obj->writeable(); 00327 return nci.set_return_value<int>(OBJ_TYPE_INT, r); 00328 //return nci.method<int,Serial,&Serial::writeable>(OBJ_TYPE_INT); 00329 00330 } 00331 00332 PmReturn_t 00333 nat_31_mbed_putc(pPmFrame_t *ppframe) 00334 { 00335 00336 NativeClassInterface nci; 00337 Serial* obj; 00338 nci._load_obj<Serial>(&obj); 00339 int r = obj->putc(nci.argv<int>(1)); 00340 return nci.set_return_value<int>(OBJ_TYPE_INT, r); 00341 //return nci.method<int,Serial,int,&Serial::putc>(OBJ_TYPE_INT, OBJ_TYPE_STR); 00342 00343 } 00344 00345 PmReturn_t 00346 nat_32_mbed_puts(pPmFrame_t *ppframe) 00347 { 00348 00349 NativeClassInterface nci; 00350 Serial* obj; 00351 nci._load_obj<Serial>(&obj); 00352 int r = obj->puts(nci.argv<const char*>(1)); 00353 return nci.set_return_value<int>(OBJ_TYPE_INT, r); 00354 //return nci.method<int,Serial,char*,&Serial::puts>(OBJ_TYPE_INT, OBJ_TYPE_STR); 00355 00356 } 00357 00358 PmReturn_t 00359 nat_33_mbed_getc(pPmFrame_t *ppframe) 00360 { 00361 00362 NativeClassInterface nci; 00363 Serial* obj; 00364 nci._load_obj<Serial>(&obj); 00365 int r = obj->getc(); 00366 return nci.set_return_value<int>(OBJ_TYPE_STR, r); 00367 //return nci.method<int,Serial,&Serial::getc>(OBJ_TYPE_STR); 00368 00369 } 00370 00371 PmReturn_t 00372 nat_34_mbed___init__(pPmFrame_t *ppframe) 00373 { 00374 00375 NativeClassInterface nci; 00376 return nci.init<SPI,PinName,PinName,PinName>(OBJ_TYPE_STR, OBJ_TYPE_STR, OBJ_TYPE_STR); 00377 00378 } 00379 00380 PmReturn_t 00381 nat_35_mbed_format(pPmFrame_t *ppframe) 00382 { 00383 00384 NativeClassInterface nci; 00385 return nci.method<SPI,int,int,&SPI::format>(OBJ_TYPE_NON, OBJ_TYPE_INT, OBJ_TYPE_INT); 00386 00387 } 00388 00389 PmReturn_t 00390 nat_36_mbed_frequency(pPmFrame_t *ppframe) 00391 { 00392 00393 NativeClassInterface nci; 00394 return nci.method<SPI,int,&SPI::frequency>(OBJ_TYPE_NON, OBJ_TYPE_INT); 00395 00396 } 00397 00398 PmReturn_t 00399 nat_37_mbed_write(pPmFrame_t *ppframe) 00400 { 00401 00402 NativeClassInterface nci; 00403 return nci.method<int,SPI,int,&SPI::write>(OBJ_TYPE_INT, OBJ_TYPE_INT); 00404 00405 } 00406 00407 PmReturn_t 00408 nat_38_mbed___init__(pPmFrame_t *ppframe) 00409 { 00410 00411 NativeClassInterface nci; 00412 return nci.init<I2C,PinName,PinName>(OBJ_TYPE_STR, OBJ_TYPE_STR); 00413 00414 } 00415 00416 PmReturn_t 00417 nat_39_mbed_frequency(pPmFrame_t *ppframe) 00418 { 00419 00420 NativeClassInterface nci; 00421 return nci.method<I2C,int,&I2C::frequency>(OBJ_TYPE_NON, OBJ_TYPE_INT); 00422 00423 } 00424 00425 PmReturn_t 00426 nat_40_mbed_read(pPmFrame_t *ppframe) 00427 { 00428 00429 NativeClassInterface nci; 00430 return nci.method<int,I2C,int,char*,int,bool,&I2C::read>(OBJ_TYPE_INT, 00431 OBJ_TYPE_INT, OBJ_TYPE_STR, OBJ_TYPE_INT, OBJ_TYPE_INT); 00432 00433 } 00434 00435 PmReturn_t 00436 nat_41_mbed_write(pPmFrame_t *ppframe) 00437 { 00438 00439 NativeClassInterface nci; 00440 return nci.method<int,I2C,int,const char*,int,bool,&I2C::write>(OBJ_TYPE_INT, 00441 OBJ_TYPE_INT, OBJ_TYPE_STR, OBJ_TYPE_INT, OBJ_TYPE_INT); 00442 00443 } 00444 00445 PmReturn_t 00446 nat_42_mbed___init__(pPmFrame_t *ppframe) 00447 { 00448 00449 NativeClassInterface nci; 00450 return nci.init<Timer>(); 00451 00452 } 00453 00454 PmReturn_t 00455 nat_43_mbed_start(pPmFrame_t *ppframe) 00456 { 00457 00458 NativeClassInterface nci; 00459 return nci.method<Timer,&Timer::start>(OBJ_TYPE_NON); 00460 00461 } 00462 00463 PmReturn_t 00464 nat_44_mbed_stop(pPmFrame_t *ppframe) 00465 { 00466 00467 NativeClassInterface nci; 00468 return nci.method<Timer,&Timer::stop>(OBJ_TYPE_NON); 00469 00470 } 00471 00472 PmReturn_t 00473 nat_45_mbed_reset(pPmFrame_t *ppframe) 00474 { 00475 00476 NativeClassInterface nci; 00477 return nci.method<Timer,&Timer::reset>(OBJ_TYPE_NON); 00478 00479 } 00480 00481 PmReturn_t 00482 nat_46_mbed_read(pPmFrame_t *ppframe) 00483 { 00484 00485 NativeClassInterface nci; 00486 return nci.method<float,Timer,&Timer::read>(OBJ_TYPE_FLT); 00487 00488 } 00489 00490 PmReturn_t 00491 nat_47_mbed_read_ms(pPmFrame_t *ppframe) 00492 { 00493 00494 NativeClassInterface nci; 00495 return nci.method<int,Timer,&Timer::read_ms>(OBJ_TYPE_INT); 00496 00497 } 00498 00499 PmReturn_t 00500 nat_48_mbed_read_us(pPmFrame_t *ppframe) 00501 { 00502 00503 NativeClassInterface nci; 00504 return nci.method<int,Timer,&Timer::read_us>(OBJ_TYPE_INT); 00505 00506 } 00507 00508 PmReturn_t 00509 nat_49_mbed___init__(pPmFrame_t *ppframe) 00510 { 00511 00512 #if defined(TARGET_KL25Z) 00513 NativeClassInterface nci; 00514 return nci.init<TSISensor>(); 00515 #endif 00516 00517 } 00518 00519 PmReturn_t 00520 nat_50_mbed_readPercentage(pPmFrame_t *ppframe) 00521 { 00522 00523 #if defined(TARGET_KL25Z) 00524 NativeClassInterface nci; 00525 return nci.method<float,TSISensor,&TSISensor::readPercentage>(OBJ_TYPE_FLT); 00526 #endif 00527 00528 } 00529 00530 PmReturn_t 00531 nat_51_mbed_readDistance(pPmFrame_t *ppframe) 00532 { 00533 00534 #if defined(TARGET_KL25Z) 00535 NativeClassInterface nci; 00536 return nci.method<uint8_t,TSISensor,&TSISensor::readDistance>(OBJ_TYPE_INT); 00537 #endif 00538 00539 } 00540 00541 /* Native function lookup table */ 00542 pPmNativeFxn_t const usr_nat_fxn_table[] = 00543 { 00544 nat_placeholder_func, 00545 nat_01_mbed___init__, 00546 nat_02_mbed_write, 00547 nat_03_mbed_read, 00548 nat_04_mbed___init__, 00549 nat_05_mbed_read, 00550 nat_06_mbed___init__, 00551 nat_07_mbed_read, 00552 nat_08_mbed_write, 00553 nat_09_mbed_input, 00554 nat_10_mbed_output, 00555 nat_11_mbed___init__, 00556 nat_12_mbed_read_u16, 00557 nat_13_mbed_read, 00558 nat_14_mbed___init__, 00559 nat_15_mbed_write_u16, 00560 nat_16_mbed_write, 00561 nat_17_mbed_read, 00562 nat_18_mbed___init__, 00563 nat_19_mbed_write, 00564 nat_20_mbed_read, 00565 nat_21_mbed_period, 00566 nat_22_mbed_period_ms, 00567 nat_23_mbed_period_us, 00568 nat_24_mbed_pulsewidth, 00569 nat_25_mbed_pulsewidth_ms, 00570 nat_26_mbed_pulsewidth_us, 00571 nat_27_mbed___init__, 00572 nat_28_mbed_baud, 00573 nat_29_mbed_readable, 00574 nat_30_mbed_writeable, 00575 nat_31_mbed_putc, 00576 nat_32_mbed_puts, 00577 nat_33_mbed_getc, 00578 nat_34_mbed___init__, 00579 nat_35_mbed_format, 00580 nat_36_mbed_frequency, 00581 nat_37_mbed_write, 00582 nat_38_mbed___init__, 00583 nat_39_mbed_frequency, 00584 nat_40_mbed_read, 00585 nat_41_mbed_write, 00586 nat_42_mbed___init__, 00587 nat_43_mbed_start, 00588 nat_44_mbed_stop, 00589 nat_45_mbed_reset, 00590 nat_46_mbed_read, 00591 nat_47_mbed_read_ms, 00592 nat_48_mbed_read_us, 00593 nat_49_mbed___init__, 00594 nat_50_mbed_readPercentage, 00595 nat_51_mbed_readDistance, 00596 };
Generated on Tue Jul 12 2022 21:25:46 by
1.7.2
