/* 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; }
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; }
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; }