24#ifndef LIBGPHOTO2_GPHOTO2_PORT_H
25#define LIBGPHOTO2_GPHOTO2_PORT_H
30#include <gphoto2/gphoto2-port-portability.h>
57#define GP_PORT_MAX_BUF_LEN 4096
123typedef struct _GPPortPrivateLibrary GPPortPrivateLibrary;
148 GPPortPrivateLibrary *
pl;
209 int index,
char *bytes,
int size);
211 int index,
char *bytes,
int size);
213 int value,
int index,
char *bytes,
int size);
215 int value,
int index,
char *bytes,
int size);
217 int value,
int index,
char *bytes,
int size);
219 int value,
int index,
char *bytes,
int size);
224 char *cmd,
int cmd_size,
225 char *sense,
int sense_size,
226 char *data,
int data_size);
231 __attribute__((__format__(printf,2,3)))
242#define PIN_CTS GP_PIN_CTS
GPPortType
The gphoto port type.
Definition: gphoto2-port-info-list.h:34
int gp_port_check_int(GPPort *port, char *data, int size)
Check for intterupt.
Definition: gphoto2-port.c:450
_GPPortSerialParity
Serial parity.
Definition: gphoto2-port.h:50
@ GP_PORT_SERIAL_PARITY_ODD
Parity is odd.
Definition: gphoto2-port.h:53
@ GP_PORT_SERIAL_PARITY_EVEN
Parity is even.
Definition: gphoto2-port.h:52
@ GP_PORT_SERIAL_PARITY_OFF
Parity is off (disabled)
Definition: gphoto2-port.h:51
int gp_port_write(GPPort *port, const char *data, int size)
Writes a specified amount of data to a port.
Definition: gphoto2-port.c:379
int gp_port_usb_msg_class_read(GPPort *port, int request, int value, int index, char *bytes, int size)
Send a USB class control message with input data.
Definition: gphoto2-port.c:1037
int gp_port_reset(GPPort *port)
Reset a port.
Definition: gphoto2-port.c:306
int gp_port_usb_msg_write(GPPort *port, int request, int value, int index, char *bytes, int size)
Send a USB control message with output data.
Definition: gphoto2-port.c:851
int gp_port_get_info(GPPort *port, GPPortInfo *info)
Retreives information about the port.
Definition: gphoto2-port.c:242
int gp_port_usb_msg_class_write(GPPort *port, int request, int value, int index, char *bytes, int size)
Send a USB class control message with output data.
Definition: gphoto2-port.c:1002
int gp_port_get_timeout(GPPort *port, int *timeout)
Get the current port timeout.
Definition: gphoto2-port.c:555
int gp_port_usb_msg_read(GPPort *port, int request, int value, int index, char *bytes, int size)
Send a USB control message with input data.
Definition: gphoto2-port.c:884
GPPortSettings gp_port_settings
Definition: gphoto2-port.h:240
int gp_port_set_info(GPPort *port, GPPortInfo info)
Configure a port.
Definition: gphoto2-port.c:136
union _GPPortSettings GPPortSettings
Union of port settings.
int gp_port_usb_msg_interface_write(GPPort *port, int request, int value, int index, char *bytes, int size)
Send a USB interface control message with output data.
Definition: gphoto2-port.c:924
int gp_port_send_scsi_cmd(GPPort *port, int to_dev, char *cmd, int cmd_size, char *sense, int sense_size, char *data, int data_size)
Send a SCSI command to a port (for usb scsi ports)
Definition: gphoto2-port.c:1105
int gp_port_usb_find_device_by_class(GPPort *port, int mainclass, int subclass, int protocol)
Find USB device by interface class.
Definition: gphoto2-port.c:801
int gp_port_set_timeout(GPPort *port, int timeout)
Set timeout of port.
Definition: gphoto2-port.c:521
int gp_port_get_pin(GPPort *port, GPPin pin, GPLevel *level)
Get setting of specific serial PIN.
Definition: gphoto2-port.c:638
int gp_port_usb_find_device(GPPort *port, int idvendor, int idproduct)
Find USB device by vendor/product.
Definition: gphoto2-port.c:777
int gp_port_new(GPPort **port)
Create new GPPort.
Definition: gphoto2-port.c:81
GPPort gp_port
Definition: gphoto2-port.h:238
struct _GPPortSettingsUSB GPPortSettingsUSB
Port settings for USB ports.
int gp_port_read(GPPort *port, char *data, int size)
Read data from port.
Definition: gphoto2-port.c:414
const char * gp_port_get_error(GPPort *port)
Get verbose port error message.
Definition: gphoto2-port.c:1197
int gp_port_usb_msg_interface_read(GPPort *port, int request, int value, int index, char *bytes, int size)
Send a USB interface control message with input data.
Definition: gphoto2-port.c:959
_GPLevel
Level to pull specific lines.
Definition: gphoto2-port.h:194
@ GP_LEVEL_HIGH
Pull to high (nV)
Definition: gphoto2-port.h:196
@ GP_LEVEL_LOW
Pull to low (0V)
Definition: gphoto2-port.h:195
int gp_port_set_settings(GPPort *port, GPPortSettings settings)
Set port settings.
Definition: gphoto2-port.c:577
int gp_port_open(GPPort *port)
Open a port.
Definition: gphoto2-port.c:260
int gp_port_set_error(GPPort *port, const char *format,...)
Set verbose port error message.
Definition: gphoto2-port.c:1167
struct _GPPortSettingsSerial GPPortSettingsSerial
Port settings for serial ports.
enum _GPPortSerialParity GPPortSerialParity
Serial parity.
int gp_port_check_int_fast(GPPort *port, char *data, int size)
Check for interrupt without wait.
Definition: gphoto2-port.c:483
int gp_port_send_break(GPPort *port, int duration)
Send a break over a serial port.
Definition: gphoto2-port.c:724
_GPPin
Serial pins.
Definition: gphoto2-port.h:180
@ GP_PIN_CD
Carrier Detect line.
Definition: gphoto2-port.h:185
@ GP_PIN_DTR
DTR line.
Definition: gphoto2-port.h:182
@ GP_PIN_CTS
CTS line.
Definition: gphoto2-port.h:183
@ GP_PIN_DSR
DSR line.
Definition: gphoto2-port.h:184
@ GP_PIN_RTS
RTS line.
Definition: gphoto2-port.h:181
@ GP_PIN_RING
RING (Modem) line.
Definition: gphoto2-port.h:186
int gp_port_get_settings(GPPort *port, GPPortSettings *settings)
Get the current port settings.
Definition: gphoto2-port.c:619
int gp_port_free(GPPort *port)
Free the port structure.
Definition: gphoto2-port.c:328
struct _GPPortSettingsUsbScsi GPPortSettingsUsbScsi
Port settings for USB Mass Storage raw SCSI ports.
enum _GPLevel GPLevel
Level to pull specific lines.
struct _GPPort GPPort
The GPhoto port structure.
int gp_port_close(GPPort *port)
Close a port.
Definition: gphoto2-port.c:284
int gp_port_seek(GPPort *port, int offset, int whence)
Seek on a port (for usb disk direct ports)
Definition: gphoto2-port.c:1071
int gp_port_flush(GPPort *port, int direction)
Flush data on serial port.
Definition: gphoto2-port.c:749
@ GP_PORT_USB_ENDPOINT_OUT
USB bulk OUT ep.
Definition: gphoto2-port.h:119
@ GP_PORT_USB_ENDPOINT_INT
USB Interrupt ep.
Definition: gphoto2-port.h:120
@ GP_PORT_USB_ENDPOINT_IN
USB bulk IN ep.
Definition: gphoto2-port.h:118
enum _GPPin GPPin
Serial pins.
struct _GPPortSettingsUsbDiskDirect GPPortSettingsUsbDiskDirect
Port settings for USB mass storage direct IO ports.
int gp_port_usb_clear_halt(GPPort *port, int ep)
Clear USB endpoint HALT condition.
Definition: gphoto2-port.c:823
int gp_port_set_pin(GPPort *port, GPPin pin, GPLevel level)
Set specified serial PIN to value.
Definition: gphoto2-port.c:690
Definition: gphoto2-port-info.h:32
Internal private libgphoto2_port data. This structure contains private data.
Definition: gphoto2-port.c:60
Port settings for serial ports.
Definition: gphoto2-port.h:62
char port[128]
Definition: gphoto2-port.h:63
GPPortSerialParity parity
Definition: gphoto2-port.h:66
int bits
Definition: gphoto2-port.h:65
int speed
Definition: gphoto2-port.h:64
int stopbits
Definition: gphoto2-port.h:68
Port settings for USB ports.
Definition: gphoto2-port.h:74
int outep
Bulk OUT endpoint used.
Definition: gphoto2-port.h:76
int inep
Bulk IN endpoint used.
Definition: gphoto2-port.h:75
int config
USB bConfigurationValue used.
Definition: gphoto2-port.h:78
char port[64]
USB Portname. Specific to lowlevel USB.
Definition: gphoto2-port.h:87
int maxpacketsize
Maximum USB packetsize of the IN endpoint. (r/o)
Definition: gphoto2-port.h:82
int interface
USB Interface number used.
Definition: gphoto2-port.h:79
int intep
Interrupt endpoint used.
Definition: gphoto2-port.h:77
int altsetting
USB Alternative Setting used.
Definition: gphoto2-port.h:80
Port settings for USB mass storage direct IO ports.
Definition: gphoto2-port.h:93
char path[128]
Definition: gphoto2-port.h:94
Port settings for USB Mass Storage raw SCSI ports.
Definition: gphoto2-port.h:100
char path[128]
Definition: gphoto2-port.h:101
The GPhoto port structure.
Definition: gphoto2-port.h:139
GPPortSettings settings_pending
Settings to be committed.
Definition: gphoto2-port.h:144
GPPortPrivateCore * pc
Port library private data pointer.
Definition: gphoto2-port.h:149
int timeout
Port timeout in milliseconds.
Definition: gphoto2-port.h:146
GPPortPrivateLibrary * pl
Camera driver private data pointer.
Definition: gphoto2-port.h:148
GPPortSettings settings
Current port settings.
Definition: gphoto2-port.h:143
GPPortType type
Actual type of this port.
Definition: gphoto2-port.h:141
Union of port settings.
Definition: gphoto2-port.h:110
GPPortSettingsUSB usb
USB specific settings.
Definition: gphoto2-port.h:112
GPPortSettingsUsbScsi usbscsi
usb scsi port specific settings
Definition: gphoto2-port.h:114
GPPortSettingsUsbDiskDirect usbdiskdirect
usb disk direct port specific settings
Definition: gphoto2-port.h:113
GPPortSettingsSerial serial
Serial specific settings.
Definition: gphoto2-port.h:111