Skip to content

Commit

Permalink
CbusLight
Browse files Browse the repository at this point in the history
  • Loading branch information
icklesteve committed Apr 24, 2019
1 parent 0c630be commit 233c0c6
Show file tree
Hide file tree
Showing 2 changed files with 81 additions and 1 deletion.
6 changes: 6 additions & 0 deletions java/src/jmri/jmrix/can/cbus/CbusLight.java
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,9 @@ public void requestUpdateFromLayout() {

@Override
public void message(CanMessage f) {
if ( f.isExtended() || f.isRtr() ) {
return;
}
if (addrOn.match(f)) {
setState(ON);
} else if (addrOff.match(f)) {
Expand All @@ -115,6 +118,9 @@ public void message(CanMessage f) {

@Override
public void reply(CanReply f) {
if ( f.isExtended() || f.isRtr() ) {
return;
}
// convert response events to normal
f = CbusMessage.opcRangeToStl(f);
if (addrOn.match(f)) {
Expand Down
76 changes: 75 additions & 1 deletion java/test/jmri/jmrix/can/cbus/CbusLightTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -341,6 +341,70 @@ public void testCbusLightCanMessage() throws jmri.JmriException {
Assert.assertTrue(t.getState() == Light.OFF);

}

@Test
public void testCbusLightCanMessageExtendedRtR() throws jmri.JmriException {
CbusLight t = new CbusLight("ML","+N54321E12345",tcis);
Assert.assertTrue(t.getState() == Light.OFF); // Light.UNKNOWN ??

CanMessage m = new CanMessage(tcis.getCanid());
m.setNumDataElements(5);
m.setElement(0, 0x90); // ACON OPC
m.setElement(1, 0xd4);
m.setElement(2, 0x31);
m.setElement(3, 0x30);
m.setElement(4, 0x39);

m.setExtended(true);

t.message(m);
Assert.assertTrue(t.getState() == Light.OFF );

m.setExtended(false);
m.setRtr(true);
t.message(m);
Assert.assertTrue(t.getState() == Light.OFF );

m.setRtr(false);
t.message(m);
Assert.assertTrue(t.getState() == Light.ON);

t = null;
m = null;

}

@Test
public void testCbusLightCanReplyExtendedRtr() throws jmri.JmriException {
CbusLight t = new CbusLight("ML","+N54321E12345",tcis);
Assert.assertTrue(t.getState() == Light.OFF); // Light.UNKNOWN ??
CanReply r = new CanReply(tcis.getCanid());
r.setNumDataElements(5);
r.setElement(0, 0x90); // ACON OPC
r.setElement(1, 0xd4);
r.setElement(2, 0x31);
r.setElement(3, 0x30);
r.setElement(4, 0x39);
r.setExtended(true);

t.reply(r);
Assert.assertTrue(t.getState() == Light.OFF);

r.setExtended(false);
r.setRtr(true);
t.reply(r);
Assert.assertTrue(t.getState() == Light.OFF );

r.setRtr(false);

t.reply(r);
Assert.assertTrue(t.getState() == Light.ON);

t = null;
r = null;

}


@Test
public void testCbusLightCanReply() throws jmri.JmriException {
Expand Down Expand Up @@ -463,6 +527,15 @@ public void testIntensity() {

// t.setTargetIntensity(0.25); not currently defined for CBUS
}

@Test
public void testDoNewStateinvalid(){

CbusLight t = new CbusLight("M","+12345",tcis);
t.doNewState(Light.OFF,999);
JUnitAppender.assertWarnMessage("illegal state requested for Light: ML+12345");

}

// The minimal setup for log4J
@Before
Expand All @@ -474,9 +547,10 @@ public void setUp() {

@After
public void tearDown() {
JUnitUtil.tearDown();
t.dispose();
tcis=null;
JUnitUtil.tearDown();

}

// private final static Logger log = LoggerFactory.getLogger(CbusLightTest.class);
Expand Down

0 comments on commit 233c0c6

Please sign in to comment.