This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F28379D:重新访问 TMS320F28379D:GUI Composer:用按钮设置目标值的简单示例

Guru**** 2192885 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1466158/tms320f28379d-revisiting-tms320f28379d-gui-composer-simple-example-for-setting-value-on-target-with-button

器件型号:TMS320F28379D

工具与软件:

您好!

我尝试按照本主题中的上一条建议、通过单击按钮来设置目标值、从而实现了 javascript:

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1250817/tms320f28379d-gui-composer-simple-example-for-setting-value-on-target-with-button

我已在 index.js 中实现:

const init = () => {

GcWidget.querySelector('#myButton').then(widget => {
widget.addEventListener('click', async () => {
const binding = bindingRegistry.getBinding('pm.sampledata');
const value = binding.getValue();
// value = 1;
const value2 = 1;
binding.updateValue(value2);
alert("Button Clicked!");
});
});


};

我在目标上有一个无限 while 循环来检查采样数据的值、如果"采样 数据"变为一些非零值、则会在电路板上切换一个 LED、并且另一个变量也会递增、我可以通过链接到另一个 GUI Composer 文本框来监控该变量。

我得到"按钮被点击了!" 当我按下按钮时发出警报、但我看不到正在设置采样数据。  (LED 不在切换、变量不会递增)。

我是否需要将"GcWidget.***"放在其他地方?  或者、我还需要做些什么才能使它正常工作吗?

谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请注意、我有一种权变措施、其中我实现了一个虚拟/隐藏输入框、使用 GUI Composer 将这个新输入的 Value 字段链接到目标上的"buttonpress"变量。  通过按钮、我可以使用非常类似的代码来更新输入框中的值、进而将值传输到目标。   

    但 它应该仍然可以 直接写入一个值到 pm.buttonpress、而且我仍想研究此选项。   

    总之、解决方法:

    const init = () => {

    GcWidget.querySelector('#myButton').then(widget => {
    widget.addEventListener('click', async () => {

    myFunction();
    });
    });

    var myFunction = function(){
    const binding = bindingRegistry.getBinding('input_1.value');
    var value = binding.getValue();
    value++;
    binding.updateValue(value);
    alert("myFunction() called");

    };