示例#1
0
 public IOTPhenomemon(IOTPhenomemonType type, int nodeId, double time, Packet pkg)
 {
     this.type = type;
     this.nodeId = nodeId;
     this.start = this.end = time;
     this.pkg = pkg;
 }
示例#2
0
 static double OR(IOTPhenomemonType t1, IOTPhenomemonType t2, int node, List<IOTPhenomemon> observedPhenomemons)
 {
     double a = ConditionHappened(t1, node, observedPhenomemons);
     double b = ConditionHappened(t2, node, observedPhenomemons);
     //return the smaller one
     return (a > b) ? a : b;
 }
示例#3
0
 public IOTPhenomemon(IOTPhenomemonType type, int nodeId, double start, double end, Packet pkg)
 {
     this.type = type;
     this.nodeId = nodeId;
     this.start = start;
     this.end = end;
     this.pkg = pkg;
 }
示例#4
0
 static double ConditionHappened(IOTPhenomemonType type, int node, List<IOTPhenomemon> observedPhenomemons)
 {
     for(int i=0;i<observedPhenomemons.Count;i++)
     {
         if(observedPhenomemons[i].node == node && observedPhenomemons[i].type == type)
             return observedPhenomemons[i].likehood;
     }
     return 0.001;
 }
示例#5
0
 static double ConditionHappened(HashSet<IOTPhenomemon> observedPhenomemons, IOTPhenomemonType type, int node,
     double starttime, double endtime, IOTPhenomemon p1, ComparePhenomemon comparer)
 {
     foreach (IOTPhenomemon p in observedPhenomemons)
     {
         if (p.nodeId == node && p.type == type
             && p.start >= starttime && p.end <= endtime
             && comparer(p1, p))
         {
             return p.likehood;
         }
     }
     return global.SmallValue;
 }
示例#6
0
 static double ConditionHappened(HashSet<IOTPhenomemon> observedPhenomemons, IOTPhenomemonType type, int node,
     double starttime, double endtime, IOTPhenomemon p1, List<IOTPhenomemon> list, ComparePhenomemon comparer)
 {
     double likehood = global.SmallValue;
     foreach (IOTPhenomemon p in observedPhenomemons)
     {
         if (p.nodeId == node && p.type == type
             && p.start >= starttime && p.end <= endtime
             && comparer(p1, p))
         {
             list.Add(p);
             likehood = Math.Max(p.likehood, likehood);
         }
     }
     return likehood;
 }
示例#7
0
 static double ConditionHappened(HashSet<IOTPhenomemon> observedPhenomemons, IOTPhenomemonType type, int node, double starttime, double endtime, Packet pkg)
 {
     foreach (IOTPhenomemon p in observedPhenomemons)
     {
         if (p.nodeId == node && p.type == type
             && p.start >= starttime && p.end <= endtime
             && Packet.IsSamePacket(p.pkg, pkg))
             return p.likehood;
     }
     return global.SmallValue;
 }
示例#8
0
 static double ConditionHappened(HashSet<IOTPhenomemon> observedPhenomemons, IOTPhenomemonType type, int node, double time)
 {
     foreach (IOTPhenomemon p in observedPhenomemons)
     {
         if (p.nodeId == node && p.type == type && Utility.DoubleEqual(p.start, time))
             return p.likehood;
     }
     return global.SmallValue;
 }
示例#9
0
 static double ConditionHappened(HashSet<IOTPhenomemon> observedPhenomemons, IOTPhenomemonType type, int node, double starttime, double endtime)
 {
     foreach (IOTPhenomemon p in observedPhenomemons)
     {
         if (p.nodeId == node && p.type == type
             && p.start >= starttime && p.end <= endtime)
             return p.likehood;
     }
     if (type == IOTPhenomemonType.DIST_FAR)//如果计算节点距离的可能性,且不在邻居中,则说明该节点很远,可能性为很大
         return 0.8;
     else
         return global.SmallValue;
 }
示例#10
0
 public IOTPhenomemon(IOTPhenomemonType type, int nodeId)
 {
     this.type = type;
     this.nodeId = nodeId;
     this.start = this.end = Scheduler.getInstance().currentTime;
 }
示例#11
0
 static double ConditionHappened(List<IOTPhenomemon> observedPhenomemons, IOTPhenomemonType type, int node,
     double starttime, double endtime, IOTPhenomemon p, ComparePhenomemon comparer)
 {
     for (int i = 0; i < observedPhenomemons.Count; i++)
     {
         if (observedPhenomemons[i].nodeId == node && observedPhenomemons[i].type == type
             && observedPhenomemons[i].start >= starttime && observedPhenomemons[i].end <= endtime
             && comparer(p, observedPhenomemons[i]))
         {
             return observedPhenomemons[i].likehood;
         }
     }
     return global.SmallValue;
 }
示例#12
0
 static double ConditionHappened(List<IOTPhenomemon> observedPhenomemons, IOTPhenomemonType type, int node,
     double starttime, double endtime, IOTPhenomemon p, List<IOTPhenomemon> list, ComparePhenomemon comparer)
 {
     double likehood = global.SmallValue;
     for (int i = 0; i < observedPhenomemons.Count; i++)
     {
         if (observedPhenomemons[i].nodeId == node && observedPhenomemons[i].type == type
             && observedPhenomemons[i].start >= starttime && observedPhenomemons[i].end <= endtime
             && comparer(p, observedPhenomemons[i]))
         {
             list.Add(observedPhenomemons[i]);
             likehood = Math.Max(observedPhenomemons[i].likehood, likehood);
         }
     }
     return likehood;
 }
示例#13
0
 static double ConditionHappened(List<IOTPhenomemon> observedPhenomemons, IOTPhenomemonType type, int node, double starttime, double endtime, Packet pkg)
 {
     for (int i = 0; i < observedPhenomemons.Count; i++)
     {
         if (observedPhenomemons[i].nodeId == node && observedPhenomemons[i].type == type
             && observedPhenomemons[i].start>=starttime && observedPhenomemons[i].end<=endtime
             && Packet.IsSamePacket(observedPhenomemons[i].pkg, pkg))
             return observedPhenomemons[i].likehood;
     }
     return global.SmallValue;
 }
示例#14
0
 static double ConditionHappened(List<IOTPhenomemon> observedPhenomemons, IOTPhenomemonType type, int node, double time)
 {
     for(int i=0;i<observedPhenomemons.Count;i++)
     {
         if (observedPhenomemons[i].nodeId == node && observedPhenomemons[i].type == type && Utility.DoubleEqual(observedPhenomemons[i].start, time))
             return observedPhenomemons[i].likehood;
     }
     return global.SmallValue;
 }