def send(self, message_type, data="", destination=G.MESSAGE_BROADCAST_ADDRESS): """ Craft a Node message and send it over our local UNIX socket """ # Define a node message msg = NodeMessage() msg.source = 0 # Set by lower-level protocol msg.my_node_id = 0 # Set by lower-level protocol msg.path = 0 # Will be populated by our underlying # routing algorithm msg.visited = 0 # Always starts at 0 # Must fill these in msg.type = message_type msg.data = data msg.destination = destination msg.frag_id = 0 msg.frag_num = 1 # Set the Length msg.length = len(msg.data) return self._send(msg)
def send(self, message_type, data="", destination=G.MESSAGE_BROADCAST_ADDRESS): """ Craft a Node message and send it over our local UNIX socket """ # Define a node message msg = NodeMessage() msg.source = 0 # Set by lower-level protocol msg.my_node_id = 0 # Set by lower-level protocol msg.path = 0 # Will be populated by our underlying # routing algorithm msg.visited = 0 # Always starts at 0 # Must fill these in msg.type = message_type msg.data = data msg.destination = destination msg.frag_id = 0 msg.frag_num = 1 # Set the Length msg.length = len(msg.data) return self._send(msg)
def gen_people(n, db, start_lat, stop_lat, start_long, stop_long): """ Generates n people, random male/female ratio between 5 and 90 years of age """ assert n > 0 # open male first names file f = open("dist.male.first", "r") male_first_names = [name.strip().split()[0] for name in f.readlines()] f.close() # open female first names file f = open("dist.female.first", "r") female_first_names = [name.strip().split()[0] for name in f.readlines()] f.close() # open last names file f = open("dist.all.last", "r") family_names = [name.strip().split()[0] for name in f.readlines()] f.close() # generate people for i in range(n): catanDBObj = catan.db.CatanDatabaseObject() # bio sex = random.randint(0, 1) if sex == 0: # male catanDBObj.person_bio.name_given = male_first_names[random.randint(0, len(male_first_names) - 1)] catanDBObj.person_bio.sex = "male" else: # female catanDBObj.person_bio.name_given = female_first_names[random.randint(0, len(female_first_names) - 1)] catanDBObj.person_bio.sex = "female" catanDBObj.person_bio.name_family = family_names[random.randint(0, len(family_names) - 1)] catanDBObj.person_bio.age = random.randint(5, 90) # message (message, status, location, etc.) # location lat = round(random.uniform(start_lat, stop_lat), 6) lng = round(random.uniform(start_long, stop_long), 6) catanDBObj.person_message.person_message = "Hi Mom" catanDBObj.person_message.status_gps_latitude = lat catanDBObj.person_message.status_gps_longitude = lng catanDBObj.person_message.status_gps_accuracy = 0 # status catanDBObj.person_message.status = STATUS_LIST[random.randint(0, len(STATUS_LIST) - 1)] catanDBObj.person_message.status_location = "Test status location" # generate a NodeMessage for the database # it only cares about the data and source fields, so we can ignore other fields nmsg = NodeMessage() nmsg.source = random.randint(0, 31) # random node 0-31 nmsg.data = catanDBObj.pack() db.update_db(nmsg) # Create some random updates for i in range(1, n + 1): update = random.randint(0, 1) if update == 0: catanDBObj = catan.db.CatanDatabaseObject() catanDBObj.person_id = i # location lat = round(random.uniform(start_lat, stop_lat), 6) lng = round(random.uniform(start_long, stop_long), 6) catanDBObj.person_message.person_message = "Location update 1" catanDBObj.person_message.status_gps_latitude = lat catanDBObj.person_message.status_gps_longitude = lng catanDBObj.person_message.status_gps_accuracy = 0 n = NodeMessage() n.source = random.randint(0, 31) n.data = catanDBObj.pack() db.update_db(n)
def gen_people(n, db, start_lat, stop_lat, start_long, stop_long): """ Generates n people, random male/female ratio between 5 and 90 years of age """ assert n > 0 # open male first names file f = open('dist.male.first', 'r') male_first_names = [name.strip().split()[0] for name in f.readlines()] f.close() # open female first names file f = open('dist.female.first', 'r') female_first_names = [name.strip().split()[0] for name in f.readlines()] f.close() # open last names file f = open('dist.all.last', 'r') family_names = [name.strip().split()[0] for name in f.readlines()] f.close() # generate people for i in range(n): catanDBObj = catan.db.CatanDatabaseObject() # bio sex = random.randint(0, 1) if sex == 0: # male catanDBObj.person_bio.name_given = male_first_names[random.randint( 0, len(male_first_names) - 1)] catanDBObj.person_bio.sex = 'male' else: # female catanDBObj.person_bio.name_given = female_first_names[ random.randint(0, len(female_first_names) - 1)] catanDBObj.person_bio.sex = 'female' catanDBObj.person_bio.name_family = family_names[random.randint( 0, len(family_names) - 1)] catanDBObj.person_bio.age = random.randint(5, 90) # message (message, status, location, etc.) # location lat = round(random.uniform(start_lat, stop_lat), 6) lng = round(random.uniform(start_long, stop_long), 6) catanDBObj.person_message.person_message = 'Hi Mom' catanDBObj.person_message.status_gps_latitude = lat catanDBObj.person_message.status_gps_longitude = lng catanDBObj.person_message.status_gps_accuracy = 0 # status catanDBObj.person_message.status = STATUS_LIST[random.randint( 0, len(STATUS_LIST) - 1)] catanDBObj.person_message.status_location = 'Test status location' # generate a NodeMessage for the database # it only cares about the data and source fields, so we can ignore other fields nmsg = NodeMessage() nmsg.source = random.randint(0, 31) # random node 0-31 nmsg.data = catanDBObj.pack() db.update_db(nmsg) # Create some random updates for i in range(1, n + 1): update = random.randint(0, 1) if update == 0: catanDBObj = catan.db.CatanDatabaseObject() catanDBObj.person_id = i # location lat = round(random.uniform(start_lat, stop_lat), 6) lng = round(random.uniform(start_long, stop_long), 6) catanDBObj.person_message.person_message = 'Location update 1' catanDBObj.person_message.status_gps_latitude = lat catanDBObj.person_message.status_gps_longitude = lng catanDBObj.person_message.status_gps_accuracy = 0 n = NodeMessage() n.source = random.randint(0, 31) n.data = catanDBObj.pack() db.update_db(n)