带下拉列表的串口连接

该代码段展示了在Unity环境中使用C#实现串口管理的类`Mabagenment`,包括获取串口名称、设置波特率、打开和关闭串口的功能。通过`SerialPort`类进行串口操作,并结合UI元素显示串口状态。
摘要由CSDN通过智能技术生成

整体代码:

using System;
using System.Collections;
using System.Collections.Generic;
using System.IO.Ports;
using UnityEngine;
using UnityEngine.UI;

public class Mabagenment : MonoBehaviour
{
   
    //可用串口号缓存
    private string[] serial_A;
    //串口号缓存
    private string serial_Name;
    //波特率
    private int baudRate = 9600;
    //开关串口判断
    private bool close = false;
    //串口号文本
    public Text portNames_text;
    //连接状态显示
    public GameObject close_gameobject;
    //实例化一个串口
    public SerialPort serialPort = new SerialPort();
    //开关串口
    public Text CLose;
    //开关串口提示
    public Text Nhint_Text;
    public Dropdown dropdiwb;
    
    private void Start()
    {
        //获取串口号
        serial_A = SerialPort.GetPortNames();
        //赋值串口号
        serial_Name = serial_A[0];
        //显示串口号
        portNames_text.text = serial_Name;
    }
    //搜索设备
    public void GetSerialPort_Names()
    {
        //重置数组
        for (int i = 0; i < serial_A.Length; i++)
        {
            serial_A[i] = "";
        }
        //赋值串口号
        for (int i = 0; i < serial_A.Length; i++)
        {
          serial_A = SerialPort.GetPortNames();
          List<string> inside = new List<string> { serial_A[i] };
          dropdiwb.AddOptions(inside); 
        }
        //获取串口号     
        serial_A = SerialPort.GetPortNames();
        
        //显示串口号
        portNames_text.text = serial_Name;
    }

    private void Open_SerialPort()
    {
        if (!close)
        {
            try
            {
                //定义串口属性变量
                serialPort = new SerialPort(serial_Name, baudRate);
                //开启串口
                serialPort.Open();
                close_gameobject.SetActive(true);
                CLose.text = "关闭串口";
                Nhint_Text.text = "串口已打开";
                
                close = true;
            }
            //报错处理
            catch (Exception EX)
            {
                //关闭串口
                serialPort.Close();
                close_gameobject.SetActive(false);
                throw;
            }
        }
        else
        {
            //关闭串口
            serialPort.Close();
            close = false;
            CLose.text = "打开串口";
            close_gameobject.SetActive(false);
        }
       
    }
    //返回菜单
    public void Show()
    {
        gameObject.SetActive(true);
    }
    public void Hit()
    {
        gameObject.SetActive(false);
    }
    //退出
    public void Quit()
    {
#if UNITY_EDITOR
        UnityEditor.EditorApplication.isPlaying = false;
#else
       Application.Quit();
#endif

    }
}

请添加图片描述
编辑器状态下:
在这里插入图片描述
打开串口:
在这里插入图片描述
关闭串口:
在这里插入图片描述

参数面板:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值