Пример #1
0
usb_dev_handle* pcsensor_open(){
	usb_dev_handle *lvr_winusb = NULL;
	char buf[256];
	int i, ret;

	if (!(lvr_winusb = setup_libusb_access())) {
		return NULL;
	} 

	switch(device_type(lvr_winusb)){
	case 0:
		control_transfer(lvr_winusb, uCmd1 );
		control_transfer(lvr_winusb, uCmd3 );
		control_transfer(lvr_winusb, uCmd2 );
		ret = get_data(lvr_winusb, buf, 256);
		if(debug){	
			printf("Other Stuff (%d bytes):\n", ret);
			for(i = 0; i < ret; i++) {
				printf(" %02x", buf[i] & 0xFF);
				if(i % 16 == 15) {
					printf("\n");
				}
			}
			printf("\n");
		}
		break;
	case 1:
		if (ini_control_transfer(lvr_winusb) < 0) {
			fprintf(stderr, "Failed to ini_control_transfer (device_type 1)");
			return NULL;
		}
      
		control_transfer(lvr_winusb, uTemperatura );
		interrupt_read(lvr_winusb);
 
		control_transfer(lvr_winusb, uIni1 );
		interrupt_read(lvr_winusb);
 
		control_transfer(lvr_winusb, uIni2 );
		interrupt_read(lvr_winusb);
		interrupt_read(lvr_winusb);
		break;
	}

	if(debug){
		printf("device_type=%d\n", device_type(lvr_winusb));
	}
	return lvr_winusb;
}
Пример #2
0
static void ipv6_header_init(struct proto_hdr *hdr)
{
	struct dev_io *dev = proto_dev_get();

	/* In case of tun interface we do not need to create Ethernet header */
	if (dev_io_is_netdev(dev) && device_type(dev_io_name_get(dev)) != ARPHRD_NONE)
		proto_lower_default_add(hdr, PROTO_ETH);

	proto_header_fields_add(hdr, ipv6_fields, array_size(ipv6_fields));

	proto_hdr_field_set_default_be32(hdr, IP6_VER, 6);
	proto_hdr_field_set_default_dev_ipv6(hdr, IP6_SADDR);
}
Пример #3
0
static float pcsensor_get_temperature(usb_dev_handle* lvr_winusb, float *tempc) {
    int ret;
    switch (device_type(lvr_winusb)) {
        case 0:
            ret = get_temperature(lvr_winusb, tempc);
            break;
        case 1:
            control_transfer(lvr_winusb, uTemperatura);
            ret = interrupt_read_temperatura(lvr_winusb, tempc);
            break;
    }
    if (ret < 0) {
        return ret;
    }
    return 0;
}
Пример #4
0
float pcsensor_get_temperature(usb_dev_handle* lvr_winusb){
	float tempc;
	int ret;
	switch(device_type(lvr_winusb)){
	case 0:
		ret = get_temperature(lvr_winusb, &tempc);
		break;
	case 1:
		control_transfer(lvr_winusb, uTemperatura );
		ret = interrupt_read_temperatura(lvr_winusb, &tempc);
		break;
	}
	if(ret < 0){
		return FLT_MIN;
	}
	return tempc;
}
Пример #5
0
static void dump_geom(int dev, bool bios)
{
	device_geometry geom;
	
	if (ioctl(dev, bios?B_GET_BIOS_GEOMETRY:B_GET_GEOMETRY, &geom, sizeof(geom)) < 0) {
		perror(bios ? "ioctl(B_GET_BIOS_GEOMETRY)" : "ioctl(B_GET_GEOMETRY)");
		return;
	}
	printf("%sgeometry:\n", bios?"bios ":"");
	printf("bytes_per_sector:\t%ld\n", geom.bytes_per_sector);
	printf("sectors_per_track:\t%ld\n", geom.sectors_per_track);
	printf("cylinder_count:\t%ld\n", geom.cylinder_count);
	printf("head_count:\t%ld\n", geom.head_count);
	printf("device_type:\t%d, %s\n", geom.device_type, device_type(geom.device_type));
	printf("%sremovable.\n", geom.removable?"":"not ");
	printf("%sread_only.\n", geom.read_only?"":"not ");
	printf("%swrite_once.\n", geom.write_once?"":"not ");
}
Пример #6
0
int32 K3LAPI::get_dsp(int32 dev, K3LAPI::DspType type)
{
    switch (device_type(dev))
    {
        case kdtFXO:
        case kdtFXOVoIP:
#if K3L_AT_LEAST(1,6,0)
        case kdtGSM:
        case kdtGSMSpx:
#endif
#if K3L_AT_LEAST(2,1,0)
        case kdtGSMUSB:
        case kdtGSMUSBSpx:
#endif
            return 0;

        default:
            return (type == DSP_AUDIO ? 1 : 0);
    }
}
Пример #7
0
static cups_device_t *			/* O - Device */
get_device(cups_array_t *devices,	/* I - Device array */
           const char   *serviceName,	/* I - Name of service/device */
           const char   *regtype,	/* I - Type of service */
           const char   *replyDomain)	/* I - Service domain */
{
  cups_device_t	key,			/* Search key */
		*device;		/* Device */
  char		fullName[kDNSServiceMaxDomainName];
					/* Full name for query */


 /*
  * See if this is a new device...
  */

  key.name = (char *)serviceName;
  key.type = device_type(regtype);

  for (device = cupsArrayFind(devices, &key);
       device;
       device = cupsArrayNext(devices))
    if (_cups_strcasecmp(device->name, key.name))
      break;
    else if (device->type == key.type)
    {
      if (!_cups_strcasecmp(device->domain, "local.") &&
          _cups_strcasecmp(device->domain, replyDomain))
      {
       /*
        * Update the .local listing to use the "global" domain name instead.
	* The backend will try local lookups first, then the global domain name.
	*/

        free(device->domain);
	device->domain = strdup(replyDomain);

#ifdef HAVE_DNSSD
	DNSServiceConstructFullName(fullName, device->name, regtype,
	                            replyDomain);
#else /* HAVE_AVAHI */
	avahi_service_name_join(fullName, kDNSServiceMaxDomainName,
				serviceName, regtype, replyDomain);
#endif /* HAVE_DNSSD */

	free(device->fullName);
	device->fullName = strdup(fullName);
      }

      return (device);
    }

 /*
  * Yes, add the device...
  */

  device           = calloc(sizeof(cups_device_t), 1);
  device->name     = strdup(serviceName);
  device->domain   = strdup(replyDomain);
  device->type     = key.type;
  device->priority = 50;

  cupsArrayAdd(devices, device);

 /*
  * Set the "full name" of this service, which is used for queries...
  */

#ifdef HAVE_DNSSD
  DNSServiceConstructFullName(fullName, serviceName, regtype, replyDomain);
#else /* HAVE_AVAHI */
  avahi_service_name_join(fullName, kDNSServiceMaxDomainName, serviceName, regtype, replyDomain);
#endif /* HAVE_DNSSD */

  device->fullName = strdup(fullName);

  return (device);
}
Пример #8
0
 explicit Type(const std::string t) : type(device_type(t)) {}