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

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

?? rstofbb.c

?? 一個C語言寫的讀入位置跟蹤器數據的源程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
/****************************************************************************
*****************************************************************************

    rstofbb.c       RS232 to FBB C Commands

    written for:    Ascension Technology Corporation
		    PO Box 527
		    Burlington, Vermont  05402

		    802-655-7879

    written by:     Jeff Finkelstein

    Modification History:
       4/22/92   jf.. POSK36 changed to posk, posk declared external
       6/16/92   jf.. modified angle output format to 0.1 degree resol.
       8/17/92   jf.. modified for Group Data Mode
       10/3/92   jf.. fixed bug in POS/MATRIX display
       10/12/92  jf.. fixed bug in Group Data Mode Display of Info
       1/27/92   jf.. integrated with CBIRD
       7/7/93    jf.. updated to allow the display of button data from
		      multiple units in both the RS232 PASS through mode
		      and Group Mode
       10/20/93  jf.. modified to use GETTICKS

	   <<<< Copyright 1992 Ascension Technology Corporation >>>>
*****************************************************************************
****************************************************************************/

#include <stdio.h>          /* general I/O */
#include "asctech.h"        /* Ascension Technology definitions */
#include "compiler.h"       /* Compiler Specific Header */
#include "menu.h"           /* Ascension Technology Menu Routines */
#include "serial.h"         /* Ascension Technology Serial Port Routines */
#include "cmdutil.h"
#include "pctimer.h"
#include "rstofbb.h"

/*
    Define Externals
*/
extern float posk;
extern unsigned char fbbgroupdataflg;
extern FILE * datafilestream;
extern short flocksize;
extern short numfbbaddrs;
extern short numfbbrcvrs;
extern short buttonvalue;
extern unsigned char fbbsystemstatus[];


/*
    Define Globals
*/
unsigned char displayliststartaddr = 1;
unsigned char displayliststopaddr = 0;
unsigned char displaymultidataflg = FALSE;
unsigned char rs232tofbbstartaddr = 99; /* start with an illegal address */
unsigned char screencleared = FALSE;
unsigned char multibuttonvalue[30];     /* holds the buttonvalue for each unit */



/*
    rs232tofbbcmd       RS232 to FBB Command

    Prototype in:       rstofbb.h

    Parameters Passed:  void

    Return Value:       TRUE if command sent OK
			FALSE if command could not be sent
			ESC_SEL if the user selected ESC

    Remarks:
*/
int rs232tofbbcmd()
{
    int answer;
    printf ("\n\rIf enabled, the RS232 TO FBB Command will be used for all commands other\n\rthen the data display commands...\n\r");

    if ((answer = askyesno("\n\rDo you want to enable the RS232 TO FBB Command")) == ESC_SEL)
    {
	return (ESC_SEL);
    }
    else
    {
	/*
	    Shut off the Command if the user answer NO
	*/
	if (answer == FALSE)
	{
	    rs232tofbbaddr = 0;     /* The Zero Address indicates not used */
	    return (FALSE);
	}
    }

    /*
	Get the Destination Addresses
    */
    getfbbdestaddress(&rs232tofbbstartaddr,NULL);

    /*
	Store for serial communications
    */
    rs232tofbbaddr = rs232tofbbstartaddr;

    return(TRUE);
}

/*
    getmultibirddata    Get Data from Multiple Birds

    Prototype in:       rstofbb.h

    Parameters Passed:  outputmode - POINT, CONTINUOUS, STREAM
			datamode   - POS, ANGLE, MATRIX, etc.
			displayon  - TRUE, FALSE
			buttonmode - ON, OFF
			(global) displayliststartaddr - 1st address in
				 the group to retrieve data from
			(global) displayliststopaddr - last address in
				 the group to retrieve data from

    Return Value:       TRUE if command executed OK
			FALSE otherwise

    Remarks:            Get data from a group of Birds using the ind
			the datamode specified
*/
int getmultibirddata(outputmode,datamode,displayon,buttonmode)
short outputmode;
unsigned char datamode;
unsigned char displayon;
short buttonmode;
{
    unsigned char startaddr;
    unsigned char stopaddr;
    short chr;
    unsigned char birddata[25 * 30];
    unsigned char firsttime = TRUE;

    /*
	Get the System Status from the Flock in Group Mode to assure
	that we get data from the correct number of receivers
    */
    if (fbbgroupdataflg)
    {
	if (!getsystemstatus())
	    return(FALSE);
    }

    /*
	Set All the Birds into the correct Data Output Mode
    */
    startaddr = displayliststartaddr;
    stopaddr = displayliststopaddr;

    if (!setdatamode(startaddr, stopaddr, datamode))
	return(FALSE);

    /*
	Now Get Data from all the Birds
    */
    screencleared = FALSE;

    while (TRUE)
    {
	/*
	   Display from on the Top of Screen
	*/
	if (!screencleared)
	{
	   CLEARSCREEN;
	   screencleared = TRUE;
	}

	/*
	   Move Cursor to the Top of the Screen
	*/
	SETTEXTPOS(1,1);

	/*
	    Put up a User Message
	*/
	if (!fbbgroupdataflg)
	   printf ("Data from Flock... (Hit Any Key to Quit) \n\n\r");
	else
	   printf ("Group Data from Flock... (Hit Any Key to Quit) \n\n\r");

	/*
	     Send the User a Prompt if in Point mode
	*/
	switch  (outputmode)
	{
	    case POINT:
		printf ("Hit the 'B' Key to read Bird data...\n\r");
		while (!ckkbhit());               /* wait for a key */
		chr = getkey();                   /* get the character */
		if ((chr != 'B') && (chr != 'b')) /* check if a B or b */
		   return(TRUE);
		break;

	    case CONTINUOUS:

		if (ckkbhit())
		{
		   clearkey();
		   SETTEXTPOS(1,numfbbrcvrs+4);
		   hitkeycontinue();
		   return(TRUE);
		}
		break;

	    case STREAM:
		if (firsttime)
		{
		   send_serial_cmd((unsigned char *)"@",1);     /* START streaming */
		   firsttime = FALSE;
		}

		if (ckkbhit())
		{
		   clearkey();
		   send_serial_cmd((unsigned char *)"B",1);     /* stop streaming, via Point cmd */
		   if (phaseerror_count)       /* inform the user of phase errors */
		   {
					    printf("*NOTE* %d Phase Errors have occured\n\r",phaseerror_count);
		   }
		   SETTEXTPOS(1,numfbbrcvrs+4);
		   hitkeycontinue();
		   return(TRUE);
		}
		break;

	    default:
		printf("\n\r** ERROR ** mode not currently supported\n\r");
		hitkeycontinue();
		return(FALSE);
	}

	/*
	    Get and Display the Data from all the Birds
	*/
	if (getmultirecords(outputmode, buttonmode, datamode, startaddr, stopaddr, birddata))
	{
	    displaymultidata(datamode, buttonmode, displayon,
			     startaddr,stopaddr, birddata,
			     datafilestream);
	}
	else
	{
	    return(FALSE);
	}
    }
}

/*
    getmultirecords     Get Multiple Records

    Prototype in:       rstofbb.h

    Parameters Passed:  datamode - POS,ANGLE,MATRIX,etc
			buttonmode - ON/OFF
			startaddr - 1st FBB address to collect data from
			stopaddr - last FBB address to collect data from
			(global) fbbgroupdataflg - TRUE or FALSE, indicating the state
				 group mode

    Return Value:       TRUE if all went well
			FALSE otherwise

    Remarks:
*/
int getmultirecords(outputmode, buttonmode, datamode, startaddr, stopaddr, birddata)
short outputmode;
short buttonmode;
unsigned char datamode;
unsigned char startaddr;
unsigned char stopaddr;
unsigned char * birddata;
{
    short datasize;
    short numrecords = 0;
    unsigned char addr = 0;
    unsigned char temprs232tofbbaddr;
    unsigned char birdcmd;

    /*
	Save the Global rs232tofbbaddr in a temp
    */
    birdcmd = (unsigned char) 'B';        /* POINT data mode */
    temprs232tofbbaddr = rs232tofbbaddr;


    switch (datamode)
    {
	case POS:  /* position */
	     datasize = 3;
	     break;

	case ANGLE:  /* angles */
	     datasize = 3;
	     break;

	case MATRIX:  /* matrix */
	     datasize = 9;
	     break;

	case POSANGLE:  /* position/angles */
	     datasize = 6;
	     break;

	case POSMATRIX:  /* position/matrix */
	     datasize = 12;
	     break;

	case QUATER:     /* quaternions */
	     datasize = 4;
	     break;

	case POSQUATER:  /* position and quaternions */
	     datasize = 7;
	     break;

	default:
	     printf("\n\r** ERROR ** illegal datamode in getmultirecord\n\r");
	     rs232tofbbaddr = temprs232tofbbaddr;
	     return(FALSE);
    }

    /*
       If the Bird is NOT in the Group Data Mode
    */
    if (!fbbgroupdataflg)
    {
	/*
	    Now Get the Data for each device
	*/
	for (addr = startaddr; addr <= stopaddr; addr++)
	{
	    /*
		Only Get data from devices with receivers
	    */
	    if (!(fbbsystemstatus[addr] & 0x20))
		continue;

	    /*
		Set the FBB Address
	    */
	    rs232tofbbaddr = addr;

	    /*
		Send the POINT command
	    */
	    if (send_serial_cmd(&birdcmd,1) != 1)
	    {
		printf("\n\r** ERROR ** could not send Point command to Bird at address %d\n\r",addr);
		rs232tofbbaddr = temprs232tofbbaddr;
		return(FALSE);
	    }
	    else
	    {
		if (!readbirddata((short *)birddata, datasize, POINT, buttonmode))
		{
		    printf("\n\r** ERROR ** could not get information from Bird at address %d\n\r",addr);
		    rs232tofbbaddr = temprs232tofbbaddr;
		    return(FALSE);
		}
		else
		{
		    birddata += (datasize * 2) + buttonmode;

		    /*
			Save the Button Value for Each Address
		    */
		    multibuttonvalue[addr] = buttonvalue;
		}
	    }
	}
    }
    else /* The Bird is in the Group Data Mode */
    {
	/*
	    Shut off the rs232 to fbb command..temporarily
	*/
	rs232tofbbaddr = 0;

	/*
	    Send the output position command
	*/
	if (outputmode != STREAM)
	{
	    if (send_serial_cmd(&birdcmd,1) != 1)
	    {
		printf("\n\r** ERROR ** could not send Point command to Bird at address %d\n\r",addr);
		rs232tofbbaddr = temprs232tofbbaddr;
		return(FALSE);
	    }
	}

	/*
	    Do for all the address ..
	    Only Get Data from the devices with Receivers
	    ..so offset the number of records
	*/
	while (numrecords++ < numfbbrcvrs)
	{
	    if (!readbirddata((short *)birddata, datasize, POINT, buttonmode))
	    {
		printf("\n\r** ERROR ** could not get information from Bird %d\n\r",addr);
		rs232tofbbaddr = temprs232tofbbaddr;
		return(FALSE);
	    }
	    else
	    {
		/*
		    Add in the extra address char (GROUP MODE)
		    Note that datasize was in WORDs
		*/
		birddata += (datasize * 2) + 1 + buttonmode;

		/*
		    Save the Button Value for Each Address
		*/
		multibuttonvalue[numrecords] = buttonvalue;
	    }
	}
    }

    rs232tofbbaddr = temprs232tofbbaddr;
    return(TRUE);
}


/*
    getfbbdestaddress   Get the FBB Destination Addresses

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人午夜看片网址| 精品国产免费一区二区三区四区| 欧美日韩日日摸| 国产亚洲精品aa| 午夜视频在线观看一区二区| 成人永久免费视频| 欧美电影免费观看高清完整版| 亚洲男女毛片无遮挡| 国产自产v一区二区三区c| 91极品美女在线| 中文一区二区在线观看| 久久爱另类一区二区小说| 在线观看一区二区视频| 国产精品乱人伦中文| 国产一区在线不卡| 在线成人免费视频| 亚洲国产视频直播| 91极品视觉盛宴| 亚洲欧美视频在线观看| 丰满放荡岳乱妇91ww| 久久久91精品国产一区二区三区| 男人的天堂久久精品| 欧美日韩成人激情| 亚洲精品久久7777| 波多野结衣精品在线| 国产亚洲精品久| 国产一区二区剧情av在线| 日韩一二三区视频| 热久久免费视频| 日韩欧美一级二级三级久久久| 日韩激情一二三区| 91精品国产麻豆国产自产在线| 婷婷丁香激情综合| 欧美四级电影在线观看| 亚洲国产精品综合小说图片区| 欧美性淫爽ww久久久久无| 亚洲精品你懂的| 欧美亚洲国产bt| 亚洲成人免费观看| 88在线观看91蜜桃国自产| 亚洲v精品v日韩v欧美v专区| 91精品国产综合久久久蜜臀图片| 日韩不卡免费视频| 欧美一区二区三区日韩| 日本va欧美va欧美va精品| 日韩一区二区麻豆国产| 国内久久婷婷综合| 中文字幕精品一区| 日本高清视频一区二区| 亚洲国产va精品久久久不卡综合| 7777精品伊人久久久大香线蕉超级流畅| 日韩精品亚洲一区二区三区免费| 91精品国产欧美一区二区18| 国产一区二区三区电影在线观看| 国产日产亚洲精品系列| 一本一本大道香蕉久在线精品| 亚洲成在人线免费| 日韩欧美黄色影院| 国产成人精品亚洲777人妖| 亚洲视频网在线直播| 91精品啪在线观看国产60岁| 国产精品一区二区三区乱码| 有坂深雪av一区二区精品| 欧美一级搡bbbb搡bbbb| 国产成人日日夜夜| 一区二区三区久久久| 欧美大尺度电影在线| 成人开心网精品视频| 亚洲成人免费在线| 国产欧美一区二区精品婷婷| 欧美三级中文字幕在线观看| 国产一区二区久久| 亚洲曰韩产成在线| 久久亚洲二区三区| 欧美日韩性生活| 成人免费毛片高清视频| 日韩av中文字幕一区二区三区| 国产精品午夜久久| 欧美一区二区三区在线观看| 不卡视频免费播放| 青青草国产精品97视觉盛宴| 亚洲蜜臀av乱码久久精品| 欧美刺激脚交jootjob| 国产91在线看| 美女视频一区二区| 亚洲综合一区二区精品导航| 久久久久久久久久久久电影| 911国产精品| 欧美性xxxxx极品少妇| 成人精品视频.| 国产一区二区0| 日本网站在线观看一区二区三区| 亚洲欧美偷拍另类a∨色屁股| 久久看人人爽人人| 日韩欧美成人一区二区| 欧美人与性动xxxx| 欧美综合一区二区三区| 成人免费三级在线| 国产乱国产乱300精品| 石原莉奈在线亚洲三区| 亚洲精品视频免费观看| 国产精品第五页| 国产精品美女久久久久久久久久久| 欧美一区二区三区电影| 8x8x8国产精品| 欧美乱妇15p| 欧美美女bb生活片| 欧美日韩国产一级| 欧美色成人综合| 欧美三区在线视频| 欧美三级电影一区| 欧美午夜在线观看| 欧美视频一区二区在线观看| 欧美亚洲日本一区| 欧美在线制服丝袜| 欧美性猛片aaaaaaa做受| 色香蕉久久蜜桃| 欧美午夜片在线观看| 欧美三级电影一区| 欧美一区二区三区在线观看 | 成人精品国产一区二区4080| 国产麻豆日韩欧美久久| 国产一区二区三区综合| 国产jizzjizz一区二区| 成人精品高清在线| 色综合天天做天天爱| 色综合久久精品| 欧美体内she精视频| 91精品麻豆日日躁夜夜躁| 日韩一区二区三区视频| 久久久精品2019中文字幕之3| 国产婷婷色一区二区三区| 国产精品久久久久影院色老大| 亚洲欧美在线视频| 亚洲自拍偷拍欧美| 麻豆精品在线看| 北条麻妃一区二区三区| 色婷婷久久99综合精品jk白丝| 欧美日韩精品电影| 精品国产三级电影在线观看| 国产精品妹子av| 亚洲国产精品久久久久婷婷884 | 青青草原综合久久大伊人精品优势 | 欧美视频一区二区| 欧美一区二区三区人| 国产午夜精品美女毛片视频| 亚洲色图在线看| 热久久久久久久| 成a人片亚洲日本久久| 欧美精品电影在线播放| 久久精品亚洲乱码伦伦中文| 一区二区成人在线| 久久精品国产77777蜜臀| 91原创在线视频| 日韩欧美区一区二| 亚洲色图19p| 黄色精品一二区| 欧美日韩亚洲国产综合| 国产日韩一级二级三级| 亚洲va欧美va人人爽午夜| 国产一区二区在线影院| 欧美在线你懂的| 中文字幕av资源一区| 日本少妇一区二区| 一本色道a无线码一区v| 精品少妇一区二区| 亚洲国产cao| 99re8在线精品视频免费播放| 欧美大胆人体bbbb| 亚洲午夜激情av| 不卡视频一二三| 久久精品免费在线观看| 秋霞av亚洲一区二区三| 91极品美女在线| 亚洲欧洲精品天堂一级| 国产又黄又大久久| 777色狠狠一区二区三区| 亚洲欧美另类小说| 粉嫩绯色av一区二区在线观看| 日韩精品专区在线影院观看| 亚洲成人黄色影院| 一本久道久久综合中文字幕| 亚洲国产精品t66y| 国产一区二区三区| 欧美xxxxxxxxx| 美女视频免费一区| 91超碰这里只有精品国产| 亚洲激情自拍偷拍| 91网站黄www| 亚洲另类中文字| 色哟哟亚洲精品| 亚洲猫色日本管| 91在线porny国产在线看| 国产精品国产三级国产a| 国产mv日韩mv欧美| 中文字幕av资源一区| 成人精品国产福利| 中文字幕一区二区三区在线不卡 | 日本不卡不码高清免费观看| 欧美精品tushy高清|