2013-01-13 13:19:27 +08:00
|
|
|
<?xml version='1.0' encoding='UTF-8'?>
|
2012-04-25 02:59:31 +08:00
|
|
|
|
2013-01-13 13:19:27 +08:00
|
|
|
<!DOCTYPE properties SYSTEM 'http://java.sun.com/dtd/properties.dtd'>
|
2012-04-25 02:59:31 +08:00
|
|
|
|
|
|
|
<properties>
|
|
|
|
|
2015-06-05 13:02:22 +08:00
|
|
|
<!-- SERVER CONFIG -->
|
|
|
|
|
|
|
|
<entry key='web.enable'>true</entry>
|
|
|
|
<!--<entry key='web.address'></entry>-->
|
|
|
|
<entry key='web.port'>8082</entry>
|
2015-06-13 14:15:42 +08:00
|
|
|
<!--<entry key='web.application'>../traccar-web/traccar-web.war</entry>-->
|
2015-06-05 13:02:22 +08:00
|
|
|
<entry key='web.new'>true</entry>
|
|
|
|
<entry key='web.path'>web</entry>
|
|
|
|
<entry key='web.mobile'>webm</entry>
|
|
|
|
|
|
|
|
<entry key='geocoder.enable'>false</entry>
|
|
|
|
<entry key='geocoder.type'>nominatim</entry>
|
|
|
|
<entry key='geocoder.url'>http://nominatim.openstreetmap.org/reverse</entry>
|
|
|
|
|
|
|
|
<!--<entry key='filter.enable'>true</entry>
|
|
|
|
<entry key='filter.limit'>3600</entry>
|
|
|
|
<entry key='filter.invalid'>true</entry>
|
|
|
|
<entry key='filter.zero'>true</entry>
|
|
|
|
<entry key='filter.duplicate'>true</entry>
|
|
|
|
<entry key='filter.distance'>50</entry>-->
|
|
|
|
|
|
|
|
<entry key='logger.enable'>true</entry>
|
|
|
|
<entry key='logger.level'>all</entry>
|
|
|
|
<entry key='logger.file'>target/tracker-server.log</entry>
|
|
|
|
|
2015-06-05 12:49:40 +08:00
|
|
|
<!-- DATABASE CONFIG -->
|
|
|
|
|
2015-01-29 11:01:53 +08:00
|
|
|
<!--<entry key='database.driverFile'>hsqldb.jar</entry>-->
|
2013-01-13 13:19:27 +08:00
|
|
|
<entry key='database.driver'>org.h2.Driver</entry>
|
2015-01-31 07:50:37 +08:00
|
|
|
<entry key='database.url'>jdbc:h2:./target/database</entry>
|
2013-01-13 13:19:27 +08:00
|
|
|
<entry key='database.user'>sa</entry>
|
|
|
|
<entry key='database.password'></entry>
|
2015-05-21 12:13:31 +08:00
|
|
|
<entry key='database.mock'>true</entry>
|
2015-06-18 10:46:57 +08:00
|
|
|
<entry key='database.checkTable'>traccar</entry>
|
2015-06-10 06:45:22 +08:00
|
|
|
|
2015-06-05 12:49:40 +08:00
|
|
|
<entry key='database.createSchema'>
|
|
|
|
CREATE TABLE user (
|
|
|
|
id INT PRIMARY KEY AUTO_INCREMENT,
|
|
|
|
name VARCHAR(1024) NOT NULL,
|
2015-06-10 03:29:27 +08:00
|
|
|
email VARCHAR(256) NOT NULL UNIQUE,
|
2015-06-17 05:25:28 +08:00
|
|
|
hashedPassword VARCHAR(1024) NOT NULL,
|
2015-06-06 19:18:49 +08:00
|
|
|
salt VARCHAR(1024) DEFAULT '' NOT NULL,
|
2015-06-05 12:49:40 +08:00
|
|
|
readonly BOOLEAN DEFAULT false NOT NULL,
|
|
|
|
admin BOOLEAN DEFAULT false NOT NULL,
|
|
|
|
map VARCHAR(1024) DEFAULT 'osm' NOT NULL,
|
|
|
|
language VARCHAR(1024) DEFAULT 'en' NOT NULL,
|
|
|
|
distanceUnit VARCHAR(1024) DEFAULT 'km' NOT NULL,
|
|
|
|
speedUnit VARCHAR(1024) DEFAULT 'kmh' NOT NULL,
|
|
|
|
latitude DOUBLE DEFAULT 0 NOT NULL,
|
|
|
|
longitude DOUBLE DEFAULT 0 NOT NULL,
|
|
|
|
zoom INT DEFAULT 0 NOT NULL);
|
|
|
|
|
|
|
|
CREATE TABLE device (
|
|
|
|
id INT PRIMARY KEY AUTO_INCREMENT,
|
|
|
|
name VARCHAR(1024) NOT NULL,
|
2015-06-10 03:29:27 +08:00
|
|
|
uniqueId VARCHAR(256) NOT NULL UNIQUE,
|
2015-06-05 12:49:40 +08:00
|
|
|
status VARCHAR(1024),
|
|
|
|
lastUpdate TIMESTAMP,
|
|
|
|
positionId INT,
|
|
|
|
dataId INT);
|
|
|
|
|
|
|
|
CREATE TABLE user_device (
|
|
|
|
userId INT NOT NULL,
|
|
|
|
deviceId INT NOT NULL,
|
2015-06-10 03:29:27 +08:00
|
|
|
`read` BOOLEAN DEFAULT true NOT NULL,
|
|
|
|
`write` BOOLEAN DEFAULT true NOT NULL,
|
2015-06-05 12:49:40 +08:00
|
|
|
FOREIGN KEY (userId) REFERENCES user(id) ON DELETE CASCADE,
|
|
|
|
FOREIGN KEY (deviceId) REFERENCES device(id) ON DELETE CASCADE);
|
|
|
|
|
|
|
|
CREATE INDEX user_device_user_id ON user_device(userId);
|
|
|
|
|
|
|
|
CREATE TABLE position (
|
|
|
|
id INT PRIMARY KEY AUTO_INCREMENT,
|
|
|
|
protocol VARCHAR(1024),
|
|
|
|
deviceId INT NOT NULL,
|
|
|
|
serverTime TIMESTAMP NOT NULL,
|
|
|
|
deviceTime TIMESTAMP NOT NULL,
|
|
|
|
fixTime TIMESTAMP NOT NULL,
|
|
|
|
valid BOOLEAN NOT NULL,
|
|
|
|
latitude DOUBLE NOT NULL,
|
|
|
|
longitude DOUBLE NOT NULL,
|
|
|
|
altitude DOUBLE NOT NULL,
|
|
|
|
speed DOUBLE NOT NULL,
|
|
|
|
course DOUBLE NOT NULL,
|
|
|
|
address VARCHAR(1024),
|
|
|
|
other VARCHAR(8192) NOT NULL,
|
|
|
|
FOREIGN KEY (deviceId) REFERENCES device(id) ON DELETE CASCADE);
|
|
|
|
|
|
|
|
CREATE TABLE data (
|
|
|
|
id INT PRIMARY KEY AUTO_INCREMENT,
|
|
|
|
protocol VARCHAR(1024),
|
|
|
|
deviceId INT NOT NULL,
|
|
|
|
serverTime TIMESTAMP NOT NULL,
|
|
|
|
deviceTime TIMESTAMP NOT NULL,
|
|
|
|
other VARCHAR(8192) NOT NULL,
|
|
|
|
FOREIGN KEY (deviceId) REFERENCES device(id));
|
|
|
|
|
|
|
|
ALTER TABLE device ADD
|
2015-06-10 03:29:27 +08:00
|
|
|
FOREIGN KEY (positionId) REFERENCES `position`(id);
|
2015-06-05 12:49:40 +08:00
|
|
|
|
|
|
|
ALTER TABLE device ADD
|
|
|
|
FOREIGN KEY (dataId) REFERENCES data(id);
|
|
|
|
|
|
|
|
CREATE TABLE server (
|
|
|
|
id INT PRIMARY KEY AUTO_INCREMENT,
|
|
|
|
registration BOOLEAN NOT NULL,
|
|
|
|
latitude DOUBLE NOT NULL,
|
|
|
|
longitude DOUBLE NOT NULL,
|
|
|
|
zoom INT NOT NULL);
|
|
|
|
|
2015-06-18 10:46:57 +08:00
|
|
|
CREATE TABLE traccar (
|
2015-06-05 12:49:40 +08:00
|
|
|
id INT PRIMARY KEY AUTO_INCREMENT);
|
|
|
|
</entry>
|
|
|
|
|
2015-06-17 06:50:51 +08:00
|
|
|
<entry key='database.selectServers'>
|
|
|
|
SELECT * FROM server;
|
|
|
|
</entry>
|
|
|
|
|
2015-06-10 00:10:50 +08:00
|
|
|
<entry key='database.insertServer'>
|
|
|
|
INSERT INTO server (registration, latitude, longitude, zoom)
|
|
|
|
VALUES (:registration, :latitude, :longitude, :zoom);
|
|
|
|
</entry>
|
|
|
|
|
|
|
|
<entry key='database.updateServer'>
|
2015-06-10 06:45:22 +08:00
|
|
|
UPDATE server SET registration = :registration WHERE id = :id;
|
2015-06-10 00:10:50 +08:00
|
|
|
</entry>
|
|
|
|
|
|
|
|
<entry key='database.loginUser'>
|
2015-06-17 06:50:51 +08:00
|
|
|
SELECT * FROM user
|
2015-06-11 21:20:37 +08:00
|
|
|
WHERE email = :email;
|
2015-06-10 00:10:50 +08:00
|
|
|
</entry>
|
|
|
|
|
|
|
|
<entry key='database.selectUsersAll'>
|
2015-06-10 06:45:22 +08:00
|
|
|
SELECT * FROM user;
|
2015-06-10 00:10:50 +08:00
|
|
|
</entry>
|
|
|
|
|
|
|
|
<entry key='database.insertUser'>
|
2015-06-17 05:25:28 +08:00
|
|
|
INSERT INTO user (name, email, hashedPassword, salt, admin)
|
|
|
|
VALUES (:name, :email, :hashedPassword, :salt, :admin);
|
2015-06-10 00:10:50 +08:00
|
|
|
</entry>
|
2015-06-17 06:50:51 +08:00
|
|
|
|
2015-06-10 00:10:50 +08:00
|
|
|
<entry key='database.updateUser'>
|
2015-06-17 06:50:51 +08:00
|
|
|
UPDATE user SET name = :name, email = :email, admin = :admin
|
2015-06-10 00:10:50 +08:00
|
|
|
WHERE id = :id;
|
|
|
|
</entry>
|
|
|
|
|
2015-06-10 03:29:27 +08:00
|
|
|
<entry key='database.updateUserPassword'>
|
2015-06-17 05:25:28 +08:00
|
|
|
UPDATE user SET hashedPassword = :hashedPassword, salt = :salt WHERE id = :id;
|
2015-06-10 03:29:27 +08:00
|
|
|
</entry>
|
|
|
|
|
2015-06-10 00:10:50 +08:00
|
|
|
<entry key='database.deleteUser'>
|
|
|
|
DELETE FROM user WHERE id = :id;
|
|
|
|
</entry>
|
|
|
|
|
2015-06-17 06:50:51 +08:00
|
|
|
<entry key='database.getPermissionsAll'>
|
2015-06-11 10:47:35 +08:00
|
|
|
SELECT userId, deviceId FROM user_device;
|
2015-06-10 00:10:50 +08:00
|
|
|
</entry>
|
|
|
|
|
2015-06-17 06:50:51 +08:00
|
|
|
<entry key='database.selectDevicesAll'>
|
2015-06-02 14:49:33 +08:00
|
|
|
SELECT * FROM device;
|
2012-04-25 02:59:31 +08:00
|
|
|
</entry>
|
2015-06-10 00:10:50 +08:00
|
|
|
|
|
|
|
<entry key='database.selectDevices'>
|
2015-06-11 02:55:46 +08:00
|
|
|
SELECT * FROM device d INNER JOIN user_device ud ON d.id = ud.deviceId WHERE ud.userId = :userId;
|
2015-06-10 00:10:50 +08:00
|
|
|
</entry>
|
|
|
|
|
|
|
|
<entry key='database.insertDevice'>
|
|
|
|
INSERT INTO device (name, uniqueId) VALUES (:name, :uniqueId);
|
|
|
|
</entry>
|
|
|
|
|
|
|
|
<entry key='database.updateDevice'>
|
|
|
|
UPDATE device SET name = :name, uniqueId = :uniqueId WHERE id = :id;
|
|
|
|
</entry>
|
|
|
|
|
2015-06-17 06:50:51 +08:00
|
|
|
<entry key='database.deleteDevice'>
|
2015-06-10 00:10:50 +08:00
|
|
|
DELETE FROM device WHERE id = :id;
|
|
|
|
</entry>
|
|
|
|
|
|
|
|
<entry key='database.linkDevice'>
|
|
|
|
INSERT INTO user_device (userId, deviceId) VALUES (:userId, :deviceId);
|
|
|
|
</entry>
|
|
|
|
|
|
|
|
<entry key='database.selectPositions'>
|
2015-06-10 06:45:22 +08:00
|
|
|
SELECT * FROM position WHERE deviceId = :deviceId AND fixTime BETWEEN :from AND :to;
|
|
|
|
</entry>
|
2012-04-25 02:59:31 +08:00
|
|
|
|
2013-01-13 13:19:27 +08:00
|
|
|
<entry key='database.insertPosition'>
|
2015-05-06 19:33:12 +08:00
|
|
|
INSERT INTO position (deviceId, serverTime, deviceTime, fixTime, valid, latitude, longitude, altitude, speed, course, address, other)
|
|
|
|
VALUES (:deviceId, NOW(), :time, :time, :valid, :latitude, :longitude, :altitude, :speed, :course, :address, :other);
|
2013-01-11 19:56:03 +08:00
|
|
|
</entry>
|
|
|
|
|
2015-06-17 07:14:32 +08:00
|
|
|
<entry key='database.selectLatestPositions'>
|
|
|
|
SELECT * FROM position WHERE id IN (SELECT positionId FROM device);
|
|
|
|
</entry>
|
|
|
|
|
2013-01-13 13:19:27 +08:00
|
|
|
<entry key='database.updateLatestPosition'>
|
2015-05-06 19:33:12 +08:00
|
|
|
UPDATE device SET positionId = :id WHERE id = :deviceId;
|
2012-04-25 02:59:31 +08:00
|
|
|
</entry>
|
|
|
|
|
2015-06-05 12:49:40 +08:00
|
|
|
<!-- PROTOCOL CONFIG -->
|
|
|
|
|
2015-01-15 11:31:13 +08:00
|
|
|
<entry key='detector.port'>5000</entry>
|
2013-01-13 13:19:27 +08:00
|
|
|
<entry key='gps103.port'>5001</entry>
|
|
|
|
<entry key='tk103.port'>5002</entry>
|
|
|
|
<entry key='gl100.port'>5003</entry>
|
|
|
|
<entry key='gl200.port'>5004</entry>
|
|
|
|
<entry key='t55.port'>5005</entry>
|
2015-01-15 08:41:56 +08:00
|
|
|
<entry key='xexun.port'>5006</entry>
|
|
|
|
<entry key='xexun.extended'>false</entry>
|
2013-11-03 06:56:19 +08:00
|
|
|
<entry key='totem.port'>5007</entry>
|
2013-01-13 13:19:27 +08:00
|
|
|
<entry key='enfora.port'>5008</entry>
|
|
|
|
<entry key='meiligao.port'>5009</entry>
|
|
|
|
<entry key='maxon.port'>5010</entry>
|
2013-08-04 17:02:29 +08:00
|
|
|
<entry key='suntech.port'>5011</entry>
|
2013-01-13 13:19:27 +08:00
|
|
|
<entry key='progress.port'>5012</entry>
|
|
|
|
<entry key='h02.port'>5013</entry>
|
|
|
|
<entry key='jt600.port'>5014</entry>
|
|
|
|
<entry key='ev603.port'>5015</entry>
|
|
|
|
<entry key='v680.port'>5016</entry>
|
|
|
|
<entry key='pt502.port'>5017</entry>
|
|
|
|
<entry key='tr20.port'>5018</entry>
|
|
|
|
<entry key='navis.port'>5019</entry>
|
|
|
|
<entry key='meitrack.port'>5020</entry>
|
|
|
|
<entry key='skypatrol.port'>5021</entry>
|
|
|
|
<entry key='gt02.port'>5022</entry>
|
|
|
|
<entry key='gt06.port'>5023</entry>
|
2013-01-18 18:02:18 +08:00
|
|
|
<entry key='megastek.port'>5024</entry>
|
2013-01-30 18:00:40 +08:00
|
|
|
<entry key='navigil.port'>5025</entry>
|
2013-02-08 14:49:56 +08:00
|
|
|
<entry key='gpsgate.port'>5026</entry>
|
2013-02-03 11:03:07 +08:00
|
|
|
<entry key='teltonika.port'>5027</entry>
|
2013-02-08 14:49:56 +08:00
|
|
|
<entry key='mta6.port'>5028</entry>
|
|
|
|
<entry key='mta6can.port'>5029</entry>
|
2013-02-10 08:08:35 +08:00
|
|
|
<entry key='tlt2h.port'>5030</entry>
|
2013-02-13 15:41:08 +08:00
|
|
|
<entry key='syrus.port'>5031</entry>
|
2013-03-23 06:01:41 +08:00
|
|
|
<entry key='wondex.port'>5032</entry>
|
2013-03-18 17:47:15 +08:00
|
|
|
<entry key='cellocator.port'>5033</entry>
|
2013-03-19 17:15:35 +08:00
|
|
|
<entry key='galileo.port'>5034</entry>
|
2013-03-23 07:50:05 +08:00
|
|
|
<entry key='ywt.port'>5035</entry>
|
2013-04-09 19:38:11 +08:00
|
|
|
<entry key='tk102.port'>5036</entry>
|
2013-04-12 21:02:17 +08:00
|
|
|
<entry key='intellitrac.port'>5037</entry>
|
2013-04-26 16:45:17 +08:00
|
|
|
<entry key='xt7.port'>5038</entry>
|
2013-04-27 17:08:40 +08:00
|
|
|
<entry key='wialon.port'>5039</entry>
|
2013-04-28 08:59:54 +08:00
|
|
|
<entry key='carscop.port'>5040</entry>
|
2013-05-15 18:18:04 +08:00
|
|
|
<entry key='apel.port'>5041</entry>
|
2013-05-29 18:11:59 +08:00
|
|
|
<entry key='manpower.port'>5042</entry>
|
2013-06-03 12:12:35 +08:00
|
|
|
<entry key='globalsat.port'>5043</entry>
|
2013-06-18 18:15:55 +08:00
|
|
|
<entry key='atrack.port'>5044</entry>
|
2013-07-26 18:04:38 +08:00
|
|
|
<entry key='pt3000.port'>5045</entry>
|
2013-08-06 18:18:45 +08:00
|
|
|
<entry key='ruptela.port'>5046</entry>
|
2013-08-09 17:46:58 +08:00
|
|
|
<entry key='topflytech.port'>5047</entry>
|
2013-08-10 21:38:22 +08:00
|
|
|
<entry key='laipac.port'>5048</entry>
|
|
|
|
<entry key='aplicom.port'>5049</entry>
|
2015-04-28 10:59:53 +08:00
|
|
|
<entry key='aplicom.can'>false</entry>
|
2013-08-12 18:45:47 +08:00
|
|
|
<entry key='gotop.port'>5050</entry>
|
2013-11-03 06:56:19 +08:00
|
|
|
<entry key='sanav.port'>5051</entry>
|
2013-08-17 18:35:30 +08:00
|
|
|
<entry key='gator.port'>5052</entry>
|
2013-08-18 17:47:03 +08:00
|
|
|
<entry key='noran.port'>5053</entry>
|
2013-08-20 16:19:32 +08:00
|
|
|
<entry key='m2m.port'>5054</entry>
|
2013-08-22 21:19:09 +08:00
|
|
|
<entry key='osmand.port'>5055</entry>
|
2013-08-23 18:46:45 +08:00
|
|
|
<entry key='easytrack.port'>5056</entry>
|
2014-01-11 07:29:29 +08:00
|
|
|
<entry key='taip.port'>5057</entry>
|
2014-01-18 14:07:39 +08:00
|
|
|
<entry key='khd.port'>5058</entry>
|
2014-01-19 17:52:14 +08:00
|
|
|
<entry key='piligrim.port'>5059</entry>
|
2014-02-23 14:55:15 +08:00
|
|
|
<entry key='stl060.port'>5060</entry>
|
2014-04-20 13:08:58 +08:00
|
|
|
<entry key='cartrack.port'>5061</entry>
|
2014-04-27 14:38:40 +08:00
|
|
|
<entry key='minifinder.port'>5062</entry>
|
2014-05-21 17:20:45 +08:00
|
|
|
<entry key='haicom.port'>5063</entry>
|
2014-05-25 08:08:46 +08:00
|
|
|
<entry key='eelink.port'>5064</entry>
|
2014-06-01 16:37:44 +08:00
|
|
|
<entry key='box.port'>5065</entry>
|
2014-06-02 18:39:48 +08:00
|
|
|
<entry key='freedom.port'>5066</entry>
|
2014-06-13 18:22:08 +08:00
|
|
|
<entry key='telik.port'>5067</entry>
|
2014-06-22 16:39:49 +08:00
|
|
|
<entry key='trackbox.port'>5068</entry>
|
2014-08-17 20:54:12 +08:00
|
|
|
<entry key='visiontek.port'>5069</entry>
|
2014-08-27 18:12:39 +08:00
|
|
|
<entry key='orion.port'>5070</entry>
|
2014-09-10 18:49:18 +08:00
|
|
|
<entry key='riti.port'>5071</entry>
|
2014-12-24 10:33:04 +08:00
|
|
|
<entry key='ulbotech.port'>5072</entry>
|
2014-12-30 10:38:35 +08:00
|
|
|
<entry key='tramigo.port'>5073</entry>
|
2015-01-15 06:35:11 +08:00
|
|
|
<entry key='tr900.port'>5074</entry>
|
2015-01-15 06:51:14 +08:00
|
|
|
<entry key='ardi01.port'>5075</entry>
|
2015-01-21 07:29:32 +08:00
|
|
|
<entry key='xt013.port'>5076</entry>
|
2015-01-21 08:30:01 +08:00
|
|
|
<entry key='autofon.port'>5077</entry>
|
2015-02-14 06:25:02 +08:00
|
|
|
<entry key='gosafe.port'>5078</entry>
|
2015-02-24 01:23:35 +08:00
|
|
|
<entry key='autofon45.port'>5079</entry>
|
2015-02-28 07:09:43 +08:00
|
|
|
<entry key='bce.port'>5080</entry>
|
2015-03-01 05:35:55 +08:00
|
|
|
<entry key='xirgo.port'>5081</entry>
|
2015-04-11 05:56:59 +08:00
|
|
|
<entry key='calamp.port'>5082</entry>
|
2015-04-11 06:52:42 +08:00
|
|
|
<entry key='mtx.port'>5083</entry>
|
2015-04-18 14:17:54 +08:00
|
|
|
<entry key='tytan.port'>5084</entry>
|
2015-04-24 11:58:59 +08:00
|
|
|
<entry key='avl301.port'>5085</entry>
|
2015-05-31 16:07:39 +08:00
|
|
|
<entry key='castel.port'>5086</entry>
|
2015-06-23 10:04:52 +08:00
|
|
|
<entry key='mxt.port'>5087</entry>
|
2015-05-31 16:07:39 +08:00
|
|
|
|
2012-04-25 02:59:31 +08:00
|
|
|
</properties>
|