Comments (2)
I'm not a matlab person so I don't really know what is S-Function Builder.
So I googled it. I guess it's something like exported C++ functions to matlab code, right?
Stopping pwm from the destructor of GPIO::PWM
class is the design from the original python library(https://github.com/NVIDIA/jetson-gpio). We want preserve the original design as far as we can.
Here's my suggestion:
Why don't you just keep the PWM object and NOT destruct it?
something like this:
Header file
extern void init();
extern void start(double dutyCycle);
extern void cleanup(); // should be called when you don't need pwm anymore.
CPP file
static GPIO::PWM* pwm = nullptr;
static bool is_started = false;
void init()
{
if (pwm == nullptr)
{
// initialization routine here...
// constrcut PWM object
pwm = new GPIO::PWM(/* ..... */)
// std::cout << "[DEBUG] pwm object constrcuted" << std::endl;
}
}
void start(double dutyCycle)
{
if (pwm == nullptr)
{
init();
}
if(is_started)
{
pwm->ChangeDutyCycle(dutyCycle);
}
else
{
pwm->start(dutyCycle);
is_started = true;
}
}
void cleanup()
{
if (pwm == nulptr)
return;
is_started = false;
delete pwm;
pwm = nullptr;
// std::cout << "[DEBUG] pwm object destructed" << std::endl;
// other cleanup routine here...
}
I exported only 3 functions here,
but you can just export all of the public methods of GPIO::PWM
class like this if you want.
If you can export the object itself, the answer will be much simpler, but I guess matlab doesn't support it.
from jetsongpio.
Thank you for your quick response.
This works like I hoped it would,
The trick with the nullptr solved my problem,
Thank you very much!
from jetsongpio.
Related Issues (20)
- Improve PWM part of the API document
- GPIO::remove_edge_detect function: add warning for no event found HOT 1
- Update sysfs pwm dir
- Add more sample codes
- Add prerequisites info to the installation guide HOT 1
- Add pre-built binaries to release page
- How to control Rx, Tx pin on Jetson Nano? HOT 1
- orin nano run error HOT 1
- No support for PQ.02 for Jetson Orin NX
- Jetson Orin Nano: cannot find GPIO chip 2200000.gpio HOT 11
- Jetson Orin GPIO Chip cannot find Jetpack 6
- Support for Jetson Orin NX
- Support for Nano and Xavier NX HOT 2
- Error compiling with CmakeLists HOT 4
- "When importing both JetsonGPIO.h and cuda_runtime.h at the same time, a compilation error occurs." HOT 4
- Docker Image CI fails HOT 1
- Can I reboot the nano system through GPIO? HOT 1
- Adding Compat models for Jetson Orin HOT 3
- Move to gpio character device implementation HOT 1
- Divide README into multiple documents for readability
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jetsongpio.