python能不能仿真传感器节点定位

Python018

python能不能仿真传感器节点定位,第1张

能。Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。python能仿真传感器节点定位。无线传感器网络中的节点定位是指传感器节点根据网络中少数已知节点的位置信息,通过一定的定位技术确定网络中别的节点的位置信息的过程。

本文接下来尝试使用qtgraph来可视化节点之间的关系。

说来尴尬,尝试了一下,忘记什么原因就弃坑了。

只记得使用命令:

可以方便的得到官方demo进行学习,官方这里做的很用心。

貌似是尝试在两个圆节点之间画箭头,但qtgraph的箭头还要自己算角度之类的,有点麻烦。

然后发现了matplotlib功能比较丰富,就上手了。

Ignite集群管理——基于Zookeeper的节点发现

Ignite支持基于组播,静态IP,Zookeeper,JDBC等方式发现节点,本文主要介绍基于Zookeeper的节点发现。

环境准备,两台笔记本电脑A,B。A笔记本上使用VMware虚拟机安装了Ubuntu系统C。

1、 C安装Zookeeper

由于主要测试Ignite,这里仅仅简单安装一个zookeeper节点,下载zookeeper解压后,直接执行zookeeper目录下的bin/zkServer.sh start命令则成功启动zookeeper。

查看Ubuntu系统C的IP地址为192.168.1.104,zookeeper默认端口为12181。

注意:这里VMware虚拟机的网络适配器一定要选择桥接模式,否则A机器无法访问虚拟机。

2、 A系统运行Ignite节点1;

代码中加粗的部分便是Ignite注册代码,十分简单。

package com.coshaho.learn.ignite.clusterimport org.apache.ignite.Igniteimport org.apache.ignite.IgniteCacheimport org.apache.ignite.Ignitionimport org.apache.ignite.cache.CacheModeimport org.apache.ignite.configuration.CacheConfigurationimport org.apache.ignite.configuration.IgniteConfigurationimport org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpiimport org.apache.ignite.spi.discovery.tcp.ipfinder.zk.TcpDiscoveryZookeeperIpFinder/**

*

* IgniteCluster01.java Create on 2017年6月3日 下午10:52:38    

*    

* 类功能说明:   基于zookeeper集群

*

* Copyright: Copyright(c) 2013

* Company: COSHAHO

* @Version 1.0

* @Author coshaho */public class IgniteCluster01

{    public static void main(String[] args)

   {        TcpDiscoverySpi spi = new TcpDiscoverySpi()

       TcpDiscoveryZookeeperIpFinder ipFinder = new TcpDiscoveryZookeeperIpFinder()       // Specify ZooKeeper connection string.

       ipFinder.setZkConnectionString("192.168.1.104:12181")

       spi.setIpFinder(ipFinder)

       IgniteConfiguration cfg = new IgniteConfiguration()       // Override default discovery SPI.        cfg.setDiscoverySpi(spi)       // Start Ignite node.

       Ignite ignite =Ignition.start(cfg)

System.out.println("IgniteCluster1 start OK.")

       CacheConfiguration<Integer, String>cacheCfg = new CacheConfiguration<Integer, String>()

       cacheCfg.setBackups(1)

       cacheCfg.setCacheMode(CacheMode.PARTITIONED)

       cacheCfg.setName("myCache")

       IgniteCache<Integer, String>cache = ignite.getOrCreateCache(cacheCfg)

       cache.put(1, "ignite1")

       System.out.println(cache.get(1))

       System.out.println(cache.get(2))

   }

}

3、 B系统运行Ignite节点2;

package com.coshaho.learn.ignite.clusterimport org.apache.ignite.Igniteimport org.apache.ignite.IgniteCacheimport org.apache.ignite.Ignitionimport org.apache.ignite.cache.CacheModeimport org.apache.ignite.configuration.CacheConfigurationimport org.apache.ignite.configuration.IgniteConfigurationimport org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpiimport org.apache.ignite.spi.discovery.tcp.ipfinder.zk.TcpDiscoveryZookeeperIpFinderpublic class IgniteCluster02

{    public static void main(String[] args)

{

TcpDiscoverySpi spi = new TcpDiscoverySpi()

TcpDiscoveryZookeeperIpFinder ipFinder = new TcpDiscoveryZookeeperIpFinder()       // Specify ZooKeeper connection string.

ipFinder.setZkConnectionString("192.168.1.104:12181")

spi.setIpFinder(ipFinder)

IgniteConfiguration cfg = new IgniteConfiguration()       // Override default discovery SPI.        cfg.setDiscoverySpi(spi)       // Start Ignite node.

Ignite ignite =Ignition.start(cfg)

System.out.println("IgniteCluster2 start OK.")

CacheConfiguration<Integer, String>cacheCfg = new CacheConfiguration<Integer, String>()

cacheCfg.setBackups(1)

cacheCfg.setCacheMode(CacheMode.PARTITIONED)

cacheCfg.setName("myCache")

IgniteCache<Integer, String>cache = ignite.getOrCreateCache(cacheCfg)

cache.put(2, "ignite2")

System.out.println(cache.get(1))

System.out.println(cache.get(2))

}

}

可以看到,Ignite节点2可以成功访问到Ignite节点1存入缓存的数据。