diff --git a/camlibs/digita/digita.c b/camlibs/digita/digita.c index b0868f41b..592f1f788 100644 --- a/camlibs/digita/digita.c +++ b/camlibs/digita/digita.c @@ -93,7 +93,7 @@ int camera_init(Camera *camera, CameraInit *init) if (!strcmp(init->port_settings.path, "usb")) dev = digita_usb_open(camera); else - dev = digita_serial_open(camera); + dev = digita_serial_open(camera,init); return dev ? GP_OK : GP_ERROR; } diff --git a/camlibs/digita/digita.h b/camlibs/digita/digita.h index 6238df3e9..6ee36efa2 100644 --- a/camlibs/digita/digita.h +++ b/camlibs/digita/digita.h @@ -133,7 +133,7 @@ int digita_get_file_data(struct digita_device *dev, int thumbnail, int digita_delete_picture(struct digita_device *dev, struct filename *filename); /* serial.c */ -struct digita_device *digita_serial_open(Camera *camera); +struct digita_device *digita_serial_open(Camera *camera, CameraInit *init); /* usb.c */ struct digita_device *digita_usb_open(Camera *camera); diff --git a/camlibs/digita/serial.c b/camlibs/digita/serial.c index 365801099..0ce0b6c5b 100644 --- a/camlibs/digita/serial.c +++ b/camlibs/digita/serial.c @@ -164,7 +164,7 @@ static int digita_serial_read(struct digita_device *dev, void *_buffer, int len) return received; } -struct digita_device *digita_serial_open(Camera *camera) +struct digita_device *digita_serial_open(Camera *camera, CameraInit *init) { struct digita_device *dev; gpio_device_settings settings; @@ -180,10 +180,10 @@ struct digita_device *digita_serial_open(Camera *camera) if (!dev->gpdev) return NULL; -/* - strcpy(settings.serial.port, serial_port); -*/ - strcpy(settings.serial.port, "/dev/ttyS0"); + + strcpy(settings.serial.port,init->port_settings.path); + + //strcpy(settings.serial.port, "/dev/ttyS0"); settings.serial.speed = 9600; settings.serial.bits = 8; settings.serial.parity = 0; @@ -205,7 +205,8 @@ struct digita_device *digita_serial_open(Camera *camera) usleep(50); - dev->gpdev->settings.serial.speed = 9600; + + dev->gpdev->settings.serial.speed =init->port_settings.speed ; gpio_serial_set_baudrate(dev->gpdev); usleep(2000); @@ -227,7 +228,7 @@ struct digita_device *digita_serial_open(Camera *camera) beacon_ack.cf_reserved = 0; beacon_ack.cf_pod_receive_mode = 0; beacon_ack.cf_host_receive_mode = 0; - beacon_ack.dataspeed = htonl(SPEED); + beacon_ack.dataspeed = htonl(init->port_settings.speed); beacon_ack.deviceframesize = htons(1023); beacon_ack.hostframesize = htons(1023); beacon_ack.checksum = 0;