001package jmri.jmrix.can.adapters.gridconnect.canrs.serialdriver; 002 003import jmri.jmrix.can.TrafficController; 004import jmri.jmrix.can.adapters.gridconnect.GcSerialDriverAdapter; 005import jmri.jmrix.can.adapters.gridconnect.canrs.MergTrafficController; 006 007/** 008 * Implements SerialPortAdapter for the MERG CAN-RS or CAN-USB. 009 * <p> 010 * This connects to the MERG adapter via a serial com port (real or virtual). 011 * Normally controlled by the SerialDriverFrame class. 012 * 013 * @author Andrew Crosland Copyright (C) 2008 014 * @author Bob Jacobsen Copyright (C) 2009 015 */ 016public class SerialDriverAdapter extends GcSerialDriverAdapter { 017 018 public SerialDriverAdapter() { 019 super(); 020 option2Name = "CANID"; 021 options.put(option2Name, new Option(Bundle.getMessage("JMRICANID"), 022 jmri.jmrix.can.cbus.CbusConstants.getValidFixedCanIds(), 023 jmri.jmrix.can.cbus.CbusConstants.DEFAULT_JMRI_CAN_ID_STRING )); 024 } 025 026 /** 027 * Set up all of the other objects to operate with a CAN RS adapter 028 * connected to this port. 029 */ 030 @Override 031 public void configure() { 032 033 // Register the CAN traffic controller being used for this connection 034 TrafficController tc = new MergTrafficController(); 035 tc.setCanId(getOptionState(option2Name)); 036 037 this.getSystemConnectionMemo().setTrafficController(tc); 038 039 // Now connect to the traffic controller 040 log.debug("Connecting port"); 041 tc.connectPort(this); 042 043 this.getSystemConnectionMemo().setProtocol(getOptionState(option1Name)); 044 045 // do central protocol-specific configuration 046 //jmri.jmrix.can.ConfigurationManager.configure(getOptionState(option1Name)); 047 this.getSystemConnectionMemo().configureManagers(); 048 } 049 050 private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(SerialDriverAdapter.class); 051 052}