Skip to content

Commit 1a5520e

Browse files
committed
* Refactor MqttSubscription into MqttTopic and implement message publishing / multi subscription - code cleanup
1 parent 85497cb commit 1a5520e

File tree

2 files changed

+22
-14
lines changed

2 files changed

+22
-14
lines changed

vclu/src/main/java/pl/psobiech/opengr8on/vclu/VirtualCLU.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ public VirtualCLU(String name, Inet4Address address, Path aDriveDirectory) {
106106
this.aDriveDirectory = aDriveDirectory;
107107

108108
featureFunctions.put(0, this::getUptime); // clu_uptime
109-
VirtualCLU.this.featureValues.put(2, valueOf(0)); // clu_state
109+
featureValues.put(2, valueOf(0)); // clu_state
110110
featureFunctions.put(5, this::getCurrentDateAsString); // clu_date
111111
featureFunctions.put(6, this::getCurrentTimeAsString); // clu_time
112112
featureFunctions.put(7, this::getCurrentDayOfMonth); // clu_day
@@ -116,11 +116,11 @@ public VirtualCLU(String name, Inet4Address address, Path aDriveDirectory) {
116116
featureFunctions.put(11, this::getCurrentHour); // clu_hour
117117
featureFunctions.put(12, this::getCurrentMinute); // clu_minute
118118
featureFunctions.put(13, this::getCurrentEpochSeconds); // clu_localtime
119-
VirtualCLU.this.featureValues.put(14, valueOf(UTC_TIMEZONE_ID)); // clu_timezone
120-
VirtualCLU.this.featureValues.put(20, valueOf("ssl://localhost:8883")); // clu_mqtturl
119+
featureValues.put(14, valueOf(UTC_TIMEZONE_ID)); // clu_timezone
120+
featureValues.put(20, valueOf("ssl://localhost:8883")); // clu_mqtturl
121121
featureFunctions.put(21, arg1 -> { // clu_usemqtt
122122
if (arg1.isnil()) {
123-
return VirtualCLU.this.featureValues.get(21);
123+
return featureValues.get(21);
124124
}
125125

126126
// Sometimes OM uses true/false and sometimes 0/1
@@ -153,14 +153,14 @@ public VirtualCLU(String name, Inet4Address address, Path aDriveDirectory) {
153153

154154
@Override
155155
public void setup() {
156-
VirtualCLU.this.featureValues.put(2, valueOf(1)); // clu_state
156+
featureValues.put(2, valueOf(1)); // clu_state
157157

158158
triggerEvent(0); // clu_oninit
159159
}
160160

161161
@Override
162162
public void loop() {
163-
final boolean mqttEnable = VirtualCLU.this.featureValues.get(21).checkboolean();
163+
final boolean mqttEnable = featureValues.get(21).checkboolean();
164164
final boolean mqttAlreadyEnabled = mqttClient != null;
165165
if (mqttEnable ^ mqttAlreadyEnabled) {
166166
disableMqtt();
@@ -244,7 +244,7 @@ private ZonedDateTime getCurrentDateTime() {
244244
}
245245

246246
private ZoneId getCurrentZoneId() {
247-
final LuaValue zoneIdLuaValue = VirtualCLU.this.featureValues.get(14);
247+
final LuaValue zoneIdLuaValue = featureValues.get(14);
248248
if (!zoneIdLuaValue.isint()) {
249249
return ZoneOffset.UTC;
250250
}
@@ -260,18 +260,18 @@ private LuaNumber getCurrentEpochSeconds(LuaValue arg1) {
260260
}
261261

262262
private LuaValue addToLog(LuaValue arg) {
263-
VirtualCLU.this.featureValues.put(1, arg);
263+
featureValues.put(1, arg);
264264

265265
if (!arg.isnil()) {
266266
final String logValue = String.valueOf(arg.checkstring());
267-
LOGGER.info(VirtualCLU.this.name + ": " + logValue);
267+
LOGGER.info(name + ": " + logValue);
268268
}
269269

270270
return LuaValue.NIL;
271271
}
272272

273273
private LuaValue clearLog(LuaValue arg) {
274-
VirtualCLU.this.featureValues.put(1, LuaValue.NIL);
274+
featureValues.put(1, LuaValue.NIL);
275275

276276
return LuaValue.NIL;
277277
}
@@ -293,7 +293,7 @@ private void disableMqtt() {
293293
private void enableMqtt() {
294294
// TODO: manage the client connection and topics
295295
// TODO: expose some LUA API to publish/subscribe
296-
final String mqttUrl = String.valueOf(VirtualCLU.this.featureValues.get(20).checkstring());
296+
final String mqttUrl = String.valueOf(featureValues.get(20).checkstring());
297297

298298
try {
299299
LOGGER.info("Connecting to MQTT on: {}", mqttUrl);

vclu/src/main/java/pl/psobiech/opengr8on/vclu/objects/MqttTopic.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ private LuaValue publish(LuaValue arg1) {
109109
return LuaValue.FALSE;
110110
}
111111

112-
final LuaValue message = featureValues.remove(1); // mqttsubscription_message
112+
final LuaValue message = removeMessage();
113113

114114
try {
115115
mqttClient.publish(
@@ -158,14 +158,14 @@ public Set<String> getTopicFilters() {
158158
}
159159

160160
private LuaValue onNextMessage(LuaValue arg1) {
161-
featureValues.remove(1); // mqttsubscription_message
161+
removeMessage();
162162

163163
return LuaValue.NIL;
164164
}
165165

166166
@Override
167167
public void loop() {
168-
final LuaValue currentPayload = featureValues.get(1); // mqttsubscription_message
168+
final LuaValue currentPayload = getMessage();
169169
if (currentPayload == null || String.valueOf(currentPayload).isEmpty()) {
170170
final Entry<String, byte[]> entry = messageQueue.poll();
171171
if (entry != null) {
@@ -180,6 +180,14 @@ public void loop() {
180180
}
181181
}
182182

183+
private LuaValue getMessage() {
184+
return featureValues.get(1); // mqttsubscription_message
185+
}
186+
187+
private LuaValue removeMessage() {
188+
return featureValues.remove(1); // mqttsubscription_message
189+
}
190+
183191
@Override
184192
public void close() {
185193
// NOP

0 commit comments

Comments
 (0)