博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
powershell 串口相关
阅读量:5821 次
发布时间:2019-06-18

本文共 2198 字,大约阅读时间需要 7 分钟。

 

1 # 使用 powershell 测试串口数据 2  3 # 列出有对外使用价值的函数 4 function showFunctions() 5 { 6     'function list:' 7     '    listPortNames()' 8     '    getPort($portSetting)' 9     '    closePort($port)'10     '    sendReceiveAndDisplayBytes($port, $hexString)'11     '----'12 }13 14 # 列出串口列表15 function listPortNames()16 {17     return [System.IO.Ports.SerialPort]::getPortNames();18 }19 20 # 获取 SerialPort 对象21 # portSetting : COM3,9600,none,8,one22 function getPort($portSetting)23 {24     return new-object System.IO.Ports.SerialPort $portSetting;25 }26 27 # 关闭串口28 function closePort($port)29 {30     $port.close();31     return 'done';32 }33 34 # 发送接收和显示字节35 # hexString 16进制表示的字节值字符串,以空格分割数据, 例: 01 02 0F36 function sendReceiveAndDisplayBytes($port, $hexString)37 {38     write-host -noNewline 'send : ';39     write-host $hexString; # 显示参数40     if ($hexString -eq $null) {41         write-host 'input is null, stopped!';42         return;43     }44     $bytes4send = convertToByteArray $hexString;45     $port.write($bytes4send, 0, $bytes4send.length);46 47     $recvBuffer = new-object byte[] 128;48     start-sleep -MilliSeconds 100;49     $recvLen    = $port.read($recvBuffer, 0, 128);50     51     displayBytesAsHex $recvBuffer 0 $recvLen;52 }53 54 # 将16进制字符串转换成字节数组55 function convertToByteArray($hexString)56 {57     $seperator = new-object String[] 1;58     $seperator[0] = ' ';59     $hexArray = $hexString.Split($seperator, [System.StringSplitOptions]::RemoveEmptyEntries);60 61     $result = new-object byte[] $hexArray.length;62     for ($i = 0; $i -lt $result.length; $i++) {63         $result[$i] = [System.Convert]::ToByte($hexArray[$i], 16);64     }65     return $result;66 }67 68 # bytes  要显示的字节数组, 69 # offset 从第一个字节起的偏移量,70 # count  在字节数组中读取的长度,71 #     byte to hex string : 72 #         a) [System.Convert]::toString($bytes[$i], 16);73 #         b) aByte.toString("X2")  // 小于16会加一个0, 形如: 0E74 function displayBytesAsHex($bytes, $offset, $count)75 {76     $result = 'receive : ';77     for ($i = $offset; $i -lt ($offset + $count); $i++) {78         $result += ' ' + $bytes[$i].toString("X2");79     }80     return $result;81 }

 

转载于:https://www.cnblogs.com/shadow-abyss/p/11009752.html

你可能感兴趣的文章
POJ 2778 DNA Sequence (AC自己主动机 + dp)
查看>>
go--Ubuntu下安装GO LANG,测试输入hello world
查看>>
每天一个linux命令:locate
查看>>
CSS实现水平垂直同时居中的6种思路
查看>>
swift代码排版-参考
查看>>
JS中的prototype
查看>>
post processing
查看>>
Linux下使用Speedtest测试网速
查看>>
MyBatis参数传入集合之foreach动态sql
查看>>
2016中国房企500强完整榜单
查看>>
在阿里云上进行Docker集群的自动弹性伸缩
查看>>
结构类模式(五):外观(Facade)
查看>>
Android 异步更新UI-线程池-Future-Handler实例分析
查看>>
非常好的理解遗传算法的例子
查看>>
【Unity】用代码给按钮动态添加点击事件
查看>>
NOIP模拟赛20161114
查看>>
easyui-window 关闭事件,只要关闭窗口就会触发
查看>>
[转]How to: Create a Custom Principal Identity
查看>>
android图像处理(3)底片效果
查看>>
分治6--循环比赛日程表
查看>>