-
Notifications
You must be signed in to change notification settings - Fork 1
Future Work
Peter Corke edited this page Sep 19, 2018
·
5 revisions
STL has been developed using MATLAB 2018bPRE under MacOS High Sierra. Limited testing under Linux (raspberian), no testing under Windows.
- Deployment to Raspberry Pi is still a mess. PackNGo doesn't include the source files from the
stl
folder.examples/threads
has a Makefile that works once all the files are in place, see comments in that file. - PackNGo puts a critical include file
tmwtypes.h
in a folder whose name is host OS specific, for MacOS, that'sMATLAB_R2018b.app
. Makes it hard to create a generic Makefile. - Get this to work under Windows. The webserver seems to have support for WIN32.
Shorter term fixes needed:
Need to implement error return and 404 error if not response is generated by the users handler.Put the webserver into its own thread called 'WEB'- Add JSON support
Free web template resources
Shorter term fixes needed:
The timer code compiles under Linux now but hasn't been tested.- Can't make
dlsym
work to find the address of entry points under Linux. Surprisingly it works simply for MacOS. Have topopen
a call tonm
which is pretty horrible. Put all the individual STL functions into a single class as static methods. That gives what looks like a package namespace, eg. stl.log(). This is already done for webserver API. Packages are not supported by Coder.
Future development possibilities include:
- Thread priority
- Better handling of globals, ideally could pass structs as arguments to threads
Passing more complex arguments to threads, eg. structs- Add condition variables as an additional synchronization mechanism
- Support thread cancelation points
- Support thread exit, and getting that return value to the output of
thread_join
- Deallocate semaphores and mutexes
- Log file redirection to a file or a system logger
- Specify log file format
- Function to control error action, exit or carry on.
- Bound checking on all passed parameters, create/use an ASSERT macro
- Turn off warnings about infinite loops
- Put multiple thread definitions in the one file
- Functions to control debug level
Some of these will likely bang up against limitations in MATLAB Coder and will not be achievable, eg. JSON functions do not (yet) support code generation.