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)
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()
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()], ), )
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)
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)
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()], ), )