Unify rosbag1 and rosbag2 connection class
This commit is contained in:
@@ -2,8 +2,9 @@
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, cast
|
||||
|
||||
from rosbags.interfaces import ConnectionExtRosbag2
|
||||
from rosbags.rosbag2 import Reader, Writer
|
||||
from rosbags.serde import deserialize_cdr, serialize_cdr
|
||||
|
||||
@@ -23,11 +24,12 @@ def offset_timestamps(src: Path, dst: Path, offset: int) -> None:
|
||||
with Reader(src) as reader, Writer(dst) as writer:
|
||||
conn_map = {}
|
||||
for conn in reader.connections.values():
|
||||
ext = cast(ConnectionExtRosbag2, conn.ext)
|
||||
conn_map[conn.id] = writer.add_connection(
|
||||
conn.topic,
|
||||
conn.msgtype,
|
||||
conn.serialization_format,
|
||||
conn.offered_qos_profiles,
|
||||
ext.serialization_format,
|
||||
ext.offered_qos_profiles,
|
||||
)
|
||||
|
||||
for conn, timestamp, data in reader.messages():
|
||||
|
||||
@@ -2,8 +2,9 @@
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, cast
|
||||
|
||||
from rosbags.interfaces import ConnectionExtRosbag2
|
||||
from rosbags.rosbag2 import Reader, Writer
|
||||
|
||||
if TYPE_CHECKING:
|
||||
@@ -24,11 +25,12 @@ def remove_topic(src: Path, dst: Path, topic: str) -> None:
|
||||
for conn in reader.connections.values():
|
||||
if conn.topic == topic:
|
||||
continue
|
||||
ext = cast(ConnectionExtRosbag2, conn.ext)
|
||||
conn_map[conn.id] = writer.add_connection(
|
||||
conn.topic,
|
||||
conn.msgtype,
|
||||
conn.serialization_format,
|
||||
conn.offered_qos_profiles,
|
||||
ext.serialization_format,
|
||||
ext.offered_qos_profiles,
|
||||
)
|
||||
|
||||
rconns = [reader.connections[x] for x in conn_map]
|
||||
|
||||
Reference in New Issue
Block a user