volaser / volaser-app-old Goto Github PK
View Code? Open in Web Editor NEWMobile app for controlling the volaser
Mobile app for controlling the volaser
Bluetooth communication is very unreliable, with multiple disconnects to the motor and laser occurring during the span of a single measurement. This makes a simple operation take upwards of an hour. It's unclear if the problem is in the app or results from laser/motor hardware.
Tutorial mode would be a sequence of screens that would walk the user through the measurement one step at a time. It should have forwards and backwards buttons, with each step annotated with a diagram. The sequence nominally is
When the app starts it loads the save settings from asyncstorage (evidenced by the logging console), but these values do not show up in the settings page, or anywhere else they are referenced.
Currently, the buttons on the MEASURE page do not coincide with the labels in the bottom half of the page (Ex, Probe Depth gives sludge depth and tank depth gives empty depth). I think it would be easiest to label these both the same thing, and my suggesting is depth at starting position and depth and measuring position (where the measuring position is where the area measurement will be taken).
Add a place to take a picture on the app. It would be helpful to take a picture of the laser when it is set up over the tank, in starting position. This would also make replicating the readings at a later date easier.
There should be the option to sort and group measurements by name or location.
Currently each area measurement takes on the order of a minute. It would be good to have some visual feedback in the app indicating that the measurement is progressing and at what rate.
The area outline plot is an SVG image. This should intelligently rescale itself based on the content, so that the figure zooms in our out if the outline is small or large.
Change the data output format to be CSV, according to the attached table. This won't include the outline or other complex data like images.
When uploading the data: after seeing the work that is being done here at CDD, I think it would be best that the data be uploaded in excel format, that way it can be easily incorporated to the excel sheets that are already made. Also, the surveys for the households when measuring are done using KOBO toolbox, which uploads all of the data in a nice excel file (and there is a lot of data in the surveys). It is easier to add the laser data to the survey data, considering that there is less data for the laser as there is from the survey.
It would be good to have the DEV page next to the MEASURE page, as while putting the laser
in place, I am constantly switching from one to the other. The data and settings pages are
rarely used when in the field.
The app should have a settings page where different physical offsets could be input, such as distance from probe to laser, and horizontal laser offset. Distance from probe to laser should also be saved with the data.
After a vertical movement of the winch, the app should instruct the laser to make another depth measurement, so it can tell if the laser is too close to the sludge. If it is within some critical threshold (perhaps 10 cm), the downwards movement should be disabled.
The export all data feature creates a json file with a list where each data point is the value of a key 'item'. Instead it should be a list of just the values
Example:
[
{
"item": {
"name": "Test",
"location": {
"speed": 0,
"heading": 0,
"accuracy": 18.63599967956543,
"longitude": 8.5052719,
"altitude": 513.9000244140625,
"latitude": 47.4182443
},
"time": "Tue Oct 23 2018 11:46:14 GMT+0200 (CEST)",
"depth": 0,
"area": 0,
"volume": 0,
"outline": []
},
"index": 0
},
{
"item": {
"name": "Test2",
"location": {
"speed": 0,
"heading": 0,
"accuracy": 18.63599967956543,
"longitude": 8.5052719,
"altitude": 513.9000244140625,
"latitude": 47.4182443
},
"time": "Tue Oct 23 2018 11:46:17 GMT+0200 (CEST)",
"depth": 0,
"area": 0,
"volume": 0,
"outline": []
},
"index": 1
},
{
"item": {
"name": "Test3",
"time": "Thu Oct 25 2018 14:34:48 GMT+0200 (CEST)",
"probeHeight": 0,
"emptyDepth": 0,
"probeDepth": 0,
"areaOutline": [],
"area": 0,
"emptyVolume": 0,
"sludgeVolume": 0,
"location": {
"speed": 0,
"heading": 0,
"accuracy": 18.86199951171875,
"longitude": 8.5091939,
"altitude": 568.5999755859375,
"latitude": 47.4096154
}
},
"index": 5
}
]
should be
[
{
"item": {
"name": "Test",
"location": {},
"time": "Tue Oct 23 2018 11:46:14 GMT+0200 (CEST)",
"depth": 0,
"area": 0,
"volume": 0,
"outline": []
},
"index": 0
},
{
"item": {
"name": "Test2",
"location": {},
"time": "Tue Oct 23 2018 11:46:17 GMT+0200 (CEST)",
"depth": 0,
"area": 0,
"volume": 0,
"outline": []
},
"index": 1
},
{
"item": {
"name": "Test3",
"time": "Thu Oct 25 2018 14:34:48 GMT+0200 (CEST)",
"probeHeight": 0,
"emptyDepth": 0,
"probeDepth": 0,
"areaOutline": [],
"area": 0,
"emptyVolume": 0,
"sludgeVolume": 0,
"location": { }
},
"index": 5
}
]
should be
[
{
"name": "Test",
"location": {},
"time": "Tue Oct 23 2018 11:46:14 GMT+0200 (CEST)",
"depth": 0,
"area": 0,
"volume": 0,
"outline": [],
"index": 0
},
{
"name": "Test2",
"location": {},
"time": "Tue Oct 23 2018 11:46:17 GMT+0200 (CEST)",
"depth": 0,
"area": 0,
"volume": 0,
"outline": [],
"index": 1
},
{
"name": "Test3",
"time": "Thu Oct 25 2018 14:34:48 GMT+0200 (CEST)",
"probeHeight": 0,
"emptyDepth": 0,
"probeDepth": 0,
"areaOutline": [],
"area": 0,
"emptyVolume": 0,
"sludgeVolume": 0,
"location": {},
"index": 5
}
]
Measured values that have not yet been logged as data are cleared when the app restarts. This has resulted in loss of data.
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.