/* Perform the Read data and Plot data actions */	
void CVICALLBACK readDataAndPlot(CmtTSQHandle queueHandle, unsigned int event,
                     int value, void *callbackData){
	unsigned char data[READ_LENGTH];
	int tsqRValue = value, tsqREvent = event; //Thread Safe Result Value.
	switch(tsqREvent){
		case EVENT_TSQ_ITEMS_IN_QUEUE:
            /* Read data from the thread safe queue and plot on the graph */
            while(tsqRValue >= READ_LENGTH){
                CmtReadTSQData(tsqHdl, data, READ_LENGTH, TSQ_INFINITE_TIMEOUT, 0);
				/* Start to calculate the 陀螺仪的x,y,z 以及加计的x,y,z */
				resultCounter = 0; //用来重新自增计数 resultData[x][resultCounter]中的采集次数
				if(dataSrc <=1)
					getFinalRightData(&data[0]);
				else
					simulateData();
				/* Plot the data. */
                if(tabFlag==0){ //Child Panels Mode
					for(int i=0; i<validMonNum; i++){
						if(1 == signalShowingStat[i])
							PlotStripChart(CPanels[i], PGraphs[i], resultData[i], READ_LENGTH/24, 0, 0, VAL_DOUBLE);
					}
				}else{ //Tab pages mode
					int i = 0;
					GetActiveTabPage(panelHdl, tabCtrl, &i);
					if(1 == signalShowingStat[i])
						PlotStripChart(TPanels[i], PGraphs[i], resultData[i], READ_LENGTH/24, 0, 0, VAL_DOUBLE);
				}
				tsqRValue -= READ_LENGTH;
            }//while(tsqR...)
            break;
    }//Switch()
}
/* 系统辅助-根据传进来的panelHdl,判断是第i路信号,并返回i */
int getGraphIndex(int pHdl,int fromWhere){
	int i = 0;
	switch(fromWhere){
		case 0: //from Main Panel
			if(tabFlag == 0){ //Child Panel Mode
				for(i=0; i<validMonNum; i++){
					if( pHdl == CPanels[i])
						return i;
				}
			}else{
				GetActiveTabPage(panelHdl, tabCtrl, &i);
				return i;
			}
			break;
		case 1: //from Analysis Panel
			for(i=0; i<validMonNum; i++){
				if(pHdl == PopPanels[i])
					return i;
			}
			break;
	}
	return i;
}
Exemple #3
0
int		UpdateCurrentItem( int panelHandle )
{
	int			iIndex								=	giCurrentItemIndex;
	
	char		szStringValue[LOW_STRING]			=	{0};
	
	int			iPortIndex							=	0,
				iCurrentTabIndex					=	0;
	
	int			tabPanelHandle						=	0;
	
	GetActiveTabPage (panelHandle , PANEL_TAB , &iCurrentTabIndex );
	
	GetPanelHandleFromTabPage ( panelHandle , PANEL_TAB , iCurrentTabIndex, &tabPanelHandle );
	
	SetCtrlVal( panelHandle , PANEL_COMMAND_NAME_STRING , gvtListOfCommands[iIndex].szCommandName );
	
	if (( gvtListOfCommands[iIndex].iConfigType == 1 ) || ( gvtListOfCommands[iIndex].iConfigType == 2 ))
		SetTabPageAttribute ( panelHandle , PANEL_TAB , 2 , ATTR_VISIBLE, 1 );
	else
		SetTabPageAttribute ( panelHandle , PANEL_TAB , 2 , ATTR_VISIBLE, 0 );
	
	if ( gvtListOfCommands[iIndex].iConfigType == 4 ) 
		SetTabPageAttribute ( panelHandle , PANEL_TAB , 1 , ATTR_VISIBLE, 1 );
	else
		SetTabPageAttribute ( panelHandle , PANEL_TAB , 1 , ATTR_VISIBLE, 0 );
	
	switch(iCurrentTabIndex)
	{
		case 0:
				if ( gvtListOfCommands[iIndex].pBaudRateArray[0] )
					sprintf( szStringValue , "%d" , gvtListOfCommands[iIndex].pBaudRateArray[0] ); 							     
				else
					strcpy( szStringValue , "-" ); 							     
				
				SetCtrlVal( tabPanelHandle , DEFAULT_BOUD_RATE , szStringValue );
				
				sprintf( szStringValue , "0x%02llX" , gvtListOfCommands[iIndex].BitDirectionMask ); 												  
				SetCtrlVal( tabPanelHandle , DEFAULT_BIT_DIR_MASK , szStringValue ); 
				
				sprintf( szStringValue , "%lf" , gvtListOfCommands[iIndex].lfSetTimeout ); 											
				SetCtrlVal( tabPanelHandle , DEFAULT_SET_TIMEOUT , szStringValue );     											  
				
				sprintf( szStringValue , "%lf" , gvtListOfCommands[iIndex].lfSetDelay ); 
				SetCtrlVal( tabPanelHandle , DEFAULT_SET_DELAY , szStringValue );												  	  
				
				sprintf( szStringValue , "%lf" , gvtListOfCommands[iIndex].dPowerUpLevel ); 													  
				SetCtrlVal( tabPanelHandle , DEFAULT_POWER_UP_LEVEL , szStringValue );  	
													
				if ( gvtListOfCommands[iIndex].lfMaxValue == 0.0 )
					gvtListOfCommands[iIndex].lfMaxValue = 5.0;
				
				sprintf( szStringValue , "%lf" , gvtListOfCommands[iIndex].lfMaxValue ); 													  
				SetCtrlVal( tabPanelHandle , DEFAULT_MAX_VALUE , szStringValue ); 
				
				sprintf( szStringValue , "%lf" , gvtListOfCommands[iIndex].lfMinValue ); 													  
				SetCtrlVal( tabPanelHandle , DEFAULT_MIN_VALUE , szStringValue ); 
																				
				sprintf( szStringValue , "%d" , gvtListOfCommands[iIndex].valueCount ); 														  
				SetCtrlVal( tabPanelHandle , DEFAULT_VALUE_COUNT , szStringValue ); 
				
				sprintf( szStringValue , "0x%02llX" , gvtListOfCommands[iIndex].DefValue ); 													  
				SetCtrlVal( tabPanelHandle , DEFAULT_DEFAULT_VALUE , szStringValue );  
				
				sprintf( szStringValue , "0x%02llX" , gvtListOfCommands[iIndex].UseBitsMap ); 															  
				SetCtrlVal( tabPanelHandle , DEFAULT_USE_BITS_MAP , szStringValue );												  
						
				if ( gvtListOfCommands[iIndex].iPortsQuantity == 0)
					gvtListOfCommands[iIndex].iPortsQuantity = 1;
				
				memset( szStringValue , 0 , LOW_STRING );
				
				for ( iPortIndex = 0; iPortIndex < gvtListOfCommands[iIndex].iPortsQuantity; iPortIndex++ )
				{
					if ( iPortIndex > 0 )
						strcat( szStringValue , "," );
					
					sprintf( szStringValue + strlen(szStringValue) , "%d" , gvtListOfCommands[iIndex].pPortNumbersArray[iPortIndex] ); 															  
				}
				
				SetCtrlVal( tabPanelHandle , DEFAULT_PORTS , szStringValue );
				
				SetCtrlVal( tabPanelHandle , DEFAULT_PULLING_TYPE , gvtListOfCommands[iIndex].bPullingState );
				
				SetCtrlVal( tabPanelHandle , DEFAULT_DEVICE_NAME , gvtListOfCommands[iIndex].szDeviceName );
				
				SetCtrlVal( tabPanelHandle , DEFAULT_VALUE_TYPE , gvtListOfCommands[iIndex].valueType );
				
				SetCtrlVal( tabPanelHandle , DEFAULT_PILLING_STATE , gvtListOfCommands[iIndex].bPowerUpState );
	
				if ( gvtListOfCommands[iIndex].iConfigType )
					SetCtrlVal( tabPanelHandle , DEFAULT_CONFIG_TYPE , gvtListOfCommands[iIndex].iConfigType );
				else
					SetCtrlIndex( tabPanelHandle , DEFAULT_CONFIG_TYPE , 0 );
					
				if ( gvtListOfCommands[iIndex].iMeasureType )
					SetCtrlVal( tabPanelHandle , DEFAULT_MEASURE_TYPE , gvtListOfCommands[iIndex].iMeasureType );
				else
					SetCtrlIndex( tabPanelHandle , DEFAULT_MEASURE_TYPE , 0 );
				
				break; 
				
		case 1:
				break;
				
		case 2:
				sprintf( szStringValue , "%d" , gvtListOfCommands[iIndex].iAlalogMeasureNumberOfPoints  ); 
				SetCtrlVal( tabPanelHandle , MEAS_CONF_NUMBER_OF_POINTS , szStringValue );
				
				sprintf( szStringValue , "%d" , gvtListOfCommands[iIndex].iAlalogMeasureSimpleRate ); 
				SetCtrlVal( tabPanelHandle , MEAS_CONF_SIMPLE_RATE , szStringValue );
				
				SetCtrlVal( tabPanelHandle , MEAS_CONF_MEASURE_FUNCTION , gvtListOfCommands[iIndex].iAlalogMeasureFunction );
				
				break;
		
		default: 
				break;
	}
	
	return 0;
}
Exemple #4
0
int		UpdateCurrentItem( int panelHandle )
{
	int			iIndex								=	giCurrentItemIndex;
	
	char		szStringValue[LOW_STRING]			=	{0};
	
	int			iCurrentTabIndex					=	0;
	
	int			tabPanelHandle						=	0;
	
	GetActiveTabPage (panelHandle , PANEL_TAB , &iCurrentTabIndex );
	
	GetPanelHandleFromTabPage ( panelHandle , PANEL_TAB , iCurrentTabIndex, &tabPanelHandle );
	
	SetCtrlVal( panelHandle , PANEL_COMMAND_NAME_STRING , gvtListOfCommands[iIndex].szCommandName );
	
	if ( gvtListOfCommands[iIndex].iInterfaceType == 1 ) 
		SetTabPageAttribute ( panelHandle , PANEL_TAB , 1 , ATTR_VISIBLE, 1 );
	else
		SetTabPageAttribute ( panelHandle , PANEL_TAB , 1 , ATTR_VISIBLE, 0 );
	
	if ( gvtListOfCommands[iIndex].valueMode == VALUE_MODE_ON_OFF ) // On Off 
	{
		SetCtrlAttribute( tabPanelHandle , DEFAULT_STATE_ON_VAL , ATTR_DIMMED , 0 );
		SetCtrlAttribute( tabPanelHandle , DEFAULT_STATE_OFF_VAL , ATTR_DIMMED , 0 );
	}
	else
	{
		SetCtrlAttribute( tabPanelHandle , DEFAULT_STATE_ON_VAL , ATTR_DIMMED , 1 );
		SetCtrlAttribute( tabPanelHandle , DEFAULT_STATE_OFF_VAL , ATTR_DIMMED , 1 );
	}
	
	switch(iCurrentTabIndex)
	{
		case 0:
				sprintf( szStringValue , "0x%02llX" , gvtListOfCommands[iIndex].BitDirectionMask ); 												  
				SetCtrlVal( tabPanelHandle , DEFAULT_BIT_DIR_MASK , szStringValue ); 
				
				//sprintf( szStringValue , "%lf" , gvtListOfCommands[iIndex].lfSetTimeout ); 											
				//SetCtrlVal( tabPanelHandle , DEFAULT_SET_TIMEOUT , szStringValue );     											  
				
				sprintf( szStringValue , "%lf" , gvtListOfCommands[iIndex].lfSetDelay ); 
				SetCtrlVal( tabPanelHandle , DEFAULT_SET_DELAY , szStringValue );												  	  
				
				sprintf( szStringValue , "%d" , gvtListOfCommands[iIndex].valueCount ); 														  
				SetCtrlVal( tabPanelHandle , DEFAULT_VALUE_COUNT , szStringValue ); 
				
				sprintf( szStringValue , "0x%02llX" , gvtListOfCommands[iIndex].DefValue ); 													  
				SetCtrlVal( tabPanelHandle , DEFAULT_DEFAULT_VALUE , szStringValue );  
				
				sprintf( szStringValue , "0x%02llX" , gvtListOfCommands[iIndex].UseBitsMap ); 															  
				SetCtrlVal( tabPanelHandle , DEFAULT_USE_BITS_MAP , szStringValue );												  
						
				if ( gvtListOfCommands[iIndex].iPortsQuantity == 0)
					gvtListOfCommands[iIndex].iPortsQuantity = 1;
				
				sprintf( szStringValue , "%d" , gvtListOfCommands[iIndex].pPortNumbersArray[0] ); 															  
				SetCtrlVal( tabPanelHandle , DEFAULT_PORTS , szStringValue );
				
				sprintf( szStringValue , "%d" , gvtListOfCommands[iIndex].pFeedbackPortNumbersArray[0] ); 															  
				SetCtrlVal( tabPanelHandle , DEFAULT_PORTS_FEEDBACK , szStringValue );
				
				sprintf( szStringValue , "0x%02llX" , gvtListOfCommands[iIndex].FeedbackBitsMap ); 															  
				SetCtrlVal( tabPanelHandle , DEFAULT_BITS_MAP_FEEDBACK , szStringValue );		   
				
				SetCtrlVal( tabPanelHandle , DEFAULT_VALUE_TYPE , gvtListOfCommands[iIndex].valueType );
				
				SetCtrlVal( tabPanelHandle , DEFAULT_VALUE_MODE , gvtListOfCommands[iIndex].valueMode ); 
				
				SetCtrlVal( tabPanelHandle , DEFAULT_FEEDBACK_MODE , gvtListOfCommands[iIndex].feedbackMode ); 
				
				SetCtrlVal( tabPanelHandle , DEFAULT_FEEDBACK_SWAP , gvtListOfCommands[iIndex].bFeedbackSwaped );   
				
				SetCtrlVal( tabPanelHandle , DEFAULT_DATA_SWAP , gvtListOfCommands[iIndex].bDataSwaped ); 
				
				if ( gvtListOfCommands[iIndex].valueMode == VALUE_MODE_ON_OFF ) 
				{
					sprintf( szStringValue , "0x%02llX" , gvtListOfCommands[iIndex].StateOnValue ); 
					SetCtrlVal( tabPanelHandle , DEFAULT_STATE_ON_VAL , szStringValue );
					
					sprintf( szStringValue , "0x%02llX" , gvtListOfCommands[iIndex].StateOffValue );  
					SetCtrlVal( tabPanelHandle , DEFAULT_STATE_OFF_VAL , szStringValue ); 
				}
				
				sprintf( szStringValue , "%d" , gvtListOfCommands[iIndex].SetValueShiftIndex ); 															  
				SetCtrlVal( tabPanelHandle , DEFAULT_SET_VAL_OFFSET , szStringValue );
				
				break; 
				
		case 1:
				SetCtrlVal( tabPanelHandle , SPI_READ_BIT_PORT , gvtListOfCommands[iIndex].iSPI_ReadBitPort );                               
				SetCtrlVal( tabPanelHandle , SPI_ENABLE_BIT_POLARITY , gvtListOfCommands[iIndex].iSPI_EnableBitPolarity ); 								           
				SetCtrlVal( tabPanelHandle , SPI_READ_BIT_INDEX , gvtListOfCommands[iIndex].iSPI_ReadBitIndex );      								           
				SetCtrlVal( tabPanelHandle , SPI_CLOCK_BIT_POLARITY , gvtListOfCommands[iIndex].iSPI_ClockBitPolarity );  								           
				SetCtrlVal( tabPanelHandle , SPI_ENABLE_BIT_INDEX , gvtListOfCommands[iIndex].iSPI_EnableBitIndex );    								           
				SetCtrlVal( tabPanelHandle , SPI_DATA_BIT_INDEX , gvtListOfCommands[iIndex].iSPI_DataBitIndex );      								           
				SetCtrlVal( tabPanelHandle , SPI_CLOCK_BIT_INDEX , gvtListOfCommands[iIndex].iSPI_ClockBitIndex );  
				SetCtrlVal( tabPanelHandle , SPI_CLOCK_BIT_PHASE , gvtListOfCommands[iIndex].iSPI_ClockBitPhase );  
					
				sprintf( szStringValue , "%d" , gvtListOfCommands[iIndex].iSPI_WriteBitsCount ); 															  
				SetCtrlVal( tabPanelHandle , SPI_WRITE_BITS_COUNT , szStringValue );
				
				sprintf( szStringValue , "%d" , gvtListOfCommands[iIndex].iSPI_ReadBitsCount ); 															  
				SetCtrlVal( tabPanelHandle , SPI_READ_BITS_COUNT , szStringValue );
				
				sprintf( szStringValue , "%d" , gvtListOfCommands[iIndex].iSetDataShiftIndex ); 
				SetCtrlVal( tabPanelHandle , SPI_SET_DATA_SHIFT , szStringValue );
				
				sprintf( szStringValue , "%d" , gvtListOfCommands[iIndex].iGetDataShiftIndex ); 
				SetCtrlVal( tabPanelHandle , SPI_GET_DATA_SHIFT , szStringValue );
				
				break;
		
		default: 
				break;
	}
	
	return 0;
}