gphoto2-port.h File Reference

#include <gphoto2/gphoto2-port-info-list.h>
#include <gphoto2/gphoto2-port-portability.h>

Go to the source code of this file.

Data Structures

struct  _GPPortSettingsSerial
 Port settings for serial ports. More...
struct  _GPPortSettingsUSB
 Port settings for USB ports. More...
struct  _GPPortSettingsDisk
 Port settings for the local disk (directories) port. More...
union  _GPPortSettings
 Union of port settings. More...
struct  _GPPort
 The GPhoto port structure. More...

Defines

#define TRUE   (0==0)
#define FALSE   (1==0)
#define GP_PORT_MAX_BUF_LEN   4096
 Maximum length of receive buffer.
#define PIN_CTS   GP_PIN_CTS

Typedefs

typedef enum _GPPortSerialParity GPPortSerialParity
typedef struct
_GPPortSettingsSerial 
GPPortSettingsSerial
typedef struct _GPPortSettingsUSB GPPortSettingsUSB
typedef struct _GPPortSettingsDisk GPPortSettingsDisk
typedef union _GPPortSettings GPPortSettings
typedef struct
_GPPortPrivateLibrary 
GPPortPrivateLibrary
typedef struct _GPPortPrivateCore GPPortPrivateCore
typedef struct _GPPort GPPort
typedef enum _GPPin GPPin
typedef enum _GPLevel GPLevel
typedef GPPort gp_port
typedef GPPortSettings gp_port_settings

Enumerations

enum  _GPPortSerialParity { GP_PORT_SERIAL_PARITY_OFF = 0, GP_PORT_SERIAL_PARITY_EVEN, GP_PORT_SERIAL_PARITY_ODD }
 Serial parity. More...
enum  { GP_PORT_USB_ENDPOINT_IN, GP_PORT_USB_ENDPOINT_OUT, GP_PORT_USB_ENDPOINT_INT }
enum  _GPPin {
  GP_PIN_RTS, GP_PIN_DTR, GP_PIN_CTS, GP_PIN_DSR,
  GP_PIN_CD, GP_PIN_RING
}
 Serial pins. More...
enum  _GPLevel { GP_LEVEL_LOW = 0, GP_LEVEL_HIGH = 1 }
 Level to pull specific lines. More...

Functions

int gp_port_new (GPPort **port)
 Create new GPPort.
int gp_port_free (GPPort *port)
 Free the port structure.
int gp_port_set_info (GPPort *port, GPPortInfo info)
 Configure a port.
int gp_port_get_info (GPPort *port, GPPortInfo *info)
 Retreives information about the port.
int gp_port_open (GPPort *port)
 Open a port.
int gp_port_close (GPPort *port)
 Close a port.
int gp_port_write (GPPort *port, const char *data, int size)
 Writes a specified amount of data to a port.
int gp_port_read (GPPort *port, char *data, int size)
 Read data from port.
int gp_port_check_int (GPPort *port, char *data, int size)
 Check for intterupt.
int gp_port_check_int_fast (GPPort *port, char *data, int size)
 Check for interrupt without wait.
int gp_port_get_timeout (GPPort *port, int *timeout)
 Get the current port timeout.
int gp_port_set_timeout (GPPort *port, int timeout)
 Set timeout of port.
int gp_port_set_settings (GPPort *port, GPPortSettings settings)
 Set port settings.
int gp_port_get_settings (GPPort *port, GPPortSettings *settings)
 Get the current port settings.
int gp_port_get_pin (GPPort *port, GPPin pin, GPLevel *level)
 Get setting of specific serial PIN.
int gp_port_set_pin (GPPort *port, GPPin pin, GPLevel level)
 Set specified serial PIN to value.
int gp_port_send_break (GPPort *port, int duration)
 Send a break over a serial port.
int gp_port_flush (GPPort *port, int direction)
 Flush data on serial port.
int gp_port_usb_find_device (GPPort *port, int idvendor, int idproduct)
 Find USB device by vendor/product.
int gp_port_usb_find_device_by_class (GPPort *port, int mainclass, int subclass, int protocol)
 Find USB device by interface class.
int gp_port_usb_clear_halt (GPPort *port, int ep)
 Clear USB endpoint HALT condition.
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.
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.
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.
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.
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.
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.
int gp_port_set_error (GPPort *port, const char *format,...)
 Set verbose port error message.
const char * gp_port_get_error (GPPort *port)
 Get verbose port error message.


Detailed Description

Author:
Copyright 2001 Lutz Mueller <lutz@users.sf.net>
License
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

Define Documentation

#define PIN_CTS   GP_PIN_CTS

Deprecated:
internal define


Typedef Documentation

typedef GPPort gp_port

Deprecated:
internal typedef

Deprecated:
internal typedef


Enumeration Type Documentation

anonymous enum

Enumerator:
GP_PORT_USB_ENDPOINT_IN  USB bulk IN ep.
GP_PORT_USB_ENDPOINT_OUT  USB bulk OUT ep.
GP_PORT_USB_ENDPOINT_INT  USB Interrupt ep.

enum _GPLevel

Level to pull specific lines.

The level on which to pull some of the serial lines.

Enumerator:
GP_LEVEL_LOW  Pull to low (0V).
GP_LEVEL_HIGH  Pull to high (nV).

enum _GPPin

Serial pins.

A number of serial pins to trigger and pull. This is necessary for some devices that have more than just the regular 3 or 4 wires.

Enumerator:
GP_PIN_RTS  RTS line.
GP_PIN_DTR  DTR line.
GP_PIN_CTS  CTS line.
GP_PIN_DSR  DSR line.
GP_PIN_CD  Carrier Detect line.
GP_PIN_RING  RING (Modem) line.

Serial parity.

Parity of the serial port.

Enumerator:
GP_PORT_SERIAL_PARITY_OFF  Parity is off (disabled).
GP_PORT_SERIAL_PARITY_EVEN  Parity is even.
GP_PORT_SERIAL_PARITY_ODD  Parity is odd.


Function Documentation

int gp_port_check_int ( GPPort port,
char *  data,
int  size 
)

Check for intterupt.

Parameters:
port a GPPort
data a pointer to an allocated buffer
size the number of bytes that should be read
Reads a specified number of bytes from the interrupt endpoint into the supplied buffer. Function waits port->timeout miliseconds for data on interrupt endpoint.

Returns:
a gphoto2 error code

References _GPPortOperations::check_int, gp_log(), gp_log_data(), GP_LOG_DEBUG, _GPPortPrivateCore::ops, _GPPort::pc, and _GPPort::timeout.

int gp_port_check_int_fast ( GPPort port,
char *  data,
int  size 
)

Check for interrupt without wait.

Parameters:
port a GPPort
data a pointer to an allocated buffer
size the number of bytes that should be read
Reads a specified number of bytes from the inerrupt endpoint into the supplied buffer. Function waits 50 miliseconds for data on interrupt endpoint.

Returns:
a gphoto2 error code

References _GPPortOperations::check_int, FAST_TIMEOUT, gp_log(), gp_log_data(), GP_LOG_DEBUG, _GPPortPrivateCore::ops, and _GPPort::pc.

int gp_port_close ( GPPort port  ) 

Close a port.

Parameters:
port a GPPort
Closes a port temporarily. It can afterwards be reopened using gp_port_open.

Returns:
a gphoto2 error code

References _GPPortOperations::close, gp_log(), GP_LOG_DEBUG, GP_OK, _GPPortPrivateCore::ops, and _GPPort::pc.

Referenced by gp_camera_exit(), gp_camera_init(), and gp_port_free().

int gp_port_flush ( GPPort port,
int  direction 
)

Flush data on serial port.

Parameters:
port a GPPort
direction the direction of the flush
Flushes the serial output or input (depending on direction) of the serial port.

Returns:
a gphoto2 error code

References _GPPortOperations::flush, gp_log(), GP_LOG_DEBUG, GP_OK, _GPPortPrivateCore::ops, and _GPPort::pc.

int gp_port_free ( GPPort port  ) 

Free the port structure.

Parameters:
port a GPPort
Closes the port and frees the memory.

Returns:
a gphoto2 error code

References gp_log(), GP_LOG_DEBUG, GP_OK, gp_port_close(), _GPPortPrivateCore::lh, _GPPortPrivateCore::ops, and _GPPort::pc.

Referenced by gp_abilities_list_detect(), gp_camera_free(), and gp_port_new().

const char* gp_port_get_error ( GPPort port  ) 

Get verbose port error message.

Parameters:
port a GPPort
Retrieves an error message from a port. If you want to make sure that you get correct error messages, you need to call gp_port_set_error with an error message of NULL each time before calling another port-related function of which you want to check the return value.

Returns:
a translated error message

References _GPPortPrivateCore::error, and _GPPort::pc.

int gp_port_get_info ( GPPort port,
GPPortInfo info 
)

Retreives information about the port.

Retrieves the informations set by gp_port_set_info().

Parameters:
port a GPPort
info GPPortInfo
Returns:
a gphoto2 error code

References GP_OK, _GPPortPrivateCore::info, and _GPPort::pc.

int gp_port_get_pin ( GPPort port,
GPPin  pin,
GPLevel *  level 
)

Get setting of specific serial PIN.

Parameters:
port a GPPort
pin the serial pin to be retrieved
level the setting of the pin
Returns:
a gphoto2 error code

References _GPPortOperations::get_pin, gp_log(), GP_LOG_DEBUG, GP_OK, _GPPortPrivateCore::ops, and _GPPort::pc.

int gp_port_get_settings ( GPPort port,
GPPortSettings settings 
)

Get the current port settings.

Parameters:
port a GPPort
settings pointer to the retrieved settings
Retreives the current settings of a port.

Returns:
a gphoto2 error code

References GP_OK, and _GPPort::settings.

Referenced by gp_camera_set_port_speed(), and gp_port_settings_get().

int gp_port_get_timeout ( GPPort port,
int *  timeout 
)

Get the current port timeout.

Parameters:
port a GPPort
timeout pointer to timeout
Retreives the current timeout of the port.

Returns:
a gphoto2 error code

References gp_log(), GP_LOG_DEBUG, GP_OK, and _GPPort::timeout.

Referenced by gp_port_timeout_get().

int gp_port_new ( GPPort **  port  ) 

Create new GPPort.

Allocate and initialize the memory for a new GPPort.

After you called this function, you probably want to call gp_port_set_info in order to make the newly created port functional.

Parameters:
port Pointer the GPPort* pointer
Returns:
a gphoto2 error code

References GP_ERROR_NO_MEMORY, gp_log(), GP_LOG_DEBUG, GP_OK, and gp_port_free().

Referenced by gp_abilities_list_detect(), and gp_camera_new().

int gp_port_open ( GPPort port  ) 

Open a port.

Parameters:
port a GPPort
Opens a port which should have been created with gp_port_new and configured with gp_port_set_info and gp_port_set_settings

Returns:
a gphoto2 error code

References gp_log(), GP_LOG_DEBUG, GP_OK, GP_PORT_SERIAL, GP_PORT_USB, _GPPortOperations::open, _GPPortPrivateCore::ops, _GPPort::pc, and _GPPort::type.

Referenced by gp_camera_exit(), and gp_camera_init().

int gp_port_read ( GPPort port,
char *  data,
int  size 
)

Read data from port.

Parameters:
port a GPPort
data a pointer to an allocated buffer
size the number of bytes that should be read
Reads a specified number of bytes from the port into the supplied buffer. It returns the number of bytes read or a negative error code.

Returns:
a gphoto2 error code or the amount of data read

References gp_log(), gp_log_data(), GP_LOG_DEBUG, _GPPortPrivateCore::ops, _GPPort::pc, and _GPPortOperations::read.

int gp_port_send_break ( GPPort port,
int  duration 
)

Send a break over a serial port.

Parameters:
port a GPPort
duration duration of break in milliseconds
Sends a break with the specified duration in milliseconds.

Returns:
a gphoto2 error code

References gp_log(), GP_LOG_DEBUG, GP_OK, _GPPortPrivateCore::ops, _GPPort::pc, and _GPPortOperations::send_break.

int gp_port_set_error ( GPPort port,
const char *  format,
  ... 
)

Set verbose port error message.

Parameters:
port a GPPort
format printf style format string
... variable arguments depending on format string
Sets an error message that can later be retrieved using gp_port_get_error.

Returns:
a gphoto2 error code

References _GPPortPrivateCore::error, GP_ERROR_BAD_PARAMETERS, gp_log(), GP_LOG_ERROR, GP_OK, and _GPPort::pc.

Referenced by gp_abilities_list_detect().

int gp_port_set_info ( GPPort port,
GPPortInfo  info 
)

int gp_port_set_pin ( GPPort port,
GPPin  pin,
GPLevel  level 
)

Set specified serial PIN to value.

Parameters:
port a GPPort
pin the serial pin to be retrieved
level the setting of the pin
Pulls the specified pin of a serial port to the specified level.

Returns:
a gphoto2 error code

References gp_log(), GP_LOG_DEBUG, GP_OK, _GPPortPrivateCore::ops, _GPPort::pc, and _GPPortOperations::set_pin.

int gp_port_set_settings ( GPPort port,
GPPortSettings  settings 
)

Set port settings.

Parameters:
port a GPPort
settings the GPPortSettings to be set
Adjusts the settings of a port. You should always call gp_port_get_settings, adjust the values depending on the type of the port, and then call gp_port_set_settings.

Returns:
a gphoto2 error code

References gp_log(), GP_LOG_DEBUG, GP_OK, _GPPortPrivateCore::ops, _GPPort::pc, _GPPort::settings_pending, and _GPPortOperations::update.

Referenced by gp_camera_set_port_speed(), gp_port_set_info(), and gp_port_settings_set().

int gp_port_set_timeout ( GPPort port,
int  timeout 
)

Set timeout of port.

Parameters:
port a GPPort
timeout the timeout
Sets the timeout of a port. gp_port_read will wait timeout milliseconds for data. If no data will be received in that period, GP_ERROR_TIMEOUT will be returned.

Returns:
a gphoto2 error code

References gp_log(), GP_LOG_DEBUG, GP_OK, and _GPPort::timeout.

Referenced by gp_port_set_info(), and gp_port_timeout_set().

int gp_port_usb_clear_halt ( GPPort port,
int  ep 
)

Clear USB endpoint HALT condition.

Parameters:
port a GPPort
ep endpoint to clear HALT
Clears the HALT (stall?) endpoint condition of the specified endpoint.

Returns:
a gphoto2 error code

References _GPPortOperations::clear_halt, gp_log(), GP_LOG_DEBUG, GP_OK, _GPPortPrivateCore::ops, and _GPPort::pc.

int gp_port_usb_find_device ( GPPort port,
int  idvendor,
int  idproduct 
)

Find USB device by vendor/product.

Parameters:
port a GPPort
idvendor USB vendor id
idproduct USB product id
Find the USB device with the specified vendor:product id pair.

Returns:
a gphoto2 error code

References _GPPortOperations::find_device, GP_OK, _GPPortPrivateCore::ops, and _GPPort::pc.

Referenced by gp_camera_init().

int gp_port_usb_find_device_by_class ( GPPort port,
int  mainclass,
int  subclass,
int  protocol 
)

Find USB device by interface class.

Parameters:
port a GPPort
mainclass the USB interface class
subclass the USB interface subclass
protocol the USB interface protocol
Find the USB device with the specified vendor:product id pair.

Returns:
a gphoto2 error code

References _GPPortOperations::find_device_by_class, GP_OK, _GPPortPrivateCore::ops, and _GPPort::pc.

Referenced by gp_camera_init().

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.

Parameters:
port a GPPort
request control request code
value control value
index control index
bytes pointer to data
size size of the data
Sends a specific USB class control command and read associated data.

Returns:
a gphoto2 error code

References gp_log(), gp_log_data(), GP_LOG_DEBUG, _GPPortOperations::msg_class_read, _GPPortPrivateCore::ops, and _GPPort::pc.

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.

Parameters:
port a GPPort
request control request code
value control value
index control index
bytes pointer to data
size size of the data
Sends a specific USB class control command and write associated data.

Returns:
a gphoto2 error code

References gp_log(), gp_log_data(), GP_LOG_DEBUG, _GPPortOperations::msg_class_write, _GPPortPrivateCore::ops, and _GPPort::pc.

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.

Parameters:
port a GPPort
request control request code
value control value
index control index
bytes pointer to data
size size of the data
Sends a specific USB control command and read associated data.

Returns:
a gphoto2 error code

References gp_log(), gp_log_data(), GP_LOG_DEBUG, _GPPortOperations::msg_interface_read, _GPPortPrivateCore::ops, and _GPPort::pc.

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.

Parameters:
port a GPPort
request control request code
value control value
index control index
bytes pointer to data
size size of the data
Sends a specific USB interface control command and write associated data.

Returns:
a gphoto2 error code

References gp_log(), gp_log_data(), GP_LOG_DEBUG, _GPPortOperations::msg_interface_write, _GPPortPrivateCore::ops, and _GPPort::pc.

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.

Parameters:
port a GPPort
request control request code
value control value
index control index
bytes pointer to data
size size of the data
Sends a specific USB interface control command and read associated data.

Returns:
a gphoto2 error code

References gp_log(), gp_log_data(), GP_LOG_DEBUG, _GPPortOperations::msg_read, _GPPortPrivateCore::ops, and _GPPort::pc.

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.

Parameters:
port a GPPort
request control request code
value control value
index control index
bytes pointer to data
size size of the data
Sends a specific USB control command and write associated data.

Returns:
a gphoto2 error code

References gp_log(), gp_log_data(), GP_LOG_DEBUG, _GPPortOperations::msg_write, _GPPortPrivateCore::ops, and _GPPort::pc.

int gp_port_write ( GPPort port,
const char *  data,
int  size 
)

Writes a specified amount of data to a port.

Parameters:
port a GPPort
data the data to write to the port
size the number of bytes to write to the port
Writes data to the port. On non-serial ports the amount of data written is returned (and not just GP_OK).

Returns:
a negative gphoto2 error code or the amount of data written.

References gp_log(), gp_log_data(), GP_LOG_DEBUG, GP_PORT_SERIAL, _GPPortPrivateCore::ops, _GPPort::pc, _GPPort::type, and _GPPortOperations::write.


Generated on Mon Oct 27 11:39:04 2008 for libgphoto2 photo camera library (libgphoto2) by  doxygen 1.5.5