1 package org.ocera.orte.demo.Publishers;
3 import java.util.concurrent.locks.ReentrantReadWriteLock;
4 import java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock;
5 import java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock;
7 import org.ocera.orte.DomainApp;
8 import org.ocera.orte.Publication;
9 import org.ocera.orte.demo.DataTypes.CraneCmdType;
10 import org.ocera.orte.types.NtpTime;
11 import org.ocera.orte.types.PublProp;
13 public class CraneCmdPublish {
15 private boolean isCancelled = true;
16 private CraneCmdType liftmsg;
17 private Publication pub;
18 private PublProp publProp;
19 private DomainApp appDomain;
21 private final ReentrantReadWriteLock controlRrwl = new ReentrantReadWriteLock(true);
22 private final ReadLock rcLock = controlRrwl.readLock();
23 private final WriteLock wcLock = controlRrwl.writeLock();
25 public CraneCmdPublish(DomainApp appDomain) {
26 this.appDomain = appDomain;
28 NtpTime persistence = new NtpTime(3);
31 liftmsg = new CraneCmdType(appDomain,"crane_cmd");
33 publProp = new PublProp(liftmsg.getTopic(),
43 pub = appDomain.createPublication(publProp, liftmsg);
50 public void cancel() {
60 public boolean isCancelled() {
69 public void send(int magnet) {
70 liftmsg.position = magnet;