コード例 #1
0
ファイル: comms.py プロジェクト: elpezmuerto/CATAN
    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)
コード例 #2
0
 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)
コード例 #3
0
ファイル: db_test.py プロジェクト: elpezmuerto/CATAN
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)
コード例 #4
0
ファイル: db_test.py プロジェクト: felicidad1992/CATAN
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)