Swift iBeacon使用精度或rssi进行间隔

时间:2016-12-10 14:01:00

标签: ios swift xcode ibeacon beacon

我有一个带有6个iBeacons的房间并且如果其中一个距离设备不到2.5米就会调用一个动作,但这样做效果不好,因为经常会有很大的干扰,导致错误动作。 我的问题是如何使用rssi值或精度对这些信标进行排序更好?

在我用于排序/调用操作的代码下面:

function muestraDatos(){
    var var1=document.getElementById("clogin").value;
    var var2=document.getElementById("cpassword").value;
    var var3=document.getElementById("cemail").value;
    var var4=document.getElementById("cnombre").value;
    var var5=document.getElementById("capellido").value;
    var var6=document.getElementById("cfecha").value;
    var var7=document.getElementById("cedad").value;
    var var8=document.getElementById("ccolor").value;
    var var9=document.getElementById("ccalle").value;
    var var10=document.getElementById("ccpostal").value;
    var var11=document.getElementById("cpoblacion").value;
    var var12=document.getElementById("cprovincia").value;
    var var13=document.getElementById("ctelefono").value;
    var var14=document.getElementById("csemestre").value;
    var var15=document.getElementById("ccarrera").value;
    var var16=document.getElementByName('cinteres').value;
    alert("Login: "+var1+"\nPassword: "+var2+"\nEmail: "+var3+"\Nombre: "+var4+" "+var5+"\nFecha de nacimiento: "+var6+"\nEdad: "+var7+"\nColor preferido: "+var8+"\nCalle: "+var9+"\nCódigo postal: "+var10+"\nPoblación: "+var11+"\nProvincia: "+var12+"\nTeléfono: "+var13+"\nSemestre: "+var14+"\nCarrera: "+var15+"\nInterés: "+var16);
}

<form onsubmit="return muestraDatos()">
  <fieldset>
    <legend>Solicitud socio</legend>
    <label>Login: </label>
    <input type="text" id="clogin" />
    <br/>
    <label>Password: </label>
    <input type="text" id="cpassword" />
    <br/>
    <label>Email: </label>
    <input type="email" id="cemail" />
    <br/>
    <strong>Datos personales:</strong>
    <br/>
    <label>Nombre: </label>
    <input type="text" id="cnombre" />
    <br/>
    <label>Apellido: </label>
    <input type="text" id="capellido" />
    <br/>
    <label>Fecha de nacimiento: </label>
    <input type="date" id="cfecha" />
    <br/>
    <label>Edad: </label>
    <input type="number" min="18" max="100" step="1" value="18" id="cedad" />
    <br/>
    <label>Color preferido: </label>
    <input type="color" id="ccolor" />
  </fieldset>
  <fieldset>
    <legend>Contacto</legend>
    <label>Calle: </label>
    <input type="text" id="ccalle" />
    <br/>
    <label>Código postal: </label>
    <input type="text" id="ccpostal" />
    <br/>
    <label>Población: </label>
    <input type="text" id="cpoblacion" />
    <br/>
    <label>Provincia: </label>
    <input type="text" id="cprovincia" />
    <br/>
    <label>Teléfono: </label>
    <input type="tel" id="ctelefono" />
    <br/>
    <strong>Datos estudiante:</strong>
    <br/>
    <label>Semestre </label>
    <select id="csemestre">
      <option value="semestreP">primero</option>
      <option value="semestreS">segundo</option>
    </select>
    <label>Carrera </label>
    <select id="ccarrera">
      <option value="disenyo">diseño</option>
      <option value="arquitectura">arquitectura</option>
      <option value="derecho">derecho</option>
      <option value="otra">otra</option>
    </select>
    <br /> Interés
    <br/>
    <label>Pintar</label>
    <input type="radio" name="cinteres" value="pintar" />
    <label>Hacer deporte</label>
    <input type="radio" name="cinteres" value="hacerdeporte" />
    <label>Ver peliculas</label>
    <input type="radio" name="cinteres" value="verpeliculas" />
    <label>Escuchar musica</label>
    <input type="radio" name="cinteres" value="escucharmusica" />
    <label>Leer</label>
    <input type="radio" name="cinteres" value="leer" />
    <br />
    <input type="submit" value="Enviar datos" />
  </fieldset>
</form>

2 个答案:

答案 0 :(得分:1)

悲伤的答案是&#34;以上都不是&#34;。 &#34;准确性&#34;阅读是与灯塔距离的最佳来源,但它是非常原油。在手机顶部考虑远,中,近和右。试图更精细地评估距离是毫无意义的,甚至是不确定的。无线电信号强度受到许多与距离无关的变量的影响,因此它不是一个非常准确的测量。

答案 1 :(得分:1)

使用CLBeacon&#39; rssiaccuracy字段进行排序信标的最大区别在于可变性或数量和平均间隔。

精确度字段的平均值大约为20秒,因此它基本上可以为您提供设备在过去20秒内的估计距离。真正的优势是这个数字比rssi 噪音小得多,但是存在显着滞后

rssi字段平均超过1秒,因此它使用的数据点更少。虽然时间滞后,但它还有很多更多的噪音。如果使用rssi进行排序,您会看到排序顺序跳了很多。

你必须根据@ Duncan-C在答案中描述的这些数字的准确度来适当地设定你的期望值。但对于一些精度不重要的用例,它们可以很好地工作。