使用函数在Arduino中记下变量名

时间:2015-12-22 19:15:04

标签: string function arduino

我在Arduino中有一个脚本会收到一封信,为了让事情尽可能短,我想使用一个字符串和另一个变量来获取我需要填写的变量名称进入功能。

我喜欢这个,因为我有一个函数mySwitch.send(Int, 24)。对于第一个Int变量,我需要发送一个取决于我发送的字母的数字,以及A_stat的当前值,我在变量A_aan,A_uit,B_aan,B_uit中定义了这些值等等。

例如,对于字母A,如果A_aan我需要填写变量a_stat == 0。如果a_stat == 1需要填写A_off

对于BI,如果B_aan需要填写变量b_stat == 0,我需要在B_uit的Int位置填写变量名b_stat == 1。< / p>

1 个答案:

答案 0 :(得分:1)

由于变量的值在运行时会有所不同,因此我认为唯一的解决方案是使用某些函数。

例如,如果您想获得#_aan,其中#是变量中的值,您可以使用以下函数:

int get_aan(char carat)
{
    switch(carat)
    {
        case 'A':
            return A_aan;
        case 'B':
            return B_aan;
        ...
    }
    return AN_INVALID_VALUE_YOU_DEFINE;
}

请记住在某处定义无效值。

如果必须设置该值,可以编写类似的set函数:

void set_aan(char carat, char value)
{
    switch(carat)
    {
        case 'A':
            A_aan = value;
            break;
        case 'B':
            B_aan = value;
            break;
        ...
    }
}

您还可以添加一些标记。例如,如果您希望在A_aan时获取变量A_stat = 0,在A_off时获取A_stat != 0,并为每个变量重复此操作,只需修改第一个函数:

int get_the_val(char carat)
{
    switch(carat)
    {
        case 'A':
            if (A_stat)
                return A_off;
            else
                return A_aan;
        case 'B':
            if (B_stat)
                return B_off;
            else
                return B_aan;
        ...
    }
    return AN_INVALID_VALUE_YOU_DEFINE;
}