Gamepad & WSN

Tag Archives: Network

迅雷快传

Author:Gamepader    IN:碎碎念    Tags:     评论: 0    超过13人围观

迅雷快传对非登录用户采取限速和限制并发下载数,校验方式是用户的cookies,download-number项目,如果每次/每两次下载清除一次cookies,再刷新页面的话,能够解除限制。

update@2014-11-17
该方法已过期

01-25
2014

蓝牙HCI根据OpCode计算OCF、OGF源代码

Author:Gamepader    IN:Network    Tags: , , ,     评论: 0    超过223人围观

最近在折腾蓝牙HCI接口,苦于没有人教,自己慢慢,终于能够通上信了(HCI_Reset命令执行成功)。
鉴于不清楚那一百多个蓝牙HCI指令具体用在什么环境,特地买了个USB蓝牙CSR4.0的模块来研究学习(算是下了大本钱了 :))。
用BUS Hound抓到的部分数据如下:

1
2
3
4
5
6
7
8
9
10
11
18.0 CTL 20 00 00 00 00 00 03 00 SEND HCI 5.1.0
18.0 OUT 03 0c 00 ... 5.2.0
18.1 IN 0e 04 01 03 0c 00 ...... 6.1.0
18.0 CTL 20 00 00 00 00 00 03 00 SEND HCI 7.1.0
18.0 OUT 05 10 00 ... 7.2.0
18.1 IN 0e 0b 01 05 10 00 36 01 40 0a 00 08 00 ......6.@.... 8.1.0
18.0 CTL 20 00 00 00 00 00 03 00 SEND HCI 9.1.0
18.0 OUT 01 10 00 ... 9.2.0
18.1 IN 0e 0c 01 01 10 00 06 bb 22 06 0a 00 bb 22 ........"...." 10.1.0
18.0 CTL 20 00 00 00 00 00 03 00 SEND HCI 11.1.0
18.0 OUT 02 10 00 ... 11.2.0

但是鉴于以下两点,不方便拆分具体的OCF和OGF。

    1.蓝牙HCI命令使用小端格式(Little-Endian)
    2.OGF占6 bits、OCF占10 bits。

想到用一个比较简单的数据结构来实现拆分:

1
2
3
4
5
6
7
8
typedef union _opcode_t_
{
    unsigned int opcod;
    struct {
        unsigned short ocf :10;
        unsigned short ogf :6;
    } op;
} opcode_t;

附上C++程序源代码如下(由于功能简单,代码相对简单,勿喷):
蓝牙HCI根据OpCode计算OCF、OGF源代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio .h>

typedef union _opcode_t_
{
    unsigned int opcod;
    struct {
        unsigned short ocf :10;
        unsigned short ogf :6;
    } op;
} opcode_t;

opcode_t HCI_OpCode;
unsigned int HCI_OP;

void main(unsigned char argc, unsigned char argv[])
{
    unsigned int* tmp;
    tmp = &HCI_OpCode;
    HCI_OP = 0x1005;

    while(1)
    {
        printf("Input OpCode (In Big-Endian):0x");
        scanf("%x",&HCI_OP);
        if(HCI_OP == 0) break;
        *tmp = HCI_OP;
        printf("OpCode=0x%04X\t",HCI_OpCode.opcod);
        printf("OGF=0x%02X\t",HCI_OpCode.op.ogf);
        printf("OCF=0x%02X\r\n\r\n",HCI_OpCode.op.ocf);
    }
    printf("Thankyou for use,Code by Gamepader.com");
    getch();

    return;
}

附上运行效果图(其实没有什么效果):
HCIOpCode2运行效果图
源代码下载:CalcOpCode.c
编译好的源程序:CalcOpCode.exe
原创文章,欢迎转载,但请注明来源://blog.gamepader.com/archives/2013/05/the-bluetooth-hci-according-opcode-calculated-ocf-ogf-source-code.html

05-14
2013

安装Cygwin没有找到cygreadline7.dll的解决办法

Author:Gamepader    IN:Network    Tags: , ,     评论: 0    超过185人围观

在Win7上安装Cygwin,装完之后进入预配置阶段,弹出一个对话框“没有找到cygreadline7.dll……”

解决办法是:

  • 1.运行cygwin的setup.exe 程序,选择从internet安装,然后搜索readline,把搜到的结果全部标记install.
  • 2.用同样的方法安装libreadline5, libreadline6, libreadline7

至此,问题解决。

推荐使用网易开源镜像服务器:

//mirrors.163.com/cygwin/

02-28
2013
loading...