use of jmri.jmrix.tams.TamsReply in project JMRI by JMRI.
the class SimulatorAdapter method generateReply.
// generateReply is the heart of the simulation. It translates an
// incoming TamsMessage into an outgoing TamsReply.
private TamsReply generateReply(TamsMessage m) {
TamsReply reply = new TamsReply();
int i = 0;
log.debug("Rec " + m.toString());
if (m.toString().startsWith("xY")) {
reply.setElement(i++, 0x00);
} else if (m.toString().startsWith("xSR")) {
reply.setElement(i++, 0x53);
reply.setElement(i++, 0x52);
reply.setElement(i++, 0x20);
reply.setElement(i++, m.getElement(3));
} else if (m.getElement(0) == 0x99) {
// && m.getElement(1)==0x53 && m.getElement(2)=0x52 && m.getElement(3)==0x30){
reply.setElement(i++, 0x55);
reply.setElement(i++, 0x55);
reply.setElement(i++, 0xAA);
reply.setElement(i++, 0xAA);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
reply.setElement(i++, 0x00);
}
reply.setElement(i++, 0x0d);
reply.setElement(i++, 0x5d);
return reply;
}
use of jmri.jmrix.tams.TamsReply in project JMRI by JMRI.
the class SimulatorAdapter method run.
@Override
public void run() {
// report status?
if (log.isInfoEnabled()) {
log.info("TAMS Simulator Started");
}
while (true) {
try {
synchronized (this) {
wait(50);
}
} catch (Exception e) {
}
TamsMessage m = readMessage();
TamsReply r;
if (log.isDebugEnabled()) {
StringBuffer buf = new StringBuffer();
buf.append("Tams Simulator Thread received message: ");
if (m != null) {
for (int i = 0; i < m.getNumDataElements(); i++) {
buf.append(Integer.toHexString(0xFF & m.getElement(i)) + " ");
}
} else {
buf.append("null message buffer");
}
log.debug(buf.toString());
}
if (m != null) {
//if(m.isReplyExpected()){
r = generateReply(m);
writeReply(r);
//}
if (log.isDebugEnabled() && r != null) {
StringBuffer buf = new StringBuffer();
buf.append("Tams Simulator Thread sent reply: ");
for (int i = 0; i < r.getNumDataElements(); i++) {
buf.append(Integer.toHexString(0xFF & r.getElement(i)) + " ");
}
log.debug(buf.toString());
}
}
}
}
Aggregations