Keystone GPS System 2007 Era: Difference between revisions
m (Chanson moved page Keystone GPS System to Keystone GPS System 2007 Era) |
m (1 revision imported) |
(No difference)
|
Latest revision as of 12:58, 14 July 2023
NOTE This is the from the 2007 era Delphi based GPS system. The core of this remains in Keystone dispatch and integrates with the current cloud/.net versions of Keystone.
Background
Keystone GPS is completely written on the Keystone platform using Delphi and Interbase.
Pathway for a GPS Message
- GPS Modem Transmits Signal via Cellular Network Over Internet to Programmed IP Address
- Message Received by Device Server on Communications PC
- Message Passed to Device Aggregator on Communications PC
- Device Aggregator writes message to GPTSTATUS table
Major Software Components:
- Device Server
- Device Aggregator
Database Change:
- GPTSTATUS: Stores all GPS incoming data.
Hardware: Keystone GPS is compatible with both DataRemote and Bluetree systems.
Device Configuration
GPSCOMPANIES (string)
- Comma-separated list of companies containing trucks to be processed
ONJOBSTOPTIME (integer, default=6)
- Number of minutes truck must be stopped to be considered on-job (0=disabled)
USEGEOFENCING (boolean, default=False)
- True to automatically determine on-job and returned statuses based on GPS coordinates
USEODOMETER (boolean, default=True)
- True to obtain vehicle odometer reading from GPS device
- False to calculate straight-line distance from last valid GPS coordinate
USESERVERTIME (boolean, default=False)
- True to use the server time for incoming status messages
- False to use the time from the incoming status messages
VALIDLAT (float)
- The validation point's latitude(*)
VALIDLONG (float)
- The validation point's longitude(*)
VALIDRADIUS (float)
- The radius from the validation point(*)
(*)All incoming GPS coordinates within the validation radius are marked as valid coordinates, those outside the radius are marked as invalid but are still recorded.
GPTSTATUS
select * from gptstatus where truck_no='74' order by seq_no desc rows 1 to 100
STATUS_COL values:
1 Begin Load
2 End Load
3 Leave Plant
4 Arrive Job
5 Begin Pour
6 End Pour
7 Leave Job
8 Arrive Plant
9 In Service
10 Out of Service
11 Clock In
12 Clock Out
13 GPS Data
14 Pre-Ticket
STATUS_REASON values:
0 GPS Data
1 Manual Status
2 Auto Status
3 On-job based on stop time
4 On-job based on button
5 Loaded based on batch results received
6 Pre-ticketed load released
7 Geofence entered/exited
Queries
Driver Status Analysis:
SELECT S.driver_code, s.truck_no, status_datetime, STATUS_COL, cast(case status_col when 0 then 'Unknown' when 1 then 'Beg Load' when 2 then 'End Load' when 3 then 'To Job' when 4 then 'On Job' when 5 then 'Beg Pour' when 6 then 'End Pour' when 7 then 'Returning' when 8 then 'At Plant' when 9 then 'In Serv' when 10 then 'Out of Serv' when 11 then 'Trk Clock In' when 12 then 'Trk Clock Out' when 13 then 'Travel' when 14 then 'Pre-Ticket' when 15 then 'Driver Clockin' when 16 then 'Driver Clockout' end as char(20)) "Status", Status_reason "Stat Rsn", cast(case status_reason WHEN 0 THEN' gps' WHEN 1 THEN' manual' WHEN 2 THEN 'auto' WHEN 3 THEN 'onjob stop' WHEN 4 THEN 'onjob button'when 0 then 'Unknown' WHEN 5 THEN 'ld batch' WHEN 6 THEN 'pre tkt rls' WHEN 7 THEN 'geofence' WHEN 8 THEN 'custom' WHEN 9 THEN 'set order loc' ELSE 'Unknown' end as char(20)) "Reason", s.custom_status "Mode",cs.description "Disp. Mode" from gptstatus s left outer join ditcuststat cs on cs.custom_status=s.custom_status where status_datetime between :Begin and :End and ((s.status_col IN (0,1,8,9,10,11,12,15,16)) OR (s.custom_status<>0) ) Order by Driver_code,status_datetime