示例#1
0
def test_record_writer(writer_path):
    """
    record writer.
    """
    fwriter = record.RecordWriter()
    if not fwriter.open(writer_path):
        print "writer open failed!"
        return
    print "+++ begin to writer..."
    fwriter.write_channel(CHAN_1, MSG_TYPE, STR_10B)
    fwriter.write_message(CHAN_1, STR_10B, 1000)

    msg = SimpleMessage()
    msg.text = "AAAAAA"

    file_desc = msg.DESCRIPTOR.file
    proto = FileDescriptorProto()
    file_desc.CopyToProto(proto)
    proto.name = file_desc.name
    desc_str = proto.SerializeToString()

    fwriter.write_channel('chatter_a', msg.DESCRIPTOR.full_name, desc_str)
    fwriter.write_message('chatter_a', msg, 998, False)
    fwriter.write_message("chatter_a", msg.SerializeToString(), 999)

    fwriter.close()
 def test_reconstitute_multiple_schemas(self):
     fdp = FileDescriptorProto()
     fdp.name = 'test_schemas'
     mt1 = fdp.message_type.add()
     mt1.name = 'test1'
     f1 = mt1.field.add()
     f1.name = 'a'
     f1.number = 1
     f1.type = FieldDescriptorProto.TYPE_UINT32
     f1.label = FieldDescriptorProto.LABEL_OPTIONAL
     mt2 = fdp.message_type.add()
     mt2.name = 'test2'
     f2 = mt2.field.add()
     f2.name = 'b'
     f2.number = 1
     f2.type = FieldDescriptorProto.TYPE_STRING
     f2.label = FieldDescriptorProto.LABEL_OPTIONAL
     bytes = fdp.SerializeToString()
     x = MessageBuilder()
     classes = x.reconstitute_file_from_bytes(bytes)
     Test1 = classes[0]
     Test2 = classes[1]
     test1 = Test1()
     test1.a = 42
     test2 = Test2()
     test2.b = 'Bonsai Rules!!!'
     self.assertEqual(42, test1.a)
     self.assertEqual('Bonsai Rules!!!', test2.b)
示例#3
0
def test_record_writer(writer_path):
    """
    Record writer.
    """
    fwriter = record.RecordWriter()
    fwriter.set_size_fileseg(0)
    fwriter.set_intervaltime_fileseg(0)

    if not fwriter.open(writer_path):
        print('Failed to open record writer!')
        return
    print('+++ Begin to writer +++')

    # Writer 2 SimpleMessage
    msg = SimpleMessage()
    msg.text = "AAAAAA"

    file_desc = msg.DESCRIPTOR.file
    proto = FileDescriptorProto()
    file_desc.CopyToProto(proto)
    proto.name = file_desc.name
    desc_str = proto.SerializeToString()
    print(msg.DESCRIPTOR.full_name)
    fwriter.write_channel(
        'simplemsg_channel', msg.DESCRIPTOR.full_name, desc_str)
    fwriter.write_message('simplemsg_channel', msg, 990, False)
    fwriter.write_message('simplemsg_channel', msg.SerializeToString(), 991)

    # Writer 2 Chatter
    msg = Chatter()
    msg.timestamp = 99999
    msg.lidar_timestamp = 100
    msg.seq = 1

    file_desc = msg.DESCRIPTOR.file
    proto = FileDescriptorProto()
    file_desc.CopyToProto(proto)
    proto.name = file_desc.name
    desc_str = proto.SerializeToString()
    print(msg.DESCRIPTOR.full_name)
    fwriter.write_channel('chatter_a', msg.DESCRIPTOR.full_name, desc_str)
    fwriter.write_message('chatter_a', msg, 992, False)
    msg.seq = 2
    fwriter.write_message("chatter_a", msg.SerializeToString(), 993)

    fwriter.close()
示例#4
0
 def _file_descriptor_response(
     self,
     file_descriptor: FileDescriptor,
 ) -> ServerReflectionResponse:
     proto = FileDescriptorProto()
     file_descriptor.CopyToProto(proto)  # type: ignore
     return ServerReflectionResponse(
         file_descriptor_response=FileDescriptorResponse(
             file_descriptor_proto=[proto.SerializeToString()], ), )
示例#5
0
 def register_message(self, file_desc):
     """
     register proto message desc file.
     """
     for dep in file_desc.dependencies:
         self.register_message(dep)
     proto = FileDescriptorProto()
     file_desc.CopyToProto(proto)
     proto.name = file_desc.name
     desc_str = proto.SerializeToString()
     _CYBER.PyNode_register_message(self.node, desc_str)
示例#6
0
 def write_message(self, channel_name, data, time, raw=True):
     """
     writer msg:channelname,rawmsg,writer time
     """
     if raw:
         return _CYBER_RECORD.PyRecordWriter_WriteMessage(self.record_writer,
                 channel_name, data, time, "")
     else:
         file_desc = data.DESCRIPTOR.file
         proto = FileDescriptorProto()
         file_desc.CopyToProto(proto)
         proto.name = file_desc.name
         desc_str = proto.SerializeToString()
         return _CYBER_RECORD.PyRecordWriter_WriteMessage(self.record_writer,
                 channel_name, data.SerializeToString(), time, desc_str)
示例#7
0
 def _file_descriptor_response(self, file_descriptor):
     proto = FileDescriptorProto()
     file_descriptor.CopyToProto(proto)
     return self._pb.ServerReflectionResponse(
         file_descriptor_response=self._pb.FileDescriptorResponse(
             file_descriptor_proto=[proto.SerializeToString()], ), )