如何搜索数组以确定它是否包含一组值 在数组的特定元素范围内(可能是从位置2到位置7,第一个元素是帧的开始,长度等)
if input_data[1:5] == (45, 35, 230, 28)
if contains 45
send sensor 1 data;
if contains 35
send sensor 2 data;
if contains 230
send sensor 3 data;
if contains 28
send sensor 4 data;
它可能包含上述值的任何组合(order),或者不包含任何一个元素,如果找不到相关元素,则应该停止发送数据
我正在尝试根据收到的元素发送一些请求的数据
更新!!
根据我需要在后台发送请求的传出数据的已接收数据,仅收到一次数据(仅在更新时),
if input_data[1:5] == (45, 35, 230, 28)
if contains 45
send_Sensordata1 = 1
if contains 28
send_Sensordata4 = 1
在其他功能中(在后台运行)
if send_Sensordata1 ==1
do something here(main sending stuff goes here)
if send_Sensordata4 ==1
do something here (main sending stuff goes here)
所以在第一个输入数据中我得到了所有元素,然后发送了请求的数据,但是如果下一个输入数据中缺少一个元素,我需要停止发送该特定请求的传出数据(如切换)
答案 0 :(得分:3)
您必须遍历array
并每次都查找这些特定元素。
for(i=2; i<7; i++)
{
if(array[i] == 45)
send sensor 1 data;
else if(array[i] == 35)
send sensor 2 data;
else if(array[i] == 230)
send sensor 3 data;
else if(array[i] == 28)
send sensor 4 data;
}
答案 1 :(得分:0)
数组循环将从1开始以获取元素2,就像在c数组中从0开始一样。
for(i=1; i<7; i++)
{
if(array[i] == 45)
send sensor 1 data;
else if(array[i] == 35)
send sensor 2 data;
else if(array[i] == 230)
send sensor 3 data;
else if(array[i] == 28)
send sensor 4 data;
}