亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? transmitest.cpp

?? CAN 驅動編程
?? CPP
字號:
//****************************************************************************// Copyright (C) 2001,2002, 2003  PEAK System-Technik GmbH//// linux@peak-system.com // www.peak-system.com//// This program is free software; you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation; either version 2 of the License, or// (at your option) any later version.//// This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the// GNU General Public License for more details.//// You should have received a copy of the GNU General Public License// along with this program; if not, write to the Free Software// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.//// Maintainer(s): Klaus Hitschler (klaus.hitschler@gmx.de)//****************************************************************************//****************************************************************************//// transmitest.cpp - a simple program to test CAN transmits//// $Log: transmitest.cpp,v $// Revision 1.5  2003/03/02 10:58:08  klaus// merged USB thread into main path//// Revision 1.4.2.3  2003/02/23 17:50:42  klaus// adapted to gcc 3.2//// Revision 1.4.2.2  2003/01/29 21:57:58  klaus// modified to use with USB//// Revision 1.4.2.1  2003/01/29 21:57:58  klaus// modified to use with USB//// Revision 1.4  2002/02/16 16:38:10  klaus// cosmetical changes//// Revision 1.3  2002/01/30 20:54:27  klaus// simple source file header change//// Revision 1.2  2002/01/13 18:26:42  klaus// first release//// Revision 1.1  2002/01/07 21:25:12  klaus// moved from transmittest.cpp////****************************************************************************//----------------------------------------------------------------------------// set here current release for this program#define CURRENT_RELEASE "Release_20020206_a"  //****************************************************************************// INCLUDES#include <cstdio>#include <cstdlib>#include <cerrno>#include <ctype.h>#include <unistd.h>   // exit#include <signal.h>#include <string.h>#include <libpcan.h>#include <src/common.h>#include <src/parser.h>//****************************************************************************// DEFINES//****************************************************************************// GLOBALSHANDLE h = NULL;char *current_release;//****************************************************************************// LOCALS//****************************************************************************// CODE static void hlpMsg(void){  printf("transmitest - a small test program which sends CAN messages.\n");  printf("usage:   transmitest filename [-t=type] [-p=port [-i=irq]] [-b=BTR0BTR1] [-e] [-?]\n");  printf("options: filename - mandatory name of message description file.\n");  printf("         -t - type of interface, e.g. 'pci', 'sp', 'epp' ,'isa' or 'usb' (default: pci).\n");  printf("         -p - port in hex notation if applicable, e.g. 0x378 (default: 1st port of type).\n");  printf("         -i - irq in dec notation if applicable, e.g. 7 (default: irq of 1st port).\n");  printf("         -b - BTR0BTR1 code in hex, e.g. 0x001C (default: 500 kbit).\n");  printf("         -e - accept extended frames. (default: standard frames)\n");  printf("         -? or --help - this help\n");  printf("\n");}  //----------------------------------------------------------------------------// centralized entry point for all exits static void my_private_exit(int error){  if (h)  {    print_diag("transmitest");    CAN_Close(h);   }  printf("transmitest: finished (%d).\n\n", error);  exit(error);}//----------------------------------------------------------------------------// handles CTRL-C user interruptstatic void signal_handler(int signal){  my_private_exit(0);} //----------------------------------------------------------------------------// all is done hereint main(int argc, char *argv[]){   char *ptr;  int i;  int nType = HW_PCI;  __u32 dwPort = 0;  __u16 wIrq = 0;  __u16 wBTR0BTR1 = 0;  int   nExtended = CAN_INIT_TYPE_ST;  char  *filename = NULL;  int   counter = 0;  parser MyParser;  std::list<TPCANMsg> *List;    errno = 0;    current_release = CURRENT_RELEASE;  disclaimer("transmitest");  // decode command line arguments  for (i = 1; i < argc; i++)  {    char c;        ptr = argv[i];        if (*ptr == '-')    {      while (*ptr == '-')        ptr++;	      c = *ptr;      ptr++;      if (*ptr == '=')      ptr++;      switch(tolower(c))      {        case 't':          nType = getTypeOfInterface(ptr);	        if (!nType)	        {		        errno = EINVAL;		        printf("transmitest: unknown type of interface");		        my_private_exit(errno);	        }          break;        case 'p':	        dwPort = strtoul(ptr, NULL, 16);	        break;        case 'i':	        wIrq   = (__u16)strtoul(ptr, NULL, 10);	        break;        case 'e':	        nExtended = CAN_INIT_TYPE_EX;	        break;        case '?':         case 'h':          hlpMsg();	        my_private_exit(0);	        break;        case 'b':	        wBTR0BTR1 = (__u16)strtoul(ptr, NULL, 16);	        break;        default:	        errno = EINVAL;	        printf("transmitest: unknown command line argument");	        my_private_exit(errno);	        break;      }    }    else      filename = ptr;              }  // test for filename  if (filename == NULL)  {    errno = EINVAL;    perror("transmitest: no filename given");    my_private_exit(errno);  }  // give the filename to my parser  MyParser.setFileName(filename);      // tell some information to user  printf("transmitest: type=%s", getNameOfInterface(nType));  if (nType == HW_USB)  {    printf(", Serial Number=default, Device Number=%d\n", wIrq);   }  else  {    if (dwPort)    {      if (nType == HW_PCI)        printf(", %d. PCI device", dwPort);      else        printf(", port=0x%08x", dwPort);    }    else      printf(", port=default");    if ((wIrq) && !(nType == HW_PCI))      printf(" irq=0x%04x\n", wIrq);    else      printf(", irq=default\n");  }      if (nExtended == CAN_INIT_TYPE_EX)    printf("             Extended frames are sent");  else    printf("             Only standard frames are sent");  if (wBTR0BTR1)    printf(", init with BTR0BTR1=0x%04x\n", wBTR0BTR1);  else    printf(", init with 500 kbit/sec.\n");      printf("             Data will be read from \"%s\".\n", filename);        // install signal handler for manual break  signal(SIGINT, signal_handler);    // get the list of data from parser  List = MyParser.Messages();  if (!List)  {    errno = MyParser.nGetLastError();    perror("transmitest: error at file read");    my_private_exit(errno);      }   // open the CAN port  // please use what is appropriate    // HW_DONGLE_SJA   // HW_DONGLE_SJA_EPP   // HW_ISA_SJA   // HW_PCI   h = CAN_Open(nType, dwPort, wIrq);    if (h)  {    char txt[VERSIONSTRING_LEN];    int  err;        // clear status    CAN_Status(h);       // get version info    errno = CAN_VersionInfo(h, txt);    if (!errno)      printf("transmitest: driver version = %s\n", txt);    else    {      perror("transmitest: CAN_VersionInfo()");      my_private_exit(errno);    }          // init to a user defined bit rate    if (wBTR0BTR1)    {      errno = CAN_Init(h, wBTR0BTR1, nExtended);      if (errno)      {        perror("transmitest: CAN_Init()");	      my_private_exit(errno);	    }	  }	  	  printf("transmitest: writing data to CAN ... (press Ctrl-C to exit)\n");          // write out endless loop until Ctrl-C    while (1)    {      std::list<TPCANMsg>::iterator iter;      int i;          for (iter = List->begin(); iter != List->end(); iter++)      {          // test for standard frames only        if ((nExtended == CAN_INIT_TYPE_EX) || !(iter->MSGTYPE & MSGTYPE_EXTENDED))	      {  	        // send the message          if ((errno = CAN_Write(h, &(*iter))))          {            perror("transmitest: CAN_Write()");	          my_private_exit(errno);	        }	      }		  }        }  }  else  {    errno = nGetLastError();    perror("transmitest: CAN_Open()");    my_private_exit(errno);  }      return errno;} 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧洲精品一区二区精品久久久| 亚洲精品大片www| 亚洲激情综合网| 老司机精品视频导航| 色综合一个色综合| 国产三级精品在线| 美女mm1313爽爽久久久蜜臀| 91啪九色porn原创视频在线观看| 精品国产一区二区三区四区四| 亚洲精品乱码久久久久| 成人18精品视频| 久久青草欧美一区二区三区| 三级亚洲高清视频| 欧美三级电影网| 亚洲视频一区二区在线观看| 国产黄人亚洲片| 久久久精品免费网站| 青草国产精品久久久久久| 色婷婷国产精品| 亚洲视频免费观看| jlzzjlzz欧美大全| 国产欧美一区二区精品秋霞影院 | 国产午夜亚洲精品羞羞网站| 午夜精品福利一区二区三区av| 91最新地址在线播放| 欧美国产综合一区二区| 狠狠色伊人亚洲综合成人| 欧美一区二区三区公司| 午夜在线电影亚洲一区| 欧美精品 国产精品| 亚洲va在线va天堂| 欧美剧情片在线观看| 亚洲aaa精品| 欧美丰满嫩嫩电影| 免费亚洲电影在线| 欧美成人a在线| 国产老肥熟一区二区三区| 26uuu成人网一区二区三区| 精品一区二区久久| 久久久www免费人成精品| 国产成人日日夜夜| 国产精品国产三级国产普通话99| 成人影视亚洲图片在线| 国产精品超碰97尤物18| 91久久线看在观草草青青 | 7777女厕盗摄久久久| 一二三区精品福利视频| 欧美日本国产一区| 另类小说色综合网站| 国产人妖乱国产精品人妖| 成人午夜免费视频| 亚洲国产精品嫩草影院| 欧美成人vr18sexvr| 成人精品国产免费网站| 一区二区三区中文免费| 欧美肥妇bbw| 成人爱爱电影网址| 亚洲欧美日韩国产另类专区| 欧美日韩成人综合| 国产乱妇无码大片在线观看| 国产精品美女久久久久久久久 | 蜜臀av性久久久久蜜臀aⅴ流畅| 精品免费日韩av| 91视频一区二区三区| 喷水一区二区三区| 国产精品九色蝌蚪自拍| 欧美一区二区福利视频| 懂色av噜噜一区二区三区av| 香蕉影视欧美成人| 久久精品综合网| 欧美日韩日日骚| 成人av影视在线观看| 奇米777欧美一区二区| 国产精品剧情在线亚洲| 欧美精品久久久久久久久老牛影院| 奇米四色…亚洲| 中文字幕一区二区三区精华液| 欧美日韩国产免费一区二区 | 欧美日韩一区高清| 国产jizzjizz一区二区| 日日摸夜夜添夜夜添精品视频| 国产精品视频你懂的| 国产精品久线在线观看| 在线播放亚洲一区| 99re这里只有精品视频首页| 麻豆91在线播放| 亚洲黄色av一区| 欧美国产激情一区二区三区蜜月| 欧美精品18+| 99re8在线精品视频免费播放| 麻豆高清免费国产一区| 亚洲一级电影视频| 亚洲婷婷国产精品电影人久久| 精品国产免费视频| 日韩亚洲欧美成人一区| 欧美日韩一区不卡| 欧美性受xxxx黑人xyx性爽| 成人h动漫精品一区二区| 韩国av一区二区三区四区| 日韩二区三区四区| 亚洲妇熟xx妇色黄| 一区二区三区波多野结衣在线观看 | 91一区二区三区在线观看| 精品一区二区三区免费毛片爱| 亚洲丶国产丶欧美一区二区三区| 中文字幕一区在线| 国产精品久久毛片| 国产精品视频免费| 国产精品国产三级国产aⅴ入口| 欧美成va人片在线观看| 欧美一区二区精美| 精品剧情v国产在线观看在线| 欧美电影一区二区| 日韩视频一区二区三区| 亚洲欧洲99久久| 国产精品国产三级国产aⅴ入口| 中日韩av电影| 自拍偷拍欧美精品| 亚洲午夜精品网| 日韩电影在线免费| 蜜臀av一区二区在线免费观看| 日韩一区欧美二区| 精品一区在线看| 国产精品羞羞答答xxdd | 免费在线观看成人| 久久国产人妖系列| 国产a级毛片一区| heyzo一本久久综合| 91视频91自| 欧美日韩电影一区| 日韩欧美电影一二三| 日韩一级黄色片| 久久亚洲一级片| 1024成人网| 日韩福利视频导航| 国产精品一区在线| 91农村精品一区二区在线| 在线视频亚洲一区| 日韩视频免费观看高清完整版在线观看| 日韩一级片网站| 欧美韩日一区二区三区| 一区二区三区精品在线观看| 性做久久久久久| 国产精品一卡二卡| 91免费版在线看| 欧美一区二区久久久| 国产女主播一区| 亚洲电影中文字幕在线观看| 久久er精品视频| 日本高清不卡aⅴ免费网站| 91精品综合久久久久久| 国产欧美一区二区三区在线看蜜臀| 最新欧美精品一区二区三区| 日韩高清一级片| 波多野结衣亚洲| 日韩视频免费观看高清完整版在线观看 | 欧美精品在线一区二区| 久久久电影一区二区三区| 亚洲中国最大av网站| 国产一区二区在线视频| 色哟哟欧美精品| 精品少妇一区二区三区免费观看| 国产精品久久久久影院老司 | 一区二区三区在线免费视频| 日本欧美在线观看| caoporen国产精品视频| 日韩欧美卡一卡二| 亚洲女女做受ⅹxx高潮| 久久99精品国产.久久久久| 色www精品视频在线观看| 精品福利一区二区三区| 亚洲最大成人综合| 成人av免费在线播放| 日韩女优电影在线观看| 亚洲精品视频在线| 国产盗摄女厕一区二区三区| 7878成人国产在线观看| 亚洲精品乱码久久久久久| 懂色av一区二区三区蜜臀 | 欧美高清dvd| 伊人开心综合网| jlzzjlzz国产精品久久| 久久网这里都是精品| 日韩成人免费看| 欧美日韩国产影片| 亚洲伊人伊色伊影伊综合网| 高清在线不卡av| 国产清纯白嫩初高生在线观看91 | 亚洲欧洲精品一区二区三区| 国产一区二区电影| 欧美成人bangbros| 美女视频网站黄色亚洲| 欧美日韩国产在线观看| 亚洲第一成人在线| 欧美午夜精品一区| 亚洲成人av资源| 欧美日韩一级片网站| 亚洲丰满少妇videoshd| 欧美美女黄视频| 午夜精品国产更新|