基于JS的串口助手 脚本应用
软件下载链接链接:
https://download.csdn.net/download/weixin_41617063/85373149
脚本实现:
通过232 串口数据发送,与接收,判定数据线的好与坏,
通过测量100组数据的误码率,实现判定。
脚本内容:
var Count =0;
var SendCount =0;
var Test_Count=0;
//
var Flag_send =0;
var Flag_ResultShow=false;
var Flag_TestShow=false;
var TestData =" "
var LineCount=0;
// 入口函数
function Run()
{
//要发送的数据
var testStr="如果对这些商品有特别需求的群体,一定要进行适当的储存,减少后续购买商品的成本。油价的走势十分明朗,一直到上个月的二十八号,国内油价已经出现了八次调整,其中有七次是将价格上涨,唯一一次下降是在第七次,但第八次调整时,又迅速恢复了原状。";
//首次启动显示
if(SendCount==0 && !Flag_TestShow)
{
Test_Count=0;
My.Print("\r****************************************************");
My.Print("\r 串口误码率测试应用 ");
My.Print("\r****************************************************\r");
Timer.InitTimer(1,10); // 初始化定时计数器
LineCount=0;
Flag_TestShow =true;
}
//测试完成后,不在继续测试
if(Flag_ResultShow) return;
if(Timer.TimedTo(1)) //计数器 1 计时到达
{
Timer.ResetTimer(1); //计数器 1 复位
My.PortSendStr(testStr); //发送要测试的数据
var GetStr=My.GetPortData(); //从串口接收要测试的数据
//My.Print(SendCount);
if (GetStr!=false) // 是否接收到数据
{
//My.Print(GetStr);
var Str=GetStr.substr(4, GetStr.length); //截取接收到的字符串信息
if(Str==testStr){Test_Count++; } //与发送的字符串信息进行比较
}
LineCount++;
My.Print(">"); //显示进度
if( LineCount>=50)
{
LineCount=0;
My.Print("\r");
}
SendCount++;
}
if(SendCount<100) return; //测量次数没有达到
if(Test_Count==SendCount) //测量次数达到,显示测量结果
{My.Print("测试通过"); }
else
{My.Print("测试失败,误码率="+(SendCount- Test_Count )*100/SendCount+"%"); }
Flag_ResultShow =true;
}