-
Notifications
You must be signed in to change notification settings - Fork 1
Future Work
Peter Corke edited this page Sep 4, 2018
·
5 revisions
STL has been developed using MATLAB 2018bPRE under MacOS High Sierra.
- 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. - 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. - The timer code compiles under Linux now but hasn't been tested.
- Web server is starting to take shape. GET with templates works. Next steps are returning arbitrary data, retrieving GET arguments and handling POST requests. See design and install details on this wiki.
- 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.
- Put the webserver into its own thread called 'WEB'
Future development possibilities include:
- Thread priority
- Handling globals
- 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
- Wrap a simple comms channel using JSON over TCP/IP.
- Provide integration with a local webserver, have web CGI scripts interact with STL threads. A bit like Flask for Python.
Some of these likely bang up against limitations in MATLAB Coder and will not be achievable, eg. JSON functions do not (yet) support code generation.