Comments (3)
Does this library supports TK-102 clones or only original Xexun one? Difference is quite basic.
At this moment it only supports the Xexun TK102 and I'm working on TK102-2 support. Since the latter has a much different syntax I'm changing the logic to make it easy to support more devices without the need to rewrite the main logic each time. It will have auto detection and a setting to force a certain (or set of) syntax(s).
I'm not sure if my trackers are clones. When I bought them they were labeled as Xexun's, but the IMEI check fails.. Considering the lack of proper documentation for both originals and clones, I don't think it really matters. Maybe I should not explicitly refer to Xexun in the module description.
Original Xexun (and some limited number of clones) can send datagram via both HTTP and UDP. Most clones supports only UDP. So, my first question is -- can this library be used to listen to UDP datagrams?
For now it only supports TCP, but I can look into UDP if you like. Can you provide documentation or examples of the device's communication protocol?
For example, my TK-102 clone only sends some "binary-grabage-welcome-data" (I can provide examples) and then waits for proper reply sent back from the server. If reply comes out, only then it sends geo data. If there is no reply at all or reply from the server is incorrect, it breaks connections and sends out nothing else.
So, my second question is -- does this library supports such reply-required listening?
It doesn't, but I'm very curious about this. Please tell me more!
If any of my question is answered "no", is there any change, this library will support such traffic / listening / TK clones in future releases?
I would be happy to add support for more devices, provided I won't have to spend weeks browsing forums for vague untested syntax descriptions. :)
from nodejs-tk102.
Since, this turns out to be a private discussion, not a general issue, I've sent reply directly to your e-mail address, found at your website. Thanks and cheers.
from nodejs-tk102.
No problem, @trejder. I post my reply here too, it may be of interest to those who follow this project.
I have been digging through TK and related tracker manuals the last couple of days and some indeed mention UDP or even HTTP, but without instructions about serverside implementation, and later on they turn out to support TCP. I consider those one of the many errors by their authors.
It almost seems like each tracking device has its own communication protocol. All the different firmware versions, hardware revisions, clone manufacturers, they make each individual device nearly unique! I think it is impossible to support all of them.
Now I'm only talking about TK102, for TK102-2 it gets worse. I now have both trackers because I want a tracker that reports the battery status to the server. My NodeJS module fully supports the specific TK102 I own, but the TK102-2 sends a much different data string (tcp). Compare this:
TK102:
sms: t030s002n123456
1203292316,0031698765432,GPRMC,211657.000,A,5213.0247,N,00516.7757,E,0.00,273.30,290312,,,A*62,F,imei:123456789012345,123
TK102-2:
sms: #fix#030s#002n#123456#
#353512345678905##1#0000#AUT#01#2040081234ab9c#510.123400,E,5211.012300,N,0.00,356.60#260313#140227.000##
And yes, there is no battery voltage indication in that string! So my TK102-2 is a bad clone. And it gets worse, when data is transmitted to my server the latitude/longitude are often just 0000.000000 and it leaves the data connection open with the server, draining the battery.
I'm going to build my own device (Raspberry Pi or Arduino), write a Node.js module for it and eventually stop work on the current 'tk102' module. It's a nice thought to support all devices, but also a nightmare to proof it.
This also means I have to change my earlier statement about supporting more devices: The module tk102
will NOT get support for more clones and hardware revisions, including the TK102-2.
I will continue work for Node.js compatibility and bug fixes.
from nodejs-tk102.
Related Issues (20)
- Not an Issue - Newby Question HOT 2
- I can't do real world testing anymore
- Trace: { [Error: uncaught exception] HOT 3
- Unreadable data HOT 24
- Add log event for debug and monitoring
- Validate GPRMC checksum
- Support for TK103? HOT 4
- support for GPS103A? HOT 14
- Guide for Gps JV200 Device Tracker HOT 1
- Licence HOT 4
- Unreadable data HOT 2
- Package is deprecated HOT 1
- don't parse GPS data TK102b ! HOT 1
- question about methods to secure HOT 4
- Refusing to install tk102 as a dependency of itself HOT 16
- Please, change fixGeo function HOT 1
- Support TK102-2 HOT 1
- Add chaining
- Error handling HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nodejs-tk102.