Skip to content

Commit dc7b6e7

Browse files
committed
+ barrier service for pi; * fixed bugs in the barrier service; - removed trackelementstatus reporter project.
1 parent fd3033b commit dc7b6e7

File tree

30 files changed

+31
-596
lines changed

30 files changed

+31
-596
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ cd src/java
6868

6969
| Logical Component | Physical location | Comments | Owner|
7070
|:-------------------:|:------------------------|:--------:|:---:|
71+
| Barrier | <components_path_prefix>.barrier | Sends open/close commands to the barrier over the network, depnending on the occupancy of certain segments. | benedekh
7172
| Dashboard | <components_path_prefix>.dashboard | Dashboard for the model railway track. | zsoltmazlo
7273
| GPIO Manager | <components_path_prefix>.gpiomanager | To control the GPIO pins of the Beagle Bone Black embedded units from Java. | hegyibalint
7374
| Leapmotion | <components_path_prefix>.leapmotion | Leapmotion sensor code in Java. | pappist (Papp István)

config-management/ansible/deploy-root.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,5 @@
55
- include: utils/deploy-gradle.yaml service_name=dashboard
66
- include: utils/deploy-gradle.yaml service_name=occupancyquery
77
- include: utils/deploy-gradle.yaml service_name=touchboard
8+
- include: utils/deploy-gradle.yaml service_name=barrier
89
- include: utils/deploy-systemd.yaml service_name=xpressnet
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
[Unit]
2+
Description=MoDeS3 Barrier Server
3+
After=syslog.target network.target mosquitto.service
4+
5+
[Service]
6+
ExecStart=/modes3/hu.bme.mit.inf.modes3.components.barrier/bin/hu.bme.mit.inf.modes3.components.barrier -address root.modes3.intra -port 1883
7+
Restart=always
8+
9+
[Install]
10+
WantedBy=multi-user.target

src/java/components/hu.bme.mit.inf.modes3.components.barrier/src/main/java/hu/bme/mit/inf/modes3/components/barrier/TrackSupervisor.xtend

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ class TrackSupervisor implements ITrackSupervisor {
2626
if (newValue == SegmentOccupancy.OCCUPIED) {
2727
supervisorWrapper.sendBarrierMessage("closed")
2828
} else if (supervisedSections.entrySet.forall[it.value == SegmentOccupancy.FREE]) {
29+
println("OPENED IS SENT")
2930
supervisorWrapper.sendBarrierMessage("opened")
3031
}
3132
}

src/java/components/hu.bme.mit.inf.modes3.components.barrier/src/main/java/hu/bme/mit/inf/modes3/components/barrier/app/Main.xtend

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,8 @@ class Main {
1717
new ArgumentDescriptorWithParameter("address", "The address of the transport server", String))
1818
registry.registerArgumentWithOptions(
1919
new ArgumentDescriptorWithParameter("port", "The port used by the transport server", Integer))
20-
registry.registerArgumentWithOptions(
21-
new ArgumentDescriptorWithParameter("barriertopic", "Topic to be used by the barrier controller", String))
2220

23-
registry.parseArguments(args);
21+
registry.parseArguments(args)
2422

2523
val railwayTrackCommunicationStack = MessagingServiceFactory::createStackForEveryTopic(registry, loggerFactory)
2624
val barrierCommunicationStack = JsonDispatcherFactory::createMQTTStackWithJSON(registry, loggerFactory)

src/java/components/hu.bme.mit.inf.modes3.components.barrier/src/main/java/hu/bme/mit/inf/modes3/components/barrier/comm/BarrierCommander.xtend

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package hu.bme.mit.inf.modes3.components.barrier.comm
22

3-
import hu.bme.mit.inf.modes3.components.barrier.comm.json.BarrierStateMessage
3+
import hu.bme.mit.inf.modes3.messaging.messages.status.BarrierStateMessage
44
import hu.bme.mit.inf.modes3.messaging.mms.MessagingService
55
import org.slf4j.ILoggerFactory
66
import org.slf4j.Logger

src/java/components/hu.bme.mit.inf.modes3.components.barrier/src/main/java/hu/bme/mit/inf/modes3/components/barrier/comm/json/JsonDispatcher.xtend

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package hu.bme.mit.inf.modes3.components.barrier.comm.json
22

3+
import com.google.gson.Gson
4+
import hu.bme.mit.inf.modes3.messaging.messages.status.BarrierStateMessage
35
import hu.bme.mit.inf.modes3.messaging.mms.dispatcher.AbstractMessageDispatcher
46
import org.slf4j.ILoggerFactory
57
import org.slf4j.Logger
@@ -18,7 +20,10 @@ class JsonDispatcher extends AbstractMessageDispatcher {
1820

1921
override convertMessageToRaw(Object message) throws IllegalArgumentException {
2022
try {
21-
return (message as BarrierStateMessage).serialize
23+
val barrierMessage = message as BarrierStateMessage
24+
val gson = new Gson
25+
val str = gson.toJson(barrierMessage)
26+
return str.bytes
2227
} catch (Exception ex) {
2328
logger.error(ex.message)
2429
throw new IllegalArgumentException

src/java/components/hu.bme.mit.inf.modes3.components.barrier/src/main/java/hu/bme/mit/inf/modes3/components/barrier/comm/json/JsonDispatcherFactory.xtend

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
11
package hu.bme.mit.inf.modes3.components.barrier.comm.json
22

33
import hu.bme.mit.inf.modes3.components.util.jopt.ArgumentRegistry
4-
import hu.bme.mit.inf.modes3.messaging.mms.MessagingService
4+
import hu.bme.mit.inf.modes3.messaging.messages.core.InternalMessageToTopicMapper
5+
import hu.bme.mit.inf.modes3.messaging.messages.status.BarrierStateMessage
6+
import hu.bme.mit.inf.modes3.messaging.mms.TopicBasedMessagingService
57
import hu.bme.mit.inf.modes3.transports.config.TopicBasedTransportConfiguration
68
import hu.bme.mit.inf.modes3.transports.mqtt.MQTTTransport
79
import org.slf4j.ILoggerFactory
810

911
class JsonDispatcherFactory {
1012

1113
def static createMQTTStackWithJSON(ArgumentRegistry argumentRegistry, ILoggerFactory factory) {
12-
return new MessagingService(
14+
return new TopicBasedMessagingService(
1315
new MQTTTransport(loadMQTTConfiguration(argumentRegistry), factory),
1416
new JsonDispatcher(factory),
1517
factory
@@ -20,7 +22,7 @@ class JsonDispatcherFactory {
2022
val address = registry.getParameterStringValue('address')
2123
val id = registry.getParameterStringValue('id')
2224
val port = registry.getParameterIntegerValue('port')
23-
val barriertopic = registry.getParameterStringValue('barriertopic')
25+
val barriertopic = InternalMessageToTopicMapper.INSTANCE.getTopic(BarrierStateMessage.simpleName)
2426

2527
return new TopicBasedTransportConfiguration(id, address, port, barriertopic)
2628
}

src/java/components/hu.bme.mit.inf.modes3.components.trackelementstatus/.classpath

Lines changed: 0 additions & 8 deletions
This file was deleted.

src/java/components/hu.bme.mit.inf.modes3.components.trackelementstatus/.project

Lines changed: 0 additions & 29 deletions
This file was deleted.

0 commit comments

Comments
 (0)