1 package org.ocera.orte.demo;
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.types.NtpTime;
10 import org.ocera.orte.types.PublProp;
12 public class CraneCmdPublish {
14 private boolean isCancelled = true;
15 private CraneCmdType liftmsg;
16 private Publication pub;
17 private PublProp publProp;
18 private DomainApp appDomain;
20 private final ReentrantReadWriteLock controlRrwl = new ReentrantReadWriteLock(true);
21 private final ReadLock rcLock = controlRrwl.readLock();
22 private final WriteLock wcLock = controlRrwl.writeLock();
24 public CraneCmdPublish(DomainApp appDomain) {
25 this.appDomain = appDomain;
27 NtpTime persistence = new NtpTime(3);
30 liftmsg = new CraneCmdType(appDomain,"crane_cmd");
32 publProp = new PublProp(liftmsg.getTopic(),
42 pub = appDomain.createPublication(publProp, liftmsg);
49 public void cancel() {
59 public boolean isCancelled() {
68 public void send(int magnet) {
69 liftmsg.position = magnet;