⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ts_blu.c

📁 上学的时候写的蓝牙触控板程序
💻 C
字号:
/**
 *
 * Hid remote cotrol
 * Use RFCOMM protocol to keep link
 *
 * Author: Kellerman
 * Version:0.1
 * TIME: May 26, 2007
 *
 **/


#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>

#include <errno.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <sys/stat.h>

#include "bluetooth.h"
#include "rfcomm.h"
#include "hidp.h"


#include "hidd.h"
#include "uinput.h"


typedef struct{
  unsigned short pressure;
  unsigned short x;
  unsigned short y;
  unsigned short pad;
}TS_RET;
int main ( int argc, char *argv[] )
{
  bdaddr_t src_bdaddr;//dst_bdaddr;
  struct sockaddr_rc laddr, raddr;
  int sk, nsk, touchscreen;
  socklen_t alen;
  int result=0;
  int countRead, countWrite;

  int i;

  TS_RET sentdata[200] = {0};
  
  sk = socket (PF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);

  if (sk <0)
    {
      fprintf ( stderr, "Can't creat socket: %s (%d)\n", strerror(errno), errno );
      exit (1);
    }

  memset ( &laddr, 0, sizeof(laddr));
  memset ( &raddr, 0, sizeof(raddr));

  laddr.rc_family = AF_BLUETOOTH;
 // bacpy ( &laddr.rc_bdaddr, &src_bdaddr );
  laddr.rc_bdaddr = *BDADDR_ANY;
  laddr.rc_channel = 1 ;

  if (bind ( sk, ( struct sockaddr *) &laddr, sizeof (laddr)) < 0)
    {
      fprintf ( stderr, "Can't bind socket: %s (%d)\n", strerror (errno), errno);
      close (sk);
      exit (1);
    }
  printf ("Listen......\n");
  result=listen ( sk, 1);
  if (result<0)
    {
      printf ("Error:%d\n",result);
      exit (1);
    }
  else
    {
      printf ("requested!\n");
    }
  printf ("Accepting......\n");
  alen = sizeof (raddr);
  nsk = accept ( sk, (struct sockaddr *)&raddr, &alen);
  touchscreen = open ("/dev/touchscreen/0raw",O_RDONLY);  
  if (touchscreen < 0)
    {
      fprintf (stderr, "Can't open Touchscreen\n");
      exit (1);
    }
  if (nsk <0)
    {
      fprintf ( stderr, "Accept error\n" );
      exit (1);
    }


  
  for ( i = 0; i <16; i ++ )
    {
      countRead = read (touchscreen,(char *)&sentdata,sizeof(sentdata));
      countWrite = write (nsk, &sentdata, countRead);
      printf ("wite:%d",countWrite);
    }

  printf ("Exit.....\n");
  exit (0);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -