kellyschrock / solex-cc Goto Github PK
View Code? Open in Web Editor NEWLicense: Apache License 2.0
License: Apache License 2.0
Make a UDP config page on the UI that sets various UDP params.
Would be handy to have a hook for a configuration page provided by a worker for doing whatever sort of configuration or other things a worker might need to do.
Seems like the message_dialog
widget on start_screen doesn't send a status back to the worker. My own implementation failed, and it seems also that the example:
https://github.com/kellyschrock/solexcc-start-here/blob/master/examples/ui/start_panel/worker.js
Is not working properly. Pressing the ok button in the message_dialog does not return the "my_dialog_ok" message back to worker.js.
The display_dialog
widget works, however.
Provide a set of logging functions in ATTRS for workers, so that a worker can do this to print to the console:
ATTRS.log(ATTRS.id, "Some message");
Add a log_workers
setting to the dispatcher that can take a list of worker IDs and update dynamically, like this:
my_worker,my_other_worker
Whenever a worker calls ATTRS.logd()
, its output will only appear on the console if its ID is part of the log_workers
list, or if log_workers
is empty.
I could not find a way to send speech messages from a START_SCREEN worker. Eg
ATTRS.api.WorkerUI.sendSpeechMessage(ATTRS, "my text", ATTRS.api.WorkerUI.SpeechType.TEXT);
doesnt produce any output.
Speech output from a SCREEN_FLIGHT worker UI works fine.
It's a PITA to have every worker deal with its own configuration for simple configuration things for paths, ports, etc. Make a config panel on the UI for workers to make them easy to configure.
Make a Network Configuration page that updates the relevant files on the Pi.
So that a GCS can match a worker response to an earlier worker request, include the following fields in every response coming from a worker's onGCSMessage()
function:
source_id
: ID of the incoming messageworker_id
: ID of the worker the message was sent to and processed by.I have configured solexcc from scratch. As soon as the Solex app tries to connect to the web server, the solexcc server crashes with the following messages:
/home/apsync/solexcc/app/util/dispatch.js:837
if (filter.length === 0 || filter.indexOf(workerId) >= 0) {
^
ReferenceError: workerId is not defined
at onWorkerLog (/home/apsync/solexcc/app/util/dispatch.js:837:51)
at ChildProcess.<anonymous> (/home/apsync/solexcc/app/util/dispatch.js:985:13)
at emitTwo (events.js:126:13)
at ChildProcess.emit (events.js:214:7)
at emit (internal/child_process.js:772:12)
at _combinedTickCallback (internal/process/next_tick.js:141:11)
at process._tickCallback (internal/process/next_tick.js:180:9)
apsync@apsync:~/solexcc$
Speech messages send with
ATTRS.api.WorkerUI.sendSpeechMessage(ATTRS, "this is a test", ATTRS.api.WorkerUI.SpeechType.TEXT);
on the flight screen are always repeated twice. Same message on the start screen is correctly spoken only once. Edit: this is also the case for error messages.
This error is new in Solex 1.9.7.
The current only way of talking back and forth between a GCS and SolexCC is over websockets and HTTP commands. This works fine on WiFi, but WiFi isn't what the vast majority of people use for connecting to drones.
So a packet interface is needed that takes up less bandwidth and can operate over the mavlink connection.
The v2_extension
message could be used as the carrier for these packets, which could be parsed out into something representing commands to (and responses from) SolexCC to the GCS.
The general idea would be to eliminate the HTTP layer altogether, so this could work over a connection to an RFD900x or something. This would eliminate the overhead of websocket and POST
calls to control extra hardware/features on the drone.
When I press the "Restart Service" button in the Solex-CC workers panel at http://10.0.1.128:3000/ in the browser, I get the following error:
GET /sys/restart 200 3ms - 29b
/home/apsync/solex-cc/app/routes/dispatcher.js:360
process.send({id: "restart_system" });
^
TypeError: process.send is not a function
at Timeout._onTimeout (/home/apsync/solex-cc/app/routes/dispatcher.js:360:17)
at ontimeout (timers.js:482:11)
at tryOnTimeout (timers.js:317:5)
at Timer.listOnTimeout (timers.js:277:5)
apsync@apsync:~/solex-cc$
There should be something in place for worker configuration. Suppose you have a worker that listens to RC inputs and sends
messages to other workers in response to them. You would want to be able to configure this worker to do that without having to
write actual code to do it. And you would want to do that with a UI, not by dicking around with some kind of config file and
pushing it manually. Come up with something for this.
I have my workers part of a github repository and wanted them to be linked to the solex-cc/workers directory. In that case the workers are not recognized anymore.
ls -l
drwxr-xr-x 4 apsync apsync 4096 Dez 2 14:37 camera
drwxr-xr-x 3 apsync apsync 4096 Nov 21 10:33 phasers
-rw-r--r-- 1 apsync apsync 8350 Apr 10 2019 README.md
lrwxrwxrwx 1 apsync apsync 54 Dez 1 08:42 start_panel -> /home/apsync/redtail/tools/solexcc_workers/start_panel # here the worker start_panel is not found
drwxr-xr-x 3 apsync apsync 4096 Apr 10 2019 toast
drwxr-xr-x 3 apsync apsync 4096 Sep 21 16:16 video
in this case the worker startup_panel
is not recognized.
Create a .service
file to enable Systemd control of SolexCC.
Provide an API for for workers to make files available for download via a URL.
Rather than requiring a restart, activate workers and start them as soon as they're installed if possible.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.