我在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>
答案 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;
}