文本转语音(C读到变量,触发不了VB)

2022-10-25 19:16:26
微图
1282
最后编辑:微图 于 2024-11-15 09:48:30
分享链接

参考文章

https://www.sohu.com/a/572624139_120720030


实现思路

报警触发→触发动作→C脚本→语音播报=1→VB脚本

以下是远程开发的曲折过程

C读到变量,但是始终触发不了全局脚本VB。

据说全局脚本是单线程的,这种方式容易阻塞,只适合特小工程。

想了下,还不如通过云连接传给其他设备播放了。

放弃这种方式。


到现场一下调试就通了。


  MSG_CSDATA_STRUCT sM; // holds alarm info

  MSG_TEXT_STRUCT tMeld; // holds message text info

  CMN_ERROR pError;
if(mRT.dwMsgState == MSG_STATE_COME)
{

MSRTGetMsgCSData(mRT.dwMsgNr, &sM, &pError);

MSRTGetMsgText(0, sM.dwTextID[0], &tMeld, &pError);

SetTagBit("alarmComing",TRUE); //置位VBS脚本触发器

SetTagChar("alarmText",tMeld.szText); //报警消息文本

}



原文的VB代码有点问题,也重贴一下


Option Explicit
Function action

Dim speaker, alarmText

Dim alarmComing

alarmComing=HMIRuntime.Tags("alarmComing").Read

alarmText=HMIRuntime.Tags("alarmText").Read

If alarmComing = 1 Then

Set speaker = CreateObject("SAPI.SpVoice")

speaker.rate = 0 '语速

speaker.volume = 100 '音量

speaker.Speak alarmText

HMIRuntime.Tags("alarmComing").write 0

End If

End Function

windowsServer2019开启文本朗读

excel回车朗读

发表评论
评论通过审核后显示。
  • 在线客服
  • 关注微信
    • 客服帆帆
    • 客服娜娜
    • 客服美美
    • 客服龙龙
  • 扫一扫关注微信