1 package kernel.serial_ports;
3 import gnu.io.CommPortIdentifier;
6 import java.util.ArrayList;
7 import java.util.Enumeration;
9 import java.util.Vector;
19 private final String applicationName;
34 this.applicationName = applicationName;
35 this.portWrapper = portWrapper;
42 return this.applicationName;
49 Enumeration portIdentifiers = this.portWrapper.getPortIdentifiers();
50 List<CommPortIdentifier> identifierList = castPortIdentifiersToList(
53 List<CommPortIdentifier> serialPortList = filterForSerialPorts(
57 return getPortNamesForList(serialPortList);
67 return new RXTXPortWrapper(portName);
81 private static List<CommPortIdentifier> castPortIdentifiersToList(
82 Enumeration commPortIdentifiers
84 List<CommPortIdentifier> portIdentifierList =
new Vector<>();
85 CommPortIdentifier portIdentifier;
87 while(commPortIdentifiers.hasMoreElements()){
88 portIdentifier = castToPortIdentifier(
89 commPortIdentifiers.nextElement()
91 portIdentifierList.add(portIdentifier);
94 return portIdentifierList;
103 private static CommPortIdentifier castToPortIdentifier(
104 Object portIdentifier){
105 return (CommPortIdentifier)(portIdentifier);
116 private static List<CommPortIdentifier> filterForSerialPorts(
117 List<CommPortIdentifier> identifierList){
119 List<CommPortIdentifier> serialPorts =
new ArrayList<>(
120 identifierList.size()
123 for(CommPortIdentifier identifier: identifierList){
124 if(identifier.getPortType() == CommPortIdentifier.PORT_SERIAL){
125 serialPorts.add(identifier);
137 private static List<String> getPortNamesForList(
138 List<CommPortIdentifier> portIdentifiers
140 List<String> portNames =
new ArrayList<>(portIdentifiers.size());
142 for(CommPortIdentifier identifier: portIdentifiers){
143 portNames.add(identifier.getName());
SerialPort getPortByName(String portName)
String getApplicationName()
RXTXPortDriver(String applicationName, PortIdentifierGetter portWrapper)
List< String > getSerialPortNames()