Search in sources :

Example 1 with TamsReply

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;
}
Also used : TamsReply(jmri.jmrix.tams.TamsReply)

Example 2 with TamsReply

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());
            }
        }
    }
}
Also used : TamsMessage(jmri.jmrix.tams.TamsMessage) TamsReply(jmri.jmrix.tams.TamsReply) IOException(java.io.IOException)

Aggregations

TamsReply (jmri.jmrix.tams.TamsReply)2 IOException (java.io.IOException)1 TamsMessage (jmri.jmrix.tams.TamsMessage)1