|
Kirika Newbie
Joined: 16 Feb 2004 Posts: 5
|
Posted: Sat Oct 23, 2004 10:07 pm
Real time tracking with ACExplorer |
Howdy. I'm trying to use the tracking protocol documentation from http://www.zuggsoft.com/ac/tracking.htm to get tracking to show multiple locations, and I'm having a couple of problems.
1. The protocol documentation seems to be missing a 32 bit value at the end of the structure passed over the wire. Is the structure simply padded to an eight byte boundary, or does the last value do something?
2. What values should be sent to get AC Explorer to show "AC Not Running"?
3. In order to track multiple things at once from the same machine, I'm using multiple port numbers and including a port number with the ip address in the UI (i.e. "hostname:4061" for the second object). This works until you click away from a tracking entry that has an explicit port, at which point AC Explorer disables that tracking item. Oddly enough, clicking away from the entry with the default port is fine, and if I stop AC Explorer, go into ACExplorer.ini and enable all the tracking items, and restart, it tracks all of them just fine.
Thanks! |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Sun Oct 24, 2004 9:04 pm |
I'm afraid I'll have to look at the source code to answer these questions, which I won't be able to do until I get back into town on Tuesday and have access to my main computer.
I think (2) just depends upon sending back valid AC location data. In other words, the Block needs to look like a valid location block in Asheron's Call, the X,Y,Z,H values need to be valid floating point values, etc.
(3) might be a bug that I can't fix easily. I've never tried running multiple ACX Servers with different port numbers. I think it might need actual different hostnames or IP addresses since it was originally designed for tracking different friends who would have different IP addresses. |
|
|
|
Kirika Newbie
Joined: 16 Feb 2004 Posts: 5
|
Posted: Mon Oct 25, 2004 4:59 am |
Thanks for the reply. I'm in no rush.
|
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Thu Oct 28, 2004 4:48 pm |
OK, I took a look at the source code and here is what I found:
The command structure as documented in the help file is still correct. AC Explorer Client sends a CMD VERS INTERVAL data to ACX Server where CMD is byte 0 and VERS is a Word value that is actually ignored, and INTERVAL is a Word value that gives the interval in seconds for updating the location. Sending a CMD of 1 turns off tracking.
Then, ACX Server, at the INTERVAL indicated by the client, sends the following data:
BLOCK: DWORD
X: SINGLE
Y: SINGLE
Z: SINGLE
H: SINGLE
STAT: BYTE
The BLOCK is the Asheron's Call Block value. X,Y,Z are the coordinates as Single-precision floating point values. H is the Heading as a Single-precision floating point value. STAT indicates the ACX Server status: 0 means its running, 1 means its Waiting (received a CMD of 1), 2 means the status is undefined, and 3 means the server is not calibrated.
Then yes, Windows pads this to a 32-bit boundry. So, there are 3 more ZERO bytes at the end of this that are ignored.
So, I think that answers both question (1) and question (2). (3) looks like a bug, but since AC Explorer has been replaced by zExplorer, I'm afraid that there are no plans to fix this any time soon, so try using a workaround. One possible workaround is to go into your Windows Hosts file and define multiple computer names that all point to the same 127.0.0.1 IP address. This might fool AC Explorer into thinking you are connecting to different hosts. |
|
|
|
Kirika Newbie
Joined: 16 Feb 2004 Posts: 5
|
Posted: Thu Oct 28, 2004 7:19 pm |
Excellent. I'll try the workaround with hosts.txt and if that doesn't work, I'll just limit tracking to two objects, which is not so bad even with the current behavior.
Thank you for looking this up. |
|
|
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|