@@ -17,8 +17,8 @@ class PortScreen extends StatefulWidget {
1717class _PortScreenState extends State <PortScreen >
1818 with SingleTickerProviderStateMixin {
1919 final ScrollController scrollControllerHorizontal = ScrollController ();
20- String ? dropdownValue;
21- List <String > availablePorts = [];
20+ SerialPort ? dropdownValue;
21+ List <SerialPort > availablePorts = [];
2222 late AnimationController animationController;
2323 bool refreshPressed = false ;
2424
@@ -35,7 +35,10 @@ class _PortScreenState extends State<PortScreen>
3535
3636 void initPorts () {
3737 setState (() {
38- availablePorts = SerialPort .availablePorts;
38+ availablePorts.clear ();
39+ for (final address in SerialPort .availablePorts) {
40+ availablePorts.add (SerialPort (address));
41+ }
3942 dropdownValue = null ;
4043 });
4144 }
@@ -123,10 +126,10 @@ class _PortScreenState extends State<PortScreen>
123126 ],
124127 ),
125128 items: availablePorts
126- .map ((item) => DropdownMenuItem <String >(
129+ .map ((item) => DropdownMenuItem <SerialPort >(
127130 value: item,
128131 child: Text (
129- item,
132+ item.description ?? 'Unknown' ,
130133 style: const TextStyle (
131134 fontSize: 20 ,
132135 color: Colors .black,
@@ -136,9 +139,9 @@ class _PortScreenState extends State<PortScreen>
136139 ))
137140 .toList (),
138141 value: dropdownValue,
139- onChanged: (String ? value) {
142+ onChanged: (SerialPort ? value) {
140143 setState (() {
141- dropdownValue = value ?? '' ;
144+ dropdownValue = value ?? SerialPort ( 'COM0' ) ;
142145 });
143146 },
144147 icon: const Icon (
@@ -233,9 +236,10 @@ class _PortScreenState extends State<PortScreen>
233236
234237 Future <void > establishConnection () async {
235238 if (dropdownValue != null ) {
236- SerialPortUtils (serialPort: SerialPort ( dropdownValue ?? 'COM0' ) );
237- Navigator .push (
239+ SerialPortUtils (serialPort: dropdownValue);
240+ await Navigator .push (
238241 context, MaterialPageRoute (builder: (context) => SettingsScreen ()));
242+ initPorts ();
239243 }
240244 }
241245}
0 commit comments