/** * write paged mode CV to programming track * * @param tc * @param cv * @param val */ public static NceMessage getWritePagedCV(NceTrafficController tc, int cv, int val) { // test if supported on current connection if (tc.getUsbSystem() != NceTrafficController.USB_SYSTEM_NONE && (tc.getCmdGroups() & NceTrafficController.CMDS_PROGTRACK) != NceTrafficController.CMDS_PROGTRACK) { log.error("attempt to send unsupported binary command WRITE_PAGED_CV_CMD to NCE USB"); // return null; } if (tc.getCommandOptions() >= NceTrafficController.OPTION_2006) { NceMessage m = new NceMessage(4); m.setBinary(true); m.setReplyLen(1); m.setOpCode(WRITE_PAGED_CV_CMD); m.setElement(1, cv >> 8); m.setElement(2, cv & 0xFF); m.setElement(3, val); m.setNeededMode(jmri.jmrix.AbstractMRTrafficController.PROGRAMINGMODE); m.setTimeout(NCE_PAGED_CV_TIMEOUT); return m; } else { NceMessage m = new NceMessage(8); m.setBinary(false); m.setOpCode('P'); m.addIntAsThree(cv, 1); m.setElement(4, ' '); m.addIntAsThree(val, 5); m.setNeededMode(jmri.jmrix.AbstractMRTrafficController.PROGRAMINGMODE); m.setTimeout(NCE_PAGED_CV_TIMEOUT); return m; } }
/** * enter programming track mode * * @param tc */ public static NceMessage getProgMode(NceTrafficController tc) { // test if supported on current connection if (tc.getUsbSystem() != NceTrafficController.USB_SYSTEM_NONE && (tc.getCmdGroups() & NceTrafficController.CMDS_PROGTRACK) != NceTrafficController.CMDS_PROGTRACK) { log.error("attempt to send unsupported binary command ENTER_PROG_CMD to NCE USB"); // return null; } NceMessage m = new NceMessage(1); if (tc.getCommandOptions() >= NceTrafficController.OPTION_2006) { tc.setNceProgMode(true); m.setBinary(true); m.setReplyLen(1); m.setOpCode(ENTER_PROG_CMD); m.setTimeout(SHORT_TIMEOUT); } else { m.setBinary(false); m.setOpCode('M'); m.setTimeout(SHORT_TIMEOUT); } return m; }