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.

[参考译文] GUI Composer:使用折线图绘制数组时出现问题

Guru**** 2562120 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1216774/gui-composer-problem-when-plotting-an-array-using-a-line-graph

您好!

我尝试使用 GUI Composer 中的线图工具绘制一个数组。

我在 C 中定义了两个变量:

volatile int scalar = 9;
volatile int table[3] = {1, 3, 7};

然后、我将第一个绑定到.js 中:

        gc.databind.registry.bind('widget.linegraph.series_0_values', 
        // dependant
        {
            value: 'program.scalar',
        },
        // getter 
        function(inputs) 
        {
            var string = "";
            for (var i=0; i<3; i++)
            {
                string = string + ',' + inputs.value;
            }
            return string;
        },
        //setter
        {}
    );

一切看起来都很完美:

但当我尝试用"表"做类似的事情时:

        gc.databind.registry.bind('widget.linegraph.series_0_values', 
        // dependant
        {
            value: 'program.table',
        },
        // getter 
        function(inputs) 
        {
            var string = "";
            for (var i=0; i<3; i++)
            {
                string = string + ',' + inputs.value[i];
            }
            return string;
        },
        //setter
        {}
    );

我得到一个左侧有一个红色叉号的空图(但很快就不会在下面出现):

您能帮助我解决这个问题吗?

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

    您能否导出至存档并共享您的 GC 解决方案?

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

    这是你要求的吗?

    e2e.ti.com/.../guiproblem.zip

    现在、我可以看到缺少标识符的"稳定"问题:

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

    这是你要求的吗?

    guiproblem.zip

    [/报价]

    是的、没错。 谢谢你。 我很快就会介绍

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

    您找到了什么吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    现在,我可以看到缺少标识符的"稳定"问题:

    我也看到了这一点。  当我检查"DiodeFlashing.out"文件中的符号时、我看到的是"标量"而不是"表"。 您是否确定可执行文件具有全局数组"table"?

    在查看 app_0.js 文件时、我看到您正在进行绑定。 您正在对标量绑定进行一些字符串连接并返回字符串。 对于折线图、您应该只是返回值、而不是字符串。 您可以通过 GUI 在该折线图的属性中进行绑定。 我假设您将此作为测试来查看连接多个值并将其作为 js 文件中的字符串返回是否可行、因为您的主要目标是使其适用于数组中的多个元素 、以尝试绘制的所有元素 数组的一个折线图中。 因此、您读取每个元素、然后连接到尝试传递给行图的字符串。 我不确定这是否受支持。 我需要跟进工程部门。

    谢谢

    小标题

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

    我对自己的简单应用程序进行了实验、我创建并定义了以下全局变量:

    volatile int 标量= 9;
    volatile int table[3]={1、3、7};

    然后我将这款应用程序用于您的 GC 解决方案。 我看到正确绘制了标量和阵列线图:

    请忽略其它小组件的绑定失败。 我没有费心去考虑这些变量、仅考虑标量和表变量。

    它看起来工作正常。 因此、我怀疑您的应用程序中的"表"数组有一些问题。

    小标题

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以通过该行图属性中的 GUI 进行绑定

    对于折线图、只需在 GUI 中对标量和数组值进行绑定。 应支持这两者。  

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

    非常感谢您的支持!

    这很奇怪、因为我只用这个代码创建了一个全新的 CCS 工程:

    volatile int scalar = 9;
    volatile int table[3] = {1, 3, 7};
    
    int main(void)
    {
    	return 0;
    }

    我将此处的"table"绑定到一个折线图:

    我仍然有一个问题:缺少标识符:表

    当我检查"DiodeFlashing.out"文件中的符号时,我看到的是"标量"而不是"表"

    这可能是个愚蠢的问题、但我如何检查文件以检查变量是否在这里?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    可能是个愚蠢的问题,但我如何检查文件以检查变量是否在这里?

    使用 CCS IDE。启动调试会话并加载程序。 使用表达式视图或模块视图查看表数组是否在作用域中。

    确保已禁用工程优化、或者编译器可能会删除应用中未使用的变量。

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

    是的、确实如此。 问题在于、  编译器删除了数组表(但不是标量)。 我使用了易失性、但事实证明、它是不够的。 但另一方面、我的优化级别为"off":

    这样您就可以读取每个元素,然后连接到一个字符串,尝试传递到行图。 我不确定这是否受支持。 我需要跟进工程。

    我现在检查它,当是可见的,这是有效的(例如,每个元素提升到第二次幂):

    gc.databind.registry.bind('widget.linegraph3.series_0_values', 
        {value: 'program.table'},
        function(inputs) 
        {
            var string = "";
            for (var i=0; i<3; i++)
            {
                string = string + Math.pow(inputs.value[i],2) + ',';
            }
            return string;
        },
        {}
    );

    再次感谢您的帮助!