This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
trackwork:trackview [2016/11/16 01:54] mjallison [View Elements] |
trackwork:trackview [2017/01/18 17:34] (current) mjallison [Encoding and data] |
||
---|---|---|---|
Line 31: | Line 31: | ||
(Some of these are optional and some are required. Perimeter is optional, the view may be based on time. I can't imaging the list of tracks, project, company, or date/time as optional. Working time (not job hours) is inherently limited by the day assuming we have our terminology straight. There's two elements, the day the tracks occurred and any (optional) job hours. And the day the tracks occurred might be inferred from the tracks? I'll leave the guts to you on what makes sense. MC) | (Some of these are optional and some are required. Perimeter is optional, the view may be based on time. I can't imaging the list of tracks, project, company, or date/time as optional. Working time (not job hours) is inherently limited by the day assuming we have our terminology straight. There's two elements, the day the tracks occurred and any (optional) job hours. And the day the tracks occurred might be inferred from the tracks? I'll leave the guts to you on what makes sense. MC) | ||
+ | Revision note: 2017-01-13 | ||
+ | Previous versions of this page had specified "costCodeList" and "timezone". These have been moved to the | ||
+ | AgtekAccess server's definition of Project. The values are global for a project for all times. | ||
+ | ====== View search path ====== | ||
+ | Each view file (X.settings) exists on the "settings" subfolder of the project being used. Any view file named | ||
+ | "default.settings" is to be considered the default settings used when no other settings are appropriate. Files | ||
+ | named "YYYY-MM-DD.settings" are to be used for that day's tracks. Each day is calculated based on local midnight. | ||
+ | When a view-capable program starts it will first look for the day based settings (if it exists) to be used for | ||
+ | the current view settings. If the day based settings are not available (no file), the "default.settings" will be used. If there is no default.settings, the program will revert to using built in default values which are roughly: | ||
+ | * No defined work time | ||
+ | * No defined geofence | ||
+ | * All selected tracks participate in statistics | ||
+ | * All tracks are un-segmented (the entire track day is considered valid) | ||
+ | * No plan view is used | ||
+ | * No cycle lines are available | ||
+ | * Display time zone matches the locale of the computer | ||
====== Encoding and data ====== | ====== Encoding and data ====== | ||
The current thinking is to represent a view as a JSON encoded object. | The current thinking is to represent a view as a JSON encoded object. | ||
Line 50: | Line 66: | ||
* A segmented track, specified by the base track id, and a series of segments. | * A segmented track, specified by the base track id, and a series of segments. | ||
* Segments are composed of start/end times, and a descriptive text string. | * Segments are composed of start/end times, and a descriptive text string. | ||
- | * Segments which extend before the track start, or track end, may be clipped for display. | + | * Segments times must not exceed the start/end times of the parent track. Start of the first segment, and end of the last segment must also conform to the projects working time. Segments are adjust to fit within the track period and then the working time (if any). |
* Zero or more cycle-lines. For zero cycle lines, do not add the cycle-line field. | * Zero or more cycle-lines. For zero cycle lines, do not add the cycle-line field. | ||
* The only currently defined UI components are: | * The only currently defined UI components are: | ||
* cropTracks indicates that a track is cropped by the working time definitions. Non working values are not shown. | * cropTracks indicates that a track is cropped by the working time definitions. Non working values are not shown. | ||
- | * timeZone indicates what timezone the project is in and what timezone the times should display with. | ||
Line 66: | Line 81: | ||
"version": "1", | "version": "1", | ||
"userId": "joe-designer@example.com", | "userId": "joe-designer@example.com", | ||
+ | "application": "Platform SmartTrack 1.0" | ||
| | ||
"planfile": "access://Projects/My-Project/Job Files/example-plans.kmz", | "planfile": "access://Projects/My-Project/Job Files/example-plans.kmz", | ||
"geofence" : "true", | "geofence" : "true", | ||
- | "timezone" : "Americas/Los_Angeles" | ||
"perimeter": [ [37.1, -121.8, 90], [37.11, -121.81, 90.1]], | "perimeter": [ [37.1, -121.8, 90], [37.11, -121.81, 90.1]], | ||
- | "cycle-line": [ [37.1, -121.8, 90], [37.11, -121.81, 90.1]], | ||
"workTimes: { | "workTimes: { | ||
"clipStart": false, | "clipStart": false, | ||
Line 81: | Line 95: | ||
"clipEnd" : false | "clipEnd" : false | ||
}, | }, | ||
- | "tracks": [ { "id": "17" | + | "tracks": [ { "id": "-1", |
+ | "cycle-line": [ [37.1, -121.8, 90], [37.11, -121.81, 90.1]], | ||
+ | "notes": [ { "time" : 41000. "text": "Decided to order pizza" } ] | ||
+ | }, | ||
+ | { "id": "17" | ||
"segments": [ | "segments": [ | ||
{ "start": 28800, | { "start": 28800, | ||
"end" : 41400, | "end" : 41400, | ||
- | "text" : "Clay layer", | + | "label" : "Clay layer", |
"calcStats": true }, | "calcStats": true }, | ||
{ "start": 43080, | { "start": 43080, | ||
Line 93: | Line 111: | ||
}, | }, | ||
{ "id": "18", | { "id": "18", | ||
+ | "visible": false, | ||
"segments" : [ { "start": 28800, | "segments" : [ { "start": 28800, | ||
"end" : 41400, | "end" : 41400, | ||
Line 101: | Line 120: | ||
}, | }, | ||
{ "id": "19", | { "id": "19", | ||
- | "calcStats": false | + | "calcStats": false, |
+ | "label": "The entire track" | ||
} | } | ||
], | ], | ||
Line 118: | Line 138: | ||
* required field 'version', for this specification is '1' | * required field 'version', for this specification is '1' | ||
* required field 'userId', the Access user id of person creating this instance of the view. | * required field 'userId', the Access user id of person creating this instance of the view. | ||
+ | * highly suggested field 'application' indicating version of the generating program, e.g. "Android SmartPlan 1.2.1" | ||
* optional field 'planfile', a URI referring to a file usable for display of plan elements useful for track display. | * optional field 'planfile', a URI referring to a file usable for display of plan elements useful for track display. | ||
* optional field 'perimeter', an LLA line describing the job perimeter | * optional field 'perimeter', an LLA line describing the job perimeter | ||
- | * optional array 'cycle-line', applied to all tracks (without cl of their own), not used for project defaults. | ||
* optional field 'worktimes', an object consisting of two work-time segments (morning/afternoon), and booleans indicating if track data should be excluded from non-defined times. | * optional field 'worktimes', an object consisting of two work-time segments (morning/afternoon), and booleans indicating if track data should be excluded from non-defined times. | ||
* optional field 'tracks', an array of track-descriptors indicating tracks to display. | * optional field 'tracks', an array of track-descriptors indicating tracks to display. | ||
* optional field 'geofence', a boolean value indicating if the tracks should be geofenced wrt to the planfile. Lack of the field is equivalent to "false" for geofencing. | * optional field 'geofence', a boolean value indicating if the tracks should be geofenced wrt to the planfile. Lack of the field is equivalent to "false" for geofencing. | ||
- | * optional 'timezone', a standard timezone descriptor for the timezone to be used for displaying times | ||
Sub-objects: | Sub-objects: | ||
+ | * tracks, optional, may contain an entry for a series of tracks that may be viewed. If the track id is "-1" the contained data is to be applied to all other tracks unless they supply their own settings. Only supporting cycle-lines and notes right now. | ||
* work-time segments, an object consisting of two fields: | * work-time segments, an object consisting of two fields: | ||
* required 'start', The number of seconds since the start of the day | * required 'start', The number of seconds since the start of the day | ||
Line 137: | Line 157: | ||
* optional 'cycle-line', an array of lines specifying cycle lines only for this track. | * optional 'cycle-line', an array of lines specifying cycle lines only for this track. | ||
* optional 'calcStats', a boolean indicating if this track contributes to statistics. Absence of the attribute is equivalent of "true". | * optional 'calcStats', a boolean indicating if this track contributes to statistics. Absence of the attribute is equivalent of "true". | ||
+ | * optional 'label', a string value used to be a human readable note about the entire track. Absence of the attribute is equivalent of "" | ||
+ | * optional, 'visible', a boolean value indicating value of the track's visibility flag. Absence of this attribute is equivalent to "true". | ||
* segment, a sub object of a track, documenting different sub-track time segments | * segment, a sub object of a track, documenting different sub-track time segments | ||
* required, 'start', the time that the track segment starts, measured in seconds from the start of the day | * required, 'start', the time that the track segment starts, measured in seconds from the start of the day |