diff options
Diffstat (limited to 'src/org/traccar/database')
-rw-r--r-- | src/org/traccar/database/ConnectionManager.java | 15 | ||||
-rw-r--r-- | src/org/traccar/database/DataManager.java | 6 |
2 files changed, 18 insertions, 3 deletions
diff --git a/src/org/traccar/database/ConnectionManager.java b/src/org/traccar/database/ConnectionManager.java index 450f2f61f..cb7b4b6d8 100644 --- a/src/org/traccar/database/ConnectionManager.java +++ b/src/org/traccar/database/ConnectionManager.java @@ -26,6 +26,7 @@ import java.util.List; import java.util.Map; import java.util.Set; import org.jboss.netty.channel.Channel; +import org.traccar.Context; import org.traccar.Protocol; import org.traccar.helper.Log; import org.traccar.model.Device; @@ -68,9 +69,17 @@ public class ConnectionManager { } public synchronized void updateDevice(long deviceId, String status, Date time) { - // TODO update cache and call listener - /*Log.debug(deviceId + " " + status + " " - + new SimpleDateFormat(Log.DATE_FORMAT).format(time));*/ + Device device = Context.getIdentityManager().getDeviceById(deviceId); + device.setStatus(status); + device.setLastUpdate(time); + + try { + Context.getDataManager().updateDeviceStatus(device); + } catch (SQLException error) { + Log.warning(error); + } + + // TODO call listener } public synchronized void updatePosition(Position position) { diff --git a/src/org/traccar/database/DataManager.java b/src/org/traccar/database/DataManager.java index 24a07a05c..a40b87d24 100644 --- a/src/org/traccar/database/DataManager.java +++ b/src/org/traccar/database/DataManager.java @@ -310,6 +310,12 @@ public class DataManager implements IdentityManager { .executeUpdate(); } + public void updateDeviceStatus(Device device) throws SQLException { + QueryBuilder.create(dataSource, getQuery("database.updateDeviceStatus")) + .setObject(device) + .executeUpdate(); + } + public void removeDevice(Device device) throws SQLException { QueryBuilder.create(dataSource, getQuery("database.deleteDevice")) .setObject(device) |