def initCAOC(Data,node): caocref = CAOC(Data.numDrones,Data.heuristic,node) caocref.setConnectionParams(PYRO_HOST, PYRO_PORT) print('CAOC initialized') return caocref
def main(): print 'Start' #x=5 #a=[2,4,6,8] #if x>=a[len(a)-1]: #a.append(x) #else: #for i in range(len(a)): #if x<a[i]: #a.insert(i,x) #break #print a #print a.pop() for i in range(3): print '' print '############################# Heuristic ' + str(i+1) + ' #############################' random.seed(1) mapX=50 mapY=50 numStreets=10 numTargets=9 numDrones=3 heuristic=i+1 seedNum=1 Nuisance=0.8 print 'Heuristic: ' + str(heuristic) print '-------------Generate Map-------------' Map = GenMap(mapX,mapY) Map.map(numStreets,Nuisance) randNodes=[] for i in range(numTargets+numDrones): randNodes.append(Map.RandNode()) print 'Node List: ' + str(randNodes) print '-------------Generate HMINT, CAOC, IMINT, Drone-------------' hmint = HMINT(numTargets, randNodes) hmintInQ = LPInputQueue() caoc=CAOC(numDrones,heuristic) caocInQ = LPInputQueue() imint=IMINT(heuristic,numTargets) imintInQ = LPInputQueue() drone=Drone(0,0,heuristic) droneInQ=LPInputQueue() lp=[hmint,caoc,imint] print '-------------Initialize Target and Drone Data -------------' tData=[] for i in range(numTargets): tData.append([i,10+i,random.random(),'Vehicle',1,1,randNodes[i],10*random.random(),0,0]) print 'Target Data: ' + str(tData) dData=[] for i in range(numDrones): dData.append([i,'Idle',randNodes[numTargets+i]]) print 'Drone Data: ' + str(dData) print '-------------Generate Messages-------------' dMsg=[] for i in range(numDrones): dMsg.append(Message(3,dData[i],dData[i][0],'CAOC',0)) print 'Drone Messages: ' + str(dMsg) tMsg=[] for i in range(numTargets): tMsg.append(Message(2,tData[i],'HMINT','CAOC',i+1)) print 'Target Messages: ' + str(tMsg) print '-------------Send Messages-------------' for i in range(numDrones): print 'Drone ' + str(dMsg[i].data[0]) + ' Location: ' + str(dMsg[i].data[2].xpos) + ', ' +str(dMsg[i].data[2].ypos) for i in range(numTargets): print 'Tgt ' + str(tMsg[i].data[0]) + ' Location: ' + str(tMsg[i].data[6].xpos) + ', ' +str(tMsg[i].data[6].ypos) for i in range(numDrones): print 'CAOC handling Drone ' + str(dMsg[i].data[0]) + ' Status Msg...' caoc.testHandleMessage(dMsg[i]) print 'CAOC Priority Queue: ' + str(caoc.priorityQueue) print 'CAOC Drone Status Queue: ' + str(caoc.drones) for i in range(numTargets): print 'CAOC handling Tgt ' + str(tMsg[i].data[0]) + ' Msg from HMINT...' caoc.testHandleMessage(tMsg[i]) print 'CAOC Priority Queue: ' + str(caoc.priorityQueue) print 'CAOC Drone Status Queue: ' + str(caoc.drones) while (len(caoc.priorityQueue)>0): for i in range(numDrones): print 'CAOC handling Drone ' + str(dMsg[i].data[0]) + ' Status Msg...' caoc.testHandleMessage(dMsg[i]) print 'CAOC Priority Queue: ' + str(caoc.priorityQueue) print 'CAOC Drone Status Queue: ' + str(caoc.drones) print '' print 'End'
def main(): print 'Start' random.seed(1) mapX=300 mapY=300 numStreets=50 numTargets=10 numDrones=3 heuristic=1 seedNum=1 Nuisance=0.8 print '---Generate Map---' Map = GenMap(mapX,mapY) Map.map(numStreets,Nuisance) randNodes=[] for i in range(numTargets): randNodes.append(Map.RandNode()) print '---Generate HMINT, CAOC, IMINT---' hmint = HMINT(numTargets, randNodes) hmintInQ = LPInputQueue() caoc=CAOC(numDrones,heuristic) caocInQ = LPInputQueue() imint=IMINT(heuristic,numTargets) imintInQ = LPInputQueue() print 'IMINT total value: ' + str(imint.totalValue) drone=Drone(0,0,1) droneInQ=LPInputQueue() lp=[hmint,caoc,imint] print '---Generate Messages---' m2Data=[0,80,80,'Vehicle',1,1,randNodes[0],30,0,0] m2=Message(2,m2Data,'CAOC','IMINT',0) m3Data=[0,'Idle',randNodes[1]] m3=Message(3,m3Data,'IMINT','CAOC',1) print '---Save and Restore State---' for i in lp: i.localTime=0 drone.LocalSimTime=0 i.saveState() i.localTime=3 drone.LocalSimTime=3 i.saveState() i.localTime=7 drone.LocalSimTime=7 i.saveState() i.localTime=12 drone.LocalSimTime=12 i.saveState() print str(i.LPID) + ' state queue: ' + str(i.stateQueue) print str(i.LPID) + ' state queue length: ' + str(len(i.stateQueue)) #for i in drone.stateQueue: #print 'Drone LocalSimTime: ' + str(i.LocalSimTime) hmint.restoreState(6) caoc.restoreState(6) imint.restoreState(6) drone.restoreState(6) for i in lp: print str(i.LPID) + ' state queue: ' + str(i.stateQueue) print str(i.LPID) + ' local time: ' + str(i.localTime) print 'Drone actual local time: ' + str(drone.LocalSimTime) i.localTime=13 i.saveState() print str(i.LPID) + ' state queue: ' + str(i.stateQueue) print 'End'