This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
android:tracker:trackerstories [2014/07/01 19:35] mikeclapp [Story 1] |
android:tracker:trackerstories [2018/08/09 22:59] (current) mikeclapp [Story 6 SimpleTrack Simplification] |
||
---|---|---|---|
Line 19: | Line 19: | ||
==== Program Functions ===== | ==== Program Functions ===== | ||
* GPS tracking - collecting points for upload as tracks to the server. We don't need to represent these graphically in the app. A simple moving point count for collection confirmation will be sufficient | * GPS tracking - collecting points for upload as tracks to the server. We don't need to represent these graphically in the app. A simple moving point count for collection confirmation will be sufficient | ||
- | * Motion sensing - We need to use the built in g-sensor to turn off GPS tracking after a specified amount of time and restart tracking upon movement. This is to minimize useless points and save battery. Battery usage is a major consideration of this program. A goal should be to run for 12.5 hours on a new phone without charge. The rational behind it is that batteries age and we want to still be running 10 hours after a year. | + | * Motion sensing - We need to use the built in g-sensor to turn off GPS tracking and dim the screen after a specified amount of time (under settings) and restart tracking upon movement. This is to minimize useless points and save battery. Battery usage is a major consideration of this program. A goal should be to run for 12.5 hours on a new phone without charge. The rational behind it is that batteries age and we want to still be running 10 hours after a year. |
* Access Server track uploads and the deferred uploader. Connectivity is not assured with this device. | * Access Server track uploads and the deferred uploader. Connectivity is not assured with this device. | ||
* Compass Offset - Compensating for mounting direction variations. | * Compass Offset - Compensating for mounting direction variations. | ||
* Persistence - Ideally this program would load on boot and stay running. The devices this program is intended for are probably the only program that's run (that's not a google service). | * Persistence - Ideally this program would load on boot and stay running. The devices this program is intended for are probably the only program that's run (that's not a google service). | ||
- | * | + | |
+ | |||
+ | === Settings and AGTEK Access === | ||
+ | |||
+ | Here's the current functions I can imagine under settings | ||
+ | |||
+ | * Upload frequency setting in minutes (default 10 minutes) | ||
+ | * Motion Sensor timeout (default 3 minutes?) | ||
+ | * Motion Sensor enable/disable (default enabled) | ||
+ | * Test Connection function | ||
+ | |||
+ | AGTEK Access (cloud) option displays the files to uploaded/Sent screen | ||
+ | |||
+ | |||
+ | ==== Screen Description ===== | ||
+ | |||
+ | {{:android:tracker:agtrack_main_screen.png?300|}} | ||
+ | |||
+ | |||
+ | * Tracker Name - The friendly name given to the Tracker at first login. Pressing this name should allow editing of the name, show the unique unfriendly name used by the server and probably should contain any credentials we need to change authentication. | ||
+ | * Status - No GPS, Collecting, Uploading. This should probably flash to show it's working. Something simple to show it's working. | ||
+ | * Started - The last time the tracker was started - Does it ever stop? Should it? | ||
+ | * Points Collected - The total number of points collected since the program was started | ||
+ | * Points Uploaded - The number of points uploaded | ||
+ | * Stopped Time - The amount of time where the motion sensor has stopped the collection of points. | ||
+ | |||
===== Use Case ===== | ===== Use Case ===== | ||
Line 36: | Line 61: | ||
With all of these tracking devices my best guess is the customer should configure them to run from a single user account. The benefit is that all access points are automatically added to all devices with PINS so adding additional access points should confer automatic connections. | With all of these tracking devices my best guess is the customer should configure them to run from a single user account. The benefit is that all access points are automatically added to all devices with PINS so adding additional access points should confer automatic connections. | ||
+ | ===== Story 2 ===== | ||
+ | |||
+ | Story 2 is small refinements after having run the first version for months.The additions are: | ||
+ | |||
+ | * Add battery percentage remaining reporting (hourly) to server upload statistics for remote monitoring | ||
+ | * The capability of adding a vehicle name on the tracker itself. I have it at the top of the screen right now and think that a text box with autocomplete might be the best method of entry. Ideally the autocomplete could be populated by machines currently available on the server and display as the user types/taps in the name. Putting in a new name would add that vehicle to the list. | ||
+ | * The capability to set the project assigned. Setting this is not a requirement of the user and ideally programs that can set this would override this setting. (Am I creating something too complex here?). Ideally the tracker would never prompt for project list but instead would attempt to login to update the list only if selected on the tracker. | ||
+ | |||
+ | The layout below is a suggestion. I made the program icon consistent and moved the AGTEK logo (which was a good idea) down below. I didn't put the project next to the Alias/Name because I was concerned about accidentally picking the wrong one. I can be talked out of that though. | ||
+ | |||
+ | {{:android:tracker:simpletrackmain.png?200|}} | ||
+ | |||
+ | |||
+ | ===== Story 3 ===== | ||
+ | |||
+ | * Phone persistence. I'm not sure this is the correct wording but some apps like Facebook, Yahoo, etc. are always running in the background. We may have to add a stop tracking somewhere but I'd like the tracking to happen when the phone is turned on and moving. The motion sensor will hopefully limit the amount of track points sent while charging or sitting still. | ||
+ | |||
+ | |||
+ | ===== Story 4 ===== | ||
+ | |||
+ | * Showing Load counts on the main screen | ||
+ | |||
+ | We have talked about distributing the load counting to the individual trackers to minimize loads on the server. It turns out there's another potential reason. Operators don't necessarily like to be tracked but do have to provide load counts at the end of the day. By providing the load count on the screen there's some mitigation. | ||
+ | |||
+ | Obviously we can only do this if someone specifies a cycle line for the tracker and we should leave the cycles blank (don't show a number or the word loads) when no cycle line exists. Cycles reported by the trackers (statistics?) are uploaded to the server. Assigning the cycle line is done through TrackManager (could be Trackwork later but I think it's unlikely). | ||
+ | |||
+ | |||
+ | {{:android:tracker:simpletrackloads.png?300|}} | ||
+ | |||
+ | |||
+ | ===== Story 5 ===== | ||
+ | |||
+ | * Remote configuration | ||
+ | * Telemetry statistics | ||
+ | * Event Logs | ||
+ | |||
+ | A small story based on the first out-of-state permanently mounted (powered) sensors. Because these sensors have very little AGTEK interaction there's a desire to control and view more about the sensors programatically. | ||
+ | |||
+ | === Remote Configuration === | ||
+ | |||
+ | Previous installations were battery constrained and getting to the end of the third day was sometimes a challenge. Powering the sensor allows removing some of the compromises of the battery power. One such compromise was the upload frequency and it is sometime desirable to update faster than 5 minutes. We've added features like updating whenever the cycle line is crossed but setting the upload frequency faster and remotely is another. Along those lines being able to change/fix settings upon server contact. | ||
+ | |||
+ | Configuration items we should be able to set remotely are: | ||
+ | |||
+ | * Update Frequency - And allow for a faster frequency than 5 minutes. | ||
+ | * Motion Timeout - Allow change of timeout, disabling entirely, sensitivity (new, how do we represent this?) | ||
+ | * Automatic Start - Off/On | ||
+ | * **MJA - How to edit, in TM? Assume trigger off of vehicle and associated tracker.** | ||
+ | * Logging? | ||
+ | * **MJA - Part of configuration. One time checkbox, causes ST to upload. HOW? Send to email?** | ||
+ | * **MJA - Need to disable vehicles from TM. In edit vehicle. Prosed screen next.** | ||
+ | * {{:android:track:activevehicleproposal.png?200|}} | ||
+ | |||
+ | |||
+ | === Telemetry === | ||
+ | |||
+ | Items I can think of adding to the tracking are: | ||
+ | |||
+ | * Powered Yes/No | ||
+ | * Charging State | ||
+ | * Motion Sensor State (are we moving/Paused) | ||
+ | * **MJA - Proposal of viewing** | ||
+ | * {{:android:track:telemetryproposal.png?200|}} | ||
+ | |||
+ | |||
+ | === Logging === | ||
+ | |||
+ | Not being on site and having equipment moving means that figuring out why we're getting an error needs more information provided. For example we've had one scraper on Rummel SC1017 that has showed a "Paused" State on data collection while all the other equipment has been working fine. It has also had intermittent uploads where it will regularly upload and then not communicate for thirty minutes. A log of the state that is accessible remotely when it does start talking again might be helpful. There are also error codes we get on the main SimpleTrack screen that could probably be pushed further back into the interface if we could get them remotely. Reading them on screen and capturing them on site is not really practical and is better suited to be viewed here at AGTEK for problem diagnosis. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Story 6 SimpleTrack Simplification ===== | ||
+ | |||
+ | SimpleTrack started as a self-reporting G-ray replacement and evolved into a much more capable and cost-effective device than I had imagined. Over time it's acquired some additional complexity to add capability beyond being on a box on the roof and I believe we need to simplify what's there and split the functionality off into it's own application like truck tracking. | ||
+ | |||
+ | Things like load counts designed for human consumption aren't appropriate for box on the roof. | ||
+ | |||
+ | ==== Story 6 notes applicable as of SimpleTrack 1.28 8-9-2018 ==== | ||
+ | |||
+ | The UK experiment found two inexpensive phones they purchased to not have unique serial numbers. The 1.28 version gives the option of using the IMEI number instead. The default is still to use the shorter, more readable serial number but this gives the option to switch. The serial number "0123456789ABCDEF" has also been blacklisted and when encountered the default will go to IMEI instead. In the odd case that an IMEI doesn't exist with a blacklisted serial number, the system will generate a unique AG###### number that is persistent as long as the program is not uninstalled. The simpletrack bug # is 36. | ||
+ | |||
+ | ===== Story 7 Truck Tracking ===== | ||
+ | |||
+ | Truck tracker constraints | ||
+ | |||
+ | * Trucks are often for hire so using a box on the roof isn't optimal. You might not get it back | ||
+ | * The phones in trucker's pockets are of mixed operating systems. Accommodating background operations in IOS is one of the technical challenges | ||
+ | * Since the truck driver isn't an employee there's a need to avoid the conventional userid/password login | ||
+ | * Trucks carry varied loads throughout the day. Tagging the load means there's some sort of user interface required that's probably different than SimpleTrack. | ||
+ | * Reporting every 5 minutes is fine for on-site machinery but trucks have varying timeliness requirements. For example, knowing where a truck is in nearly real-time when approaching the job site or hot plant allows the foreman to make tactical adjustments based on his distance. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||