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

📄 dataproc.c

📁 这是一个linux下基于MiniGUI的手机界面设计源码
💻 C
📖 第 1 页 / 共 3 页
字号:
         					Fclose(fp);
         					break;
       					}
       				perror("File read error!");
     				}				else				{					(loadedMesg.tmpFkInfo)[i].index = i+1;					printf("Index is %d.\n",(loadedMesg.tmpFkInfo)[i].index);					printf("Temp File content:FeedBack Sign %X \n",loadedMesg.tmpFkInfo[i].fkxx.FeedBackSign );								}			Fclose( fp );			fp = Fopen( "FKXX.data","a+");			for(  i= 0; i< tmpFKXX1; i++ )				Fwrite( &( (loadedMesg.tmpFkInfo)[i].fkxx),LEN_FKXX,1,fp );			Fclose( fp );					remove( "FKtmp1.data");			tmpFKXX1 = 0;			free( loadedMesg.tmpFkInfo );			Pthread_mutex_unlock( &fLock.FKtmp1_FLOCK );		}		else if( stat( "FKtmp2.data",&buf ) == 0 )//file FKtmp2 exist		{			Pthread_mutex_lock( &fLock.FKtmp2_FLOCK );			//Add all the newly messages in the temp file2 to main data file 			loadedMesg.tmpFkInfo = (FKINFO  *)malloc( LEN_FKINFO * tmpFKXX1);			fp = Fopen( "FKtmp2.data","r+");			for( i=0; i<tmpFKXX2; i++)
     				if( fread( &( (loadedMesg.tmpFkInfo)[i].fkxx), LEN_FKXX, 1, fp) != 1)
     				{
       				if( feof(fp))
       					{
         					Fclose(fp);
         					break;
       					}
       				perror("File read error!");
     				}					else				{					(loadedMesg.tmpFkInfo)[i].index = i+1;					printf("Index is %d.\n",(loadedMesg.tmpFkInfo)[i].index);					printf("Temp File content:FeedBack Sign %X \n",loadedMesg.tmpFkInfo[i].fkxx.FeedBackSign );								}			Fclose( fp );			fp = Fopen( "FKXX.data","a+");			for(  i= 0; i< tmpFKXX2; i++ )				Fwrite( &( (loadedMesg.tmpFkInfo)[i].fkxx),LEN_FKXX,1,fp );			Fclose( fp );			remove( "FKtmp2.data");			free( loadedMesg.tmpFkInfo );			tmpDWXX2 = 0;			Pthread_mutex_unlock( &fLock.FKtmp2_FLOCK );		}		break;	}//End of switch	printf("Leave function MergeRecords!\n");		}void SaveData( SOURCETYPE sType, MESGTYPE mesgType, int count ){		FILE *fp;	LOCINFO **p;	COMMINFO **q;	FKINFO   *m;	printf("Enter SaveData() !\n");	switch( mesgType )	{	case	TYPE_OF_DWXX: 				if( *(loadedMesg.pLocInfo) != NULL)		{			fp = Fopen( "DWXX.data","w+");			rewind( fp );			for( p = loadedMesg.pLocInfo; p<(loadedMesg.pLocInfo+count); p++ )				if( p != NULL )				{					printf("Saved Index is %d.\n",(*p)->index);					Fwrite( &((*p)->dwxx),LEN_DWXX,1,fp );				}			Fclose( fp );		}		else			printf(" Null DWXX records in the current memory to save !\n");				break;	case	TYPE_OF_TXXX:			if( sType == INBOX )			{				if( *(loadedMesg.pCommInfo) != NULL)				{					fp = Fopen( "TXINDEX.data","w+");					rewind( fp );					for( q = loadedMesg.pCommInfo; q<(loadedMesg.pCommInfo+count); q++ )						if( q != NULL )							Fwrite( &((*q)->txIndex),LEN_TXINDEX ,1,fp );					Fclose( fp );				}							}			else if( sType == OUTBOX )			{				if( *(loadedMesg.pCommInfoOut) != NULL)				{					fp = Fopen( "TXINDEX_OUT.data","w+");					rewind( fp );					for( q = loadedMesg.pCommInfoOut; q<(loadedMesg.pCommInfoOut+count); q++ )						if( q != NULL )							Fwrite( &((*q)->txIndex),LEN_TXINDEX ,1,fp );					Fclose( fp );				}			}		break;	case	TYPE_OF_ICXX:		if( loadedMesg.icInfo != NULL)		{			Pthread_mutex_lock( &fLock.IC_FLOCK );			fp = Fopen( "ICXX.data","w+");			rewind( fp );			Fwrite( &(loadedMesg.icInfo->icxx),LEN_ICXX,1,fp );			Fclose( fp );			Pthread_mutex_unlock( &fLock.IC_FLOCK );		}		else			printf(" Null ICXX records in the current memory to save !\n");		break;	case	TYPE_OF_ZJXX:		break;	case	TYPE_OF_SJXX:		break;	case	TYPE_OF_BBXX:				if( loadedMesg.bbInfo != NULL)		{			Pthread_mutex_lock( &fLock.BB_FLOCK );			fp = Fopen( "BBXX.data","w+");			rewind( fp );			Fwrite( &(loadedMesg.bbInfo->bbxx),LEN_BBXX,1,fp );			Fclose( fp );			Pthread_mutex_unlock( &fLock.BB_FLOCK );		}		else			printf(" Null BBXX records in the current memory to save !\n");		break;	case	TYPE_OF_FKXX:		if( loadedMesg.fkInfo != NULL )		{						//printf("Total saved data is %d\n",sizeof(BBXX) );			//printf("Total saved data is %d\n",LEN_FKXX );			printf("Total saved data is %d\n",sizeof(ICXX) );			fp = Fopen( "FKXX.data","w+");			rewind( fp );			for( m = loadedMesg.fkInfo; m<(loadedMesg.fkInfo+count); m++ )				if( m != NULL )					Fwrite( &( m->fkxx),LEN_FKXX,1,fp );			Fclose( fp );		}		else			printf(" Null FKXX records in the current memory to save !\n");		break;	}}//The value of index must start  from  0void SaveLockSymbol( SOURCETYPE sType, int index ){	FILE *fp;	COMMINFO **p;		if( sType == INBOX )	{		if( loadedMesg.pCommInfo != NULL )		{			p = loadedMesg.pCommInfo;			Pthread_mutex_lock( &fLock.TXINDEX_FLOCK );			printf("Saved LockSymbol item's index is %d\n ",(*(p+index))->index);			printf("Saved LockSymbol item's LockSymbol is %d\n ",(*(loadedMesg.pCommInfo+index))->txIndex.lockSymbol);							printf("Size of LEN_TXINDEX %d\n",LEN_TXINDEX);			fp = Fopen( "TXINDEX.data","r+");			fseek( fp,  ((*(p+index))->index-1)* LEN_TXINDEX, SEEK_SET );			Fwrite( &((*(p+index))->txIndex),LEN_TXINDEX ,1,fp );					Fclose( fp );			//perror("Error");			Pthread_mutex_unlock( &fLock.TXINDEX_FLOCK );		}	}	else if( sType == OUTBOX )	{		if( loadedMesg.pCommInfoOut != NULL )		{			p = loadedMesg.pCommInfoOut;			printf("Saved LockSymbol item's index is %d\n ",(*(p+index))->index);			printf("Saved LockSymbol item's LockSymbol is %d\n ",(*(loadedMesg.pCommInfoOut+index))->txIndex.lockSymbol);			printf("Size of LEN_TXINDEX %d\n",LEN_TXINDEX);			fp = Fopen( "TXINDEX_OUT.data","r+");			fseek( fp,  ((*(p+index))->index-1)* LEN_TXINDEX, SEEK_SET );			Fwrite( &((*(p+index))->txIndex),LEN_TXINDEX ,1,fp );					Fclose( fp );		}	}	}/* Set the IC card's setting */void SetICInfo( void ){}/* Get the information of IC card's setting */int GetICInfo( void ){	int result;	struct stat buf;	FILE *fp;	printf("Enter function: GetICInfo() now.\n");	Pthread_mutex_lock( &fLock.IC_FLOCK );	MergeRecords( TYPE_OF_ICXX );	if( stat( "ICXX.data",&buf ) == 0 )	{			loadedMesg.icInfo = (ICINFO  *)malloc( LEN_ICINFO * 1);		fp = Fopen( "ICXX.data","r+");		rewind(fp);
     		if( fread( &( (loadedMesg.icInfo)[0].icxx), LEN_ICXX, 1, fp) != 1)
     		{
      			if( feof(fp))
       			{
         			Fclose(fp);
       			}
      			perror("File read error!");
     		}		else		{			printf("Main File content:servFrequency %X SRCID %lX\n",loadedMesg.icInfo[0].icxx.servFrequency,loadedMesg.icInfo[0].icxx.srcID );							}		Fclose( fp );		result = 1;	}	else		result = 0;	Pthread_mutex_unlock( &fLock.IC_FLOCK );		return result;}/* Get the information of version's setting */int GetBBInfo( void ){	int result;	struct stat buf;	FILE *fp;	printf("Enter function: GetBBInfo() now.\n");	Pthread_mutex_lock( &fLock.BB_FLOCK );	MergeRecords( TYPE_OF_BBXX );	if( stat( "BBXX.data",&buf ) == 0 )	{		loadedMesg.bbInfo = (BBINFO  *)malloc( LEN_BBINFO * 1);		fp = Fopen( "BBXX.data","r+");		rewind(fp);
     		if( fread( &( (loadedMesg.bbInfo)[0].bbxx), LEN_BBXX, 1, fp) != 1)
     		{
      			if( feof(fp))
       			{
         			Fclose(fp);
       			}
      			perror("File read error!");
     		}		else		{			printf("Main File content: SRCID %lX\n",loadedMesg.bbInfo[0].bbxx.srcID );							}		Fclose( fp );		result = 1;	}	else		result = 0;	Pthread_mutex_unlock( &fLock.BB_FLOCK );	return result;}/* Read the new overflowed mesg from circular buffer */void ReadOverFlowMesg( void ){	printf("Enter ReadOverFlowMesg( )\n");	Pthread_mutex_lock( &cntOverFlow_Mutex );	printf("In cntOverFlow( )\n");	Pthread_mutex_lock(&numOverFlow_Mutex);	printf("In numOverFlow( )\n");		if( DEQUE_CIROVERFLOW( &overFlowMesg ) != 0)	{		printf("New OverFlowmessage srcID is %ld\n ",overFlowMesg->srcID);		printf("New OverFlowmessage Content is %s\n",overFlowMesg->message);			}	else	{		printf("Fail to get data for the empty queue!\n ");		Pthread_mutex_unlock(&numOverFlow_Mutex);		Pthread_mutex_unlock( &cntOverFlow_Mutex );		return;	}		printf("In ReadOverFlowMesg( )\n");	if( (cntOverFlow-1) >= 0)		cntOverFlow--;	if( cntOverFlow == 0)		overFlowStarter = 0;	numOverFlow--;		Pthread_mutex_unlock(&numOverFlow_Mutex);		Pthread_mutex_unlock( &cntOverFlow_Mutex );}//The value of count shall be the instant value of total TXXX//GetCount(INBOX, TYPE_OF_TXXX)void ReadNewMesg( int count ){	FILE *fp;	COMMINFO **q;		UnloadData( INBOX, TYPE_OF_TXXX);	printf("--Enter func ReadNewMesg!--\n");	Pthread_mutex_lock( &countNewMesg_Mutex );	Pthread_mutex_lock( &fLock.TXINDEX_FLOCK );	MergeRecords( TYPE_OF_TXXX );	/* Alloacate the memory of message array.*/		loadedMesg.commInfo = (COMMINFO  *)malloc( LEN_COMMINFO );	printf("total num  %d countNewMesg is %d\n",count,countNewMesg);	fp = Fopen( "TXINDEX.data","r+");	fseek( fp, (count-countNewMesg)*LEN_TXINDEX,SEEK_SET );
     	if( fread( &( (loadedMesg.commInfo)[0].txIndex), LEN_TXINDEX, 1, fp) != 1)
     	{
       	if( feof(fp))
       		{
         		Fclose(fp);
       		}
       	perror("File read error!");
     	}	else	{		(loadedMesg.commInfo)[0].index = count-countNewMesg+1;		printf("Index is %d.\n",(loadedMesg.commInfo)[0].index);		printf("File content:Hour %d Min %d SRCID %lX,MainIndex is %d LockSymbol %d \n",loadedMesg.commInfo[0].txIndex.hour,loadedMesg.commInfo[0].txIndex.minute,loadedMesg.commInfo[0].txIndex.srcID, loadedMesg.commInfo[0].txIndex.mainIndex,loadedMesg.commInfo[0].txIndex.lockSymbol );		//printf(" Address of the message is %lX.\n",&loadedMesg.commInfo[0] );	}		Fclose( fp );		/* Alloacate the memory of address array for message */
     	loadedMesg.pCommInfo = malloc(  LEN_P_COMMINFO  );	//printf(" Address of the address array head is %lX.\n",loadedMesg.pCommInfo );	*(loadedMesg.pCommInfo) = &loadedMesg.commInfo[0];	//printf(" Address of the message pointer is %lX.\n",*(loadedMesg.pCommInfo) );		countNewMesg--;	Pthread_mutex_unlock( &fLock.TXINDEX_FLOCK );	Pthread_mutex_unlock( &countNewMesg_Mutex );}/* Display the content of message,if it's size bigger than 20 bytes, *//* we will read the big data block from the main data file without delay. */void ReadFromTXMAIN( SOURCETYPE sType, int index ){ 	FILE *fp;	COMMINFO **p;	if( sType == INBOX )	{		//UnloadData( INBOX, TYPE_OF_TXXX);		if( loadedMesg.pCommInfo != NULL )		{			p = loadedMesg.pCommInfo;			 //Read the big data block from the main data file			fp = Fopen( "TXMAIN.data","r+");			fseek( fp,  ( ((*(p+index))->txIndex.mainIndex)-1 )* MAXSIZE, SEEK_SET );
     			if( fread( &(loadedMesg.Message), MAXSIZE, 1, fp) != 1)
     			{
      				if( feof(fp))
       				{
         				Fclose(fp);
       				}
      				perror("File read error!");
     			}			else			{				printf("Main File content: %s\n",loadedMesg.Message );								}			Fclose( fp );		}			}	else if( sType == OUTBOX )	{		if( loadedMesg.pCommInfoOut != NULL )		{			p = loadedMesg.pCommInfoOut;			 //Read the big data block from the main data file			fp = Fopen( "TXMAIN_OUT.data","r+");			fseek( fp,  ( ((*(p+index))->txIndex.mainIndex)-1 )* MAXSIZE, SEEK_SET );
     			if( fread( &(loadedMesg.Message), MAXSIZE, 1, fp) != 1)
     			{
      				if( feof(fp))
       				{
         				Fclose(fp);
       				}
      				perror("File read error!");
     			}			else			{				printf("Main File content: %s\n",loadedMesg.Message );								}			Fclose( fp );		}	}}#endif

⌨️ 快捷键说明

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