Skip to content

Commit

Permalink
corrected topic split process
Browse files Browse the repository at this point in the history
  • Loading branch information
ivanfmartinez committed May 25, 2019
1 parent e08fb38 commit 7876f96
Showing 1 changed file with 26 additions and 25 deletions.
51 changes: 26 additions & 25 deletions src/main/java/com/ivanfm/traccar/mqtt/ProcessPosition.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
Expand Down Expand Up @@ -56,25 +57,29 @@ public ProcessPosition(MQTTPublisher publisher, Position position) {
user = Context.getPermissionsManager().getUser( users.isEmpty() ? 1 : users.iterator().next() );

devAlias = nameCleanUp(dm.lookupAttributeString(position.getDeviceId(), "mqtt.alias", device.getName(), false));
// Current configuration should user alarmTopics instead of alarmTopic
// Current configuration should use alarmTopics instead of alarmTopic
alarmTopics = splitTopics(dm.lookupAttributeString(position.getDeviceId(), "mqtt.alarmTopics", dm.lookupAttributeString(position.getDeviceId(), "mqtt.alarmTopic", "", true), true));

event = new Event("MQTTX", position.getDeviceId(), position.getId());

}

private List<String> splitTopics(String topics) {
final List<String> split = Arrays.asList(topics.split(":"));
int x = 0;
while (x < split.size()) {
if (StringUtils.isBlank(split.get(x))) {
split.remove(x);
} else {
x++;
private static List<String> splitTopics(String topics) {
if (StringUtils.isNotBlank(topics)) {
final List<String> split = new ArrayList<>(Arrays.asList(topics.split(":")));
int x = 0;
while (x < split.size()) {
if (StringUtils.isBlank(split.get(x))) {
split.remove(x);
} else {
x++;
}
}
}

return split;
return split;
} else {
return Collections.<String>emptyList();
}
}

void publish(String path, String value) {
Expand All @@ -101,8 +106,6 @@ private void publishIfNotNull(String path, Object value) {





void publish() {
final Map<String,Object> attrs = position.getAttributes();
if (dm.lookupAttributeBoolean(device.getId(), "mqtt.position.process.enabled", true, true)) {
Expand Down Expand Up @@ -137,7 +140,7 @@ void publish() {
}

if (dm.lookupAttributeBoolean(device.getId(), "mqtt.position.process.alarms.enabled", true, true)) {
if (alarmTopics.size() > 0) {
if (!alarmTopics.isEmpty()) {
publishAlarm(attrs);
}
}
Expand Down Expand Up @@ -165,7 +168,7 @@ private void processGeofences() {

private boolean processGeofence(Geofence geofence, String geofenceAlias, boolean inside) {
final String topicsSt = dm.lookupAttributeString(position.getDeviceId(), "mqtt.geofence." + geofenceAlias + ".topics", "", false);
final List<String> topics = StringUtils.isNotBlank(topicsSt) ? splitTopics(topicsSt) : new ArrayList<>();
final List<String> topics = splitTopics(topicsSt);
final String insideSt = inside ? "1" : "0";

// Use attribute to keep state control even when traccar is restarted
Expand All @@ -178,17 +181,15 @@ private boolean processGeofence(Geofence geofence, String geofenceAlias, boolean
if (!insideSt.equalsIgnoreCase(prevInside)) {
device.set(insideKey, insideSt);
for (String topic : topics) {
if (StringUtils.isNotBlank(topic)) {
final VelocityContext velocityContext = prepareContext();
velocityContext.put("geofence", geofence);
velocityContext.put("areaName", geofence.getName());
velocityContext.put("in_out", inside ? "IN" : "OUT");
velocityContext.put("distance", ""+distance);
final VelocityContext velocityContext = prepareContext();
velocityContext.put("geofence", geofence);
velocityContext.put("areaName", geofence.getName());
velocityContext.put("in_out", inside ? "IN" : "OUT");
velocityContext.put("distance", ""+distance);

publisher.publishOnRoot(topic,
format(velocityContext, "mqtt-moved/").getBytes(),
MQTTPublisher.AT_LEAST_ONCE, false);
}
publisher.publishOnRoot(topic,
format(velocityContext, "mqtt-moved/").getBytes(),
MQTTPublisher.AT_LEAST_ONCE, false);
}
return true;
} else {
Expand Down

0 comments on commit 7876f96

Please sign in to comment.