91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 1.32MB
    文件類型: .7z
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2023-08-30
  • 語言: C#
  • 標(biāo)簽: 串口助手??串口曲線??

資源簡介

串口發(fā)送數(shù)據(jù)到本上位機,上位機將數(shù)據(jù)轉(zhuǎn)換成曲線打印出來。本壓縮包包括 曲線打印助手 源工程文件(C#代碼)完全開源,同時內(nèi)含使用說明,代碼清晰明了,歡迎下載。

資源截圖

代碼片段和文件信息

using?System;
using?System.IO.Ports;
using?System.Threading;
using?System.Windows.Forms;

namespace?YJ_Chart
{
????public?partial?class?YJ?:?Form
????{
????????/*?定義程序中用到的常量?*/
????????const?int?RecvBufferOneframeSize?=?32;
????????/*?定義已經(jīng)接受到的數(shù)據(jù)長度?*/
????????int?SerialHaveRecvBufferLength?=?0;
????????/*?定義接受到的錯誤幀數(shù)?*/
????????int?SerialRecvFailframe?=?0;
????????/*?一次最大接受的數(shù)據(jù)長度?*/
????????const?int?MaxRecvLineNumber?=?7;
????????/*?定義接受數(shù)據(jù)緩沖區(qū),這里放大了100倍,防止數(shù)組溢出?*/
????????byte[]?RecvByteBuffer?=?new?byte[RecvBufferOneframeSize*100];
????????/*?定義一幀開始數(shù)據(jù)?*/
????????const?int?RecvBufferStartData?=?0x8c;
????????/*?定義接受數(shù)據(jù)的比例值?*/
????????float?RecvNumberScale?=?100.0f;

????????/*?開啟一個線程invoke,用來更新UI?*/
????????public?delegate?void?UIUpdateInvoke();???

????????public?YJ()
????????{
????????????InitializeComponent();
????????}

????????/*?窗口加載函數(shù),在這里進行一些初始化操作?*/
????????private?void?YJ_Load(object?sender?EventArgs?e)
????????{
????????????/*?初始化波特率?*/
????????????BaudComBox.Text?=?“115200“;
????????????/*?初始化比例系數(shù)?*/
????????????RecvNumberScaleTextBox.Text?=?“100.0“;
????????????/*?設(shè)置串口的相關(guān)屬性?*/
????????????/*?設(shè)置串口緩沖數(shù)據(jù)長度?*/
????????????MainSerialPort.ReceivedBytesThreshold?=?RecvBufferOneframeSize;
????????????/*?注冊回調(diào)函數(shù)?*/
????????????MainSerialPort.DataReceived?+=?new?SerialDataReceivedEventHandler(MainSerialPortDatRecvHandler);
????????????/*?搜索串口?*/
????????????SearchSerialPort(MainSerialPort?ComPortComBox);
????????}

????????/*?端口掃描函數(shù)?*/
????????private?void?SearchSerialPort(SerialPort?MySerialPort?ComboBox?MyPortComBox)
????????{
????????????/*?定義是否?串口是否準(zhǔn)備好了?標(biāo)志位?*/
????????????bool?SerialIsOk?=?false;
????????????/*?清除框內(nèi)的信息?*/
????????????MyPortComBox.Items.Clear();

????????????/*?對PC機進行20個端口的遍歷,一般PC機不會有20個串口,基本可以完全掃描?*/
????????????for?(int?index=1;?index<20;?index++)
????????????{
????????????????/*?try??語法,嘗試給串口賦值端口號?*/
????????????????try
????????????????{
????????????????????/*?設(shè)置端口名稱?遍歷COM1->COM20并賦值給串口號?*/
????????????????????MySerialPort.PortName?=?“COM“?+?index.ToString();
????????????????????/*?嘗試打開串口?能成功打開則說明成功掃描到串口,打開失敗則跳到catch并繼續(xù)循環(huán)?*/
????????????????????MySerialPort.Open();
????????????????????/*?將端口號添加到端口框?*/
????????????????????MyPortComBox.Items.Add(“COM“?+?index.ToString());
????????????????????/*?自動將掃描成功的串口顯示端口框?*/
????????????????????MyPortComBox.Text?=?“COM“?+?index.ToString();
????????????????????/*?保證在掃描完成時,串口是關(guān)閉的?*/
????????????????????MySerialPort.Close();
????????????????????/*?該端口正常?*/
????????????????????SerialIsOk?=?true;
????????????????}
????????????????catch
????????????????{
????????????????}
????????????}

????????????/*?判斷是否成功找到串口?*/
????????????if?(SerialIsOk)
????????????{
????????????????/*?成功掃描到串口??則表示正常?無提示?打開串口?*/
????????????}
????????????else
????????????{
????????????????MessageBox.Show(“未找到串口“?“提示“);
????????????}
????????}

????????/*?串口接受數(shù)據(jù)回調(diào)函數(shù)?*/
????????private?void?MainSerialPortDatRecvHandler(object?sender

評論

共有 條評論