循环困难的基本Arduino \ c嵌套列表

时间:2014-08-05 08:21:21

标签: c# python arduino nested latitude-longitude

我正在开发一个自我arduino项目,试图让我的代码在过去3天内工作而没有任何成功。 我在python中编写代码以使主要思想工作,而不是尝试将其重写为基于arduino的系统。

self=[[1.23456,2.23456]]
list=[[1.75087,2.03031],[1.78371,2.04686],[1.78413,2.04696],[1.79346,2.09962]]

counter=0
for i in list:
      if abs(self[0]-i[0])<0.00165 and abs(self[1]-i[1])<0.00165:
          counter=1
      else:
          counter=0

print counter

这个想法应该非常简单,首先你有自己(经度/纬度),以及列出的嵌套列表。 for循环应检查列表中的每个项目以及它与自我的距离(abs)。

我是c#和arduino的初学者,而且无法让逻辑让它发挥作用。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

你的代码很好,除了self应该是列表而不是列表列表。其次,在循环内打印计数器。

self=[1.23456,2.23456]
list=[[1.75087,2.03031],[1.78371,2.04686],[1.78413,2.04696],[1.79346,2.09962]]

counter=0
for i in list:
    if abs(self[0]-i[0])<0.00165 and abs(self[1]-i[1])<0.00165:
        counter=1
    else:
        counter=0
    print counter

答案 1 :(得分:0)

Arduino看起来像C:

double selfLat = 1.23456;
double selfLon = 2.23456;

double list[4][2] = {
  {1.75087,2.03031},
  {1.78371,2.04686},
  {1.78413,2.04696},
  {1.79346,2.09962}
};

int counter=0;
for(int i=0; i<4; i++)
{
  int test1 = abs(selfLat - list[i][0]) < 0.00165;
  int test2 = abs(selfLon - list[i][1]) < 0.00165;
  if ( test1 && test2 ) counter = 1;
}