Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/JMRI/JMRI
Browse files Browse the repository at this point in the history
  • Loading branch information
icklesteve committed Aug 16, 2018
2 parents 355cb5f + 105bc09 commit d4c6156
Show file tree
Hide file tree
Showing 13 changed files with 387 additions and 34 deletions.
2 changes: 1 addition & 1 deletion help/en/package/jmri/jmrit/operations/Operations.shtml
Expand Up @@ -1546,7 +1546,7 @@
called "manifestBackups" located in the "operations" directory. You can review your old Manifest
using the
<a href="#PrintSavedTrainManifests">Print or Preview Saved Train Manifests</a> under tools in the <a href="#Trains">Trains</a>
window.
or <a href="#TrainEdit">Edit Train</a> windows.
<p>The program will also store a copy of each train's build report in a directory called
"buildStatusBackups" also located in the "operations" directory.</p>

Expand Down
1 change: 1 addition & 0 deletions java/src/jmri/jmrit/ToolsMenu.java
Expand Up @@ -112,6 +112,7 @@ public ToolsMenu() {
add(new jmri.jmrit.sensorgroup.SensorGroupAction(Bundle.getMessage("MenuItemSensorGroup")));
add(new jmri.jmrit.speedometer.SpeedometerAction(Bundle.getMessage("MenuItemSpeedometer")));
add(new jmri.jmrit.simplelightctrl.SimpleLightCtrlAction(Bundle.getMessage("MenuItemLightControl")));
add(new jmri.jmrit.ampmeter.AmpMeterAction());
add(new jmri.jmrit.dispatcher.DispatcherAction(Bundle.getMessage("MenuItemDispatcher")));

add(new JSeparator());
Expand Down
Expand Up @@ -505,6 +505,16 @@ private void enableSaveButton(boolean enable) {
previewButton.setEnabled(!enable);
printButton.setEnabled(!enable);
resetButton.setEnabled(!enable);
csvGenerateButton.setEnabled(!enable);
runButton.setEnabled(!enable);
// disable the following, and turn then back on if needed
printChangesButton.setEnabled(false);
csvChangeButton.setEnabled(false);
runChangeButton.setEnabled(false);
updateButton.setEnabled(false);
if (!enable) {
enableChangeButtons();
}
}

private void enableChangeButtons() {
Expand Down
2 changes: 1 addition & 1 deletion java/src/jmri/jmrix/roco/z21/Z21LocoNetTunnel.java
Expand Up @@ -202,7 +202,7 @@ public void message(Z21Message msg) {
*/
@Override
public void message(LocoNetMessage msg) {
// when an XpressNet message shows up here, package it in a Z21Message
// when an LocoNet message shows up here, package it in a Z21Message
Z21Message message = new Z21Message(msg);
log.debug("LocoNet Message {} forwarded to z21 Interface as {}",
msg, message);
Expand Down
4 changes: 4 additions & 0 deletions java/src/jmri/jmrix/roco/z21/Z21SystemConnectionMemo.java
Expand Up @@ -168,6 +168,10 @@ public void configureManagers() {

// set up the Reporter Manager
jmri.InstanceManager.store(getReporterManager(),jmri.ReporterManager.class);

// but make sure the Loconet memo is set (for one feedback message).
Z21XNetProgrammerManager xpm = (Z21XNetProgrammerManager) _xnettunnel.getStreamPortController().getSystemConnectionMemo().getProgrammerManager();
xpm.setLocoNetMemo(_loconettunnel.getStreamPortController().getSystemConnectionMemo());

// setup the MultiMeter
getMultiMeter();
Expand Down
46 changes: 44 additions & 2 deletions java/src/jmri/jmrix/roco/z21/Z21XNetOpsModeProgrammer.java
Expand Up @@ -11,6 +11,9 @@
import jmri.jmrix.lenz.XNetMessage;
import jmri.jmrix.lenz.XNetReply;
import jmri.jmrix.lenz.XNetTrafficController;
import jmri.jmrix.loconet.LocoNetListener;
import jmri.jmrix.loconet.LocoNetMessage;
import jmri.jmrix.loconet.LnTrafficController;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand All @@ -22,15 +25,24 @@
* @see jmri.Programmer
* @author Paul Bender Copyright (C) 2018
*/
public class Z21XNetOpsModeProgrammer extends jmri.jmrix.lenz.XNetOpsModeProgrammer implements XNetListener, AddressedProgrammer {
public class Z21XNetOpsModeProgrammer extends jmri.jmrix.lenz.XNetOpsModeProgrammer implements XNetListener, AddressedProgrammer, LocoNetListener {

private int _cv;
private LnTrafficController lnTC;

public Z21XNetOpsModeProgrammer(int pAddress, XNetTrafficController controller) {
this(pAddress,controller,null);
}

public Z21XNetOpsModeProgrammer(int pAddress, XNetTrafficController controller,LnTrafficController lntc) {
super(pAddress,controller);
// connect to listen
controller.addXNetListener(~0,
this);
lnTC = lntc;
if(lnTC!=null) {
lnTC.addLocoNetListener(~0,this);
}
}

@Override
Expand Down Expand Up @@ -116,7 +128,37 @@ synchronized public void message(XNetReply l) {
}
}

/**
* {@inheritDoc}
*/
@Override
public void message(LocoNetMessage m){
// the Roco Z21 responds to Operations mode write requests with a
// LocoNet message.
log.debug("LocoNet message received: {}", m);

if (progState == REQUESTSENT) {
// for now, assume that if we get this, it is for our write.

int val = 0;
if ((m.getElement(2) & 0x20) != 0) {
val = 1;
}

// successful read if LACK return status is not 0x7F
int code = ProgListener.OK;
if ((m.getElement(2) == 0x7f)) {
code = ProgListener.UnknownError;
}

progListener.programmingOpReply(val, code);
progState = NOTPROGRAMMING;
stopTimer();
}
}


// initialize logging
// private final static Logger log = LoggerFactory.getLogger(Z21XNetOpsModeProgrammer.class);
private final static Logger log = LoggerFactory.getLogger(Z21XNetOpsModeProgrammer.class);

}
20 changes: 18 additions & 2 deletions java/src/jmri/jmrix/roco/z21/Z21XNetProgrammerManager.java
Expand Up @@ -3,6 +3,7 @@
import jmri.AddressedProgrammer;
import jmri.Programmer;
import jmri.jmrix.lenz.XNetSystemConnectionMemo;
import jmri.jmrix.loconet.LocoNetSystemConnectionMemo;

/**
* Extend XNetProgrammerManager for Z21.
Expand All @@ -13,8 +14,15 @@
*/
public class Z21XNetProgrammerManager extends jmri.jmrix.lenz.XNetProgrammerManager {

private LocoNetSystemConnectionMemo lnMemo = null;

public Z21XNetProgrammerManager(Programmer pProgrammer, XNetSystemConnectionMemo memo) {
super(pProgrammer, memo);
this(pProgrammer, memo, null);
}

public Z21XNetProgrammerManager(Programmer pProgrammer, XNetSystemConnectionMemo xnetMemo,LocoNetSystemConnectionMemo loconetMemo) {
super(pProgrammer, xnetMemo);
setLocoNetMemo(loconetMemo);
}

/**
Expand All @@ -28,7 +36,15 @@ public boolean isAddressedModePossible() {

@Override
public AddressedProgrammer getAddressedProgrammer(boolean pLongAddress, int pAddress) {
return new Z21XNetOpsModeProgrammer(pAddress, tc);
if(lnMemo!=null) {
return new Z21XNetOpsModeProgrammer(pAddress, tc, lnMemo.getLnTrafficController());
} else {
return new Z21XNetOpsModeProgrammer(pAddress, tc );
}
}

public void setLocoNetMemo(LocoNetSystemConnectionMemo loconetMemo) {
lnMemo = loconetMemo;
}

}
12 changes: 12 additions & 0 deletions java/src/jmri/server/json/operations/JsonOperations.java
Expand Up @@ -27,14 +27,26 @@ public class JsonOperations {
* {@value #ENGINE}
*/
public static final String ENGINE = "engine"; // NOI18N
/**
* {@value #ENGINES}
*/
public static final String ENGINES = "engines"; // NOI18N
/**
* {@value #LOCATION}
*/
public static final String LOCATION = "location"; // NOI18N
/**
* {@value #LOCATION_COMMENT}
*/
public static final String LOCATION_COMMENT = "locationComment"; // NOI18N
/**
* {@value #LOCATION_ID}
*/
public static final String LOCATION_ID = "locationId"; // NOI18N
/**
* {@value #LOCATION_NAME}
*/
public static final String LOCATION_NAME = "locationName"; // NOI18N
/**
* {@value #TRAIN}
*/
Expand Down

0 comments on commit d4c6156

Please sign in to comment.