标题: 关于xp100 usb scanner驱动(读写register)的疑惑
linkstack
新生入学
Rank: 1



UID 201661
精华 0
积分 14(积分有什么用?)
帖子 28
阅读权限 10
注册 2007-7-6
来自 山东潍坊
状态 离线
发表于 2008-4-13 19:55  资料  个人空间  主页 短消息  加为好友  QQ
关于xp100 usb scanner驱动(读写register)的疑惑

int readRegOut(usb_dev_handle *udev,
                         unsigned char reg, unsigned char *val, int out) {

  char command[4];
  int ret;

  command[0] = 1;
  command[1] = reg;
  command[2] = 0;
  command[3] = 1;

  ret = usb_bulk_write(udev, 0x03, command, 4, 500);
  if (ret < 0)
    return ret;

  ret = usb_bulk_read(udev, 0x02, val, 1, 1000);
  if (out)
    printf("r-- %02x [01]  :  %i (%02x)  :  %i\n", reg, (int)(*val),
           (int)(*val), ret);
  return ret;

      // readReg
}

这是visioneer xp100 usb scanner驱动的一段代码(读寄存器)
0x03为scanner USB bulk_out_endpoint地址
0x02为scanner USB bulk_in_endpoint地址
我的疑问是:

  command[0] = 1;
  command[1] = reg;
  command[2] = 0;
  command[3] = 1;

这种命令格式(写reg寄存器)是开发厂商定义的还是所有的usb设备都要这样写?

希望大家能帮帮我,谢谢!

顶部
zltjiangshi
版主
Rank: 7Rank: 7Rank: 7
注册用户


UID 160339
精华 0
积分 78(积分有什么用?)
帖子 502
阅读权限 100
注册 2006-6-8
状态 离线
发表于 2008-4-15 13:13  资料  个人空间  短消息  加为好友 
这个问题,其实是为了跨平台,因为并不是所有的平台都支持用in/out指令操作设备寄存器。





1,本人乃Linux伊甸园“Linux内核学习”,“红旗等发行版”版主,请大家捧场。
2,红旗Linux在设备驱动,系统设置,中文美化,易用性方面做得非常好,建议大家使用。
3,本人是红旗Linux的粉丝,不是枪手。
顶部
linkstack
新生入学
Rank: 1



UID 201661
精华 0
积分 14(积分有什么用?)
帖子 28
阅读权限 10
注册 2007-7-6
来自 山东潍坊
状态 离线
发表于 2008-4-15 18:36  资料  个人空间  主页 短消息  加为好友  QQ

我明白了
谢谢版主!

顶部
 



当前时区 GMT+8, 现在时间是 2008-5-17 00:48

    Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
Processed in 0.067043 second(s), 5 queries

清除 Cookies - 联系我们 - Linux伊甸园 - Archiver - WAP