42 import libmultisense
as lms
45 output = f
"Camera Time(ns): {status.time.camera_time}, "\
46 f
"System Ok: {status.system_ok}, "
49 if status.temperature:
50 temp = f
"FPGA Temp (C): {status.temperature.fpga_temperature}, "\
51 f
"Left Imager Temp (C): {status.temperature.left_imager_temperature}, "\
52 f
"Right Imager Temp (C): {status.temperature.right_imager_temperature}, "
56 power = f
"Input Voltage (V): {status.power.input_voltage}, "\
57 f
"Input Current (A): {status.power.input_current}, "\
58 f
"FPGA Power (W): {status.power.fpga_power}, "\
60 stats = f
"Received Messages {status.client_network.received_messages}, "\
61 f
"Dropped Messages {status.client_network.dropped_messages}"
63 return output + temp + power + stats
66 base_path = str(frame.frame_id) +
"_" + str(source);
68 if source == lms.DataSource.LEFT_DISPARITY_RAW:
69 depth_image =
lms.create_depth_image(frame, lms.PixelFormat.MONO16, lms.DataSource.LEFT_DISPARITY_RAW, 65535)
72 elif source == lms.DataSource.LEFT_RECTIFIED_RAW:
74 elif source == lms.DataSource.AUX_RAW:
80 channel_config = lms.ChannelConfig()
81 channel_config.ip_address = args.ip_address
82 channel_config.mtu = args.mtu
84 with lms.Channel.create(channel_config)
as channel:
86 print(
"Invalid channel")
89 info = channel.get_info()
91 print(
"Firmware build date : ", info.version.firmware_build_date)
92 print(
"Firmware version : ", info.version.firmware_version.to_string())
93 print(
"Hardware version : ", hex(info.version.hardware_version))
95 config = channel.get_config()
96 config.frames_per_second = 9.0
97 status = channel.set_config(config)
98 if status != lms.Status.OK:
104 streams.append(lms.DataSource.LEFT_DISPARITY_RAW)
105 if args.save_left_rect:
106 streams.append(lms.DataSource.LEFT_RECTIFIED_RAW)
108 streams.append(lms.DataSource.AUX_RAW)
110 if channel.start_streams(streams) != lms.Status.OK:
111 print(
"Unable to start streams")
117 if saved_images < args.number_of_images:
118 frame = channel.get_next_image_frame()
120 for stream
in streams:
125 status = channel.get_system_status()
131 if __name__ ==
'__main__':
132 parser = argparse.ArgumentParser(
"LibMultiSense save image utility")
133 parser.add_argument(
"-a",
"--ip_address", default=
"10.66.171.21", help=
"The IPv4 address of the MultiSense.")
134 parser.add_argument(
"-m",
"--mtu", type=int, default=1500, help=
"The MTU to use to communicate with the camera.")
135 parser.add_argument(
"-n",
"--number-of-images", type=int, default=1, help=
"The number of images to save.")
136 parser.add_argument(
"-d",
"--save-depth", action=
'store_true', help=
"Save a 16 bit depth image.")
137 parser.add_argument(
"-l",
"--save-left-rect", action=
'store_true', help=
"Save a left rectified image.")
138 parser.add_argument(
"-c",
"--save-color", action=
'store_true', help=
"Save a color image.")
139 main(parser.parse_args())