Bagsy
my_app_root = Path.join(__DIR__, ".")
Mix.install(
[
{:bagsy, path: my_app_root, env: :dev},
{:kino, "~> 0.7"}
],
# config_path: Path.join(my_app_root, "config/config.exs"),
lockfile: Path.join(my_app_root, "mix.lock")
)
Section
file = "/path/to/bag.db3"
conn = Bagsy.Conn.new(file)
bag = Bagsy.Bag.new(conn)
{:ok, statement} =
Exqlite.Sqlite3.prepare(conn.db, "SELECT topic_id, data FROM messages WHERE id == 84")
{:row, [topic_id, data]} = Exqlite.Sqlite3.step(conn.db, statement)
parser = Bagsy.Parser.new(bag.topics)
{:ok, img} = Bagsy.Parser.parse_message(parser, topic_id, data)
mat = img.data |> Nx.to_binary() |> Evision.imdecode(Evision.cv_IMREAD_GRAYSCALE())
{2, [y, x]} = Evision.Mat.size(mat)
y = trunc(y / 5)
x = trunc(x / 5)
Evision.resize(mat, {_width = x, _height = y})
{:ok, statement} =
Exqlite.Sqlite3.prepare(conn.db, "SELECT topic_id, data FROM messages WHERE id == 60")
{:row, [topic_id, data]} = Exqlite.Sqlite3.step(conn.db, statement)
parser = Bagsy.Parser.new(bag.topics)
{:ok, speed} = Bagsy.Parser.parse_message(parser, topic_id, data)