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

📄 ncc.c

📁 定时器的详细用法,多定时器的互相影响,界面的时延
💻 C
📖 第 1 页 / 共 5 页
字号:
#include <formatio.h>
#include <rs232.h>
#include <utility.h>
#include <ansi_c.h>
#include <cvirte.h>		
#include <userint.h>
#include "ncc.h"

static int panelHandle;
static int panelm,panelo,panelx,panelp;

unsigned char  *sendstr1,*sendstr2,*sendstr3;
unsigned char  rvstr1[200],rvstr2[200],rvstr3[200];

 int pflag=0;
 int portm=1,portx=4,porto=1;
 
//odu...
char odu_fspl[20]="0",odu_jspl[20]="0",odu_fssj[20]="0",odu_jssj[20]="0.00",odu_pt[20]="0",odu_bpt[20]="0.00",odu_pw[20]="0.00";

//mux................
char mux_fssl1[20]="0",mux_fssl2[20]="0", mux_fssl3[20]="0", mux_jssl1[20]="0",mux_jssl2[20]="0",mux_jssl3[20]="0"; 
char mux_ck1[5]="0",mux_ck2[5]="0",mux_ck3[5]="0";
int mux_ch=0;

//modem.............................

int modem_disp(void);
int odu_disp(void);
int mux_disp(void);

char code1[100],code2[50]="1230";
char modem_fssl[20]="0",modem_jssl[20]="0",modem_fspl[20]="0",modem_jspl[20]="0";

int kbdd=0,kbpp=0;

int main (int argc, char *argv[])
{
	if (InitCVIRTE (0, argv, 0) == 0)
		return -1;	/* out of memory */
	if ((panelHandle = LoadPanel (0, "ncc.uir", PANEL)) < 0)
		return -1;
if ((panelm= LoadPanel (0, "ncc.uir",PANELM)) < 0)
		return -1;
	if ((panelo= LoadPanel (0, "ncc.uir",PANELO)) < 0)
		return -1;
	if ((panelx = LoadPanel (0, "ncc.uir",PANELX)) < 0)
		return -1;
	if ((panelp = LoadPanel (0, "ncc.uir",PANELP)) < 0)
		return -1;
	
	
	DisplayPanel (panelHandle);

	RunUserInterface ();
	DiscardPanel (panelHandle);
	//DiscardPanel (panelm); 
	//DiscardPanel (panelo);  
	//DiscardPanel (panelx);
//	DiscardPanel (panelp);  
	//
	
	return 0;
}
int CVICALLBACK M_JSSL (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	switch (event)
	{
		case EVENT_COMMIT:
			             SetCtrlAttribute (panelHandle,PANEL_TIMER, ATTR_ENABLED,1); 
						 InstallPopup (panelp);  kbpp=0; kbdd=4;
						ResetTextBox (panelm,PANELM_TEXTBOX4," "); 
			break;
	}
	return 0;
}

int CVICALLBACK M_FSSL (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	switch (event)
	{
		case EVENT_COMMIT:
			            SetCtrlAttribute (panelHandle,PANEL_TIMER, ATTR_ENABLED,1); 
						  InstallPopup (panelp);  kbpp=0; kbdd=3;
						ResetTextBox (panelm,PANELM_TEXTBOX3," ");     
			break;
	}
	return 0;
}

int CVICALLBACK M_JSPL (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	switch (event)
	{
		case EVENT_COMMIT:
		                SetCtrlAttribute (panelHandle,PANEL_TIMER, ATTR_ENABLED,1); 
						 InstallPopup (panelp);  kbpp=0; kbdd=2;
					ResetTextBox (panelm,PANELM_TEXTBOX2," ");     
			break;
	}
	return 0;
}

int CVICALLBACK M_FSPL (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	switch (event)
	{
		case EVENT_COMMIT:
		             	SuspendTimerCallbacks (); 
					    InstallPopup (panelp);  kbpp=0; kbdd=1;
					ResetTextBox (panelm,PANELM_TEXTBOX1," ");     
			break;
	}
	return 0;
}

int CVICALLBACK MSET_OK (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{  double dd;
int i,j,k,t,status;
char s1[10],s2[10],s3[10],s4[10]="0",s5[10]="0",*askstr1,*askstr2,*askstr3,*askstr4;
	switch (event)
	{
		case EVENT_COMMIT:
			
			 		GetCtrlVal (panelm, PANELM_TEXTBOX1, s1);  
				dd=atof(s1);
					                                 k=dd*1000000;
												 
													 askstr1="123456789012345678901234567801234567890123456\r";
						
						   askstr1[0]=0xFF;  askstr1[1]=0xA5; askstr1[2]=0x01; askstr1[3]=0x00;  askstr1[4]=0x41; askstr1[5]=0x01;  
						 askstr1[6]=0x24; askstr1[7]=0x01;   askstr1[8]=0x01;  askstr1[9]=0x00; askstr1[10]=0x00;askstr1[11]=0x05; askstr1[12]=0x80;
						 askstr1[13]=0x00;  askstr1[14]=0x00; 
						 j=k&0x00FF;  askstr1[15]=j;  j=k>>8;j=j&0x00FF;askstr1[16]=j; 
						  j=k>>16; j=j&0x00FF; askstr1[17]=j;  j=k>>24;j=j&0x00FF;askstr1[18]=j; 
						  askstr1[19]=0x00;askstr1[20]=0x00; askstr1[21]=0x00; askstr1[22]=0x00; askstr1[23]=0x00; askstr1[24]=0x00;
						  
						  askstr1[25]=0x9C; askstr1[26]=0xFF;
						   for(i=0;i<16;i++)
							   askstr1[27+i]=0x00;
						  
						   askstr1[43]=0x96;   askstr1[45]=0xFF;
						   	GetCtrlVal (panelm, PANELM_TEXTBOX13, &k);
								if(k)
								   askstr1[12]=0x10;
								   else
									  askstr1[12]=0x00;   
						   k=0;
						     for(i=1;i<44;i++) 
								   k=k+askstr1[i];
							 k=k%256;k=-k;
							 j=k&0xFF;
							 askstr1[44]=j; 
						    status=OpenComConfig(portm,"COM1",9600,0,8,1,1024,512);
		                             if(status!=0)
		                              	{
		                                  	MessagePopup("Error","端口1打不开!");
		                                       	return 0;
		                              	}
									 SetComTime (portm,0.1)  ;
	                                SetCTSMode(portm,LWRS_HWHANDSHAKE_OFF);
		                                    
	                                      
						                	FlushInQ(portm);
		                                    FlushOutQ(portm);
											status=ComWrt(portm, askstr1,46);
	                                           	if(status!=46)
												{ MessagePopup("Error","Send data failed!");
												   break;
												}
												Delay(0.2);
												
												//................sl.............
												
												GetCtrlVal (panelm, PANELM_TEXTBOX3, s3);  
				dd=atof(s3);
					                                 k=dd*1000;
												 
													 askstr2="123456789012345678901234567890\r";
						
						   askstr2[0]=0xFF;  askstr2[1]=0xA5; askstr2[2]=0x01; askstr2[3]=0x00;  askstr2[4]=0x42; askstr2[5]=0x01;  
						 askstr2[6]=0x14; 
						 askstr2[7]=0x4F; 
						for(i=8;i<17;i++)
							   askstr2[i]=0x00;
			
						 j=k&0x00FF;  askstr2[17]=j;  j=k>>8;j=j&0x00FF;askstr2[18]=j; 
						  j=k>>16; j=j&0x00FF; askstr2[19]=j;  j=k>>24;j=j&0x00FF;askstr2[20]=j; 
						
						  	GetCtrlVal (panelm, PANELM_TEXTBOX5,&k); 
						
								  askstr2[11]=k;
							GetCtrlVal (panelm, PANELM_TEXTBOX7,&k);
						          askstr2[13]=k<<4;
							
							GetCtrlVal (panelm, PANELM_TEXTBOX9,&k); 
							askstr2[12]=k<<2; 
							GetCtrlVal (panelm, PANELM_TEXTBOX11,&k);
							j=k%2;
							 askstr2[12]+=j*2;
							 k=k-j;
							    askstr2[14]=k<<1;
						     for(i=21;i<27;i++) 
								 askstr2[i]=0x00;  
						   
						   k=0;   askstr2[27]=0x96; 
						     for(i=1;i<28;i++) 
								   k=k+askstr2[i];
							 k=k%256;k=-k;
							 j=k&0xFF;
							 askstr2[28]=j;   
							   askstr2[29]=0xFF;
						   
	                                      
						                	FlushInQ(portm);
		                                    FlushOutQ(portm);
											status=ComWrt(portm, askstr2,30);
	                                           	if(status!=30)
												{ MessagePopup("Error","Send data failed!");
												   break;
												}
													Delay(0.2); 
												   //Demod..........................
												
													GetCtrlVal (panelm, PANELM_TEXTBOX2, s2);  
				dd=atof(s2);
					                                 k=dd*1000000;
												 
													 askstr3="1234567890123456789012345678012345678901234\r";
						
						   askstr3[0]=0xFF;  askstr3[1]=0xA5; askstr3[2]=0x01; askstr3[3]=0x00;  askstr3[4]=0x81; askstr3[5]=0x01;  
						 askstr3[6]=0x22; askstr3[7]=0x01;   askstr3[8]=0x00;  askstr3[9]=0x00; askstr3[10]=0x00;askstr3[11]=0x00; askstr3[12]=0x00;
						 askstr3[13]=0x00;  askstr3[14]=0x00; 
						 j=k&0x00FF;  askstr3[15]=j;  j=k>>8;j=j&0x00FF;askstr3[16]=j; 
						  j=k>>16; j=j&0x00FF; askstr3[17]=j;  j=k>>24;j=j&0x00FF;askstr3[18]=j; 
						   for(i=19;i<41;i++)  
						  		  askstr3[i]=0x00; 
						   askstr3[41]=0x96;   askstr3[43]=0xFF; 
						   k=0;
						     for(i=1;i<42;i++) 
								   k=k+askstr3[i];
							 k=k%256;k=-k;
							 j=k&0xFF;
							 askstr3[42]=j; 
						    
						                	FlushInQ(portm);
		                                    FlushOutQ(portm);
											status=ComWrt(portm, askstr3,44);
	                                           	if(status!=44)
												{ MessagePopup("Error","Send data failed!");
												   break;
												}
												Delay(0.2);
												// ..............
													GetCtrlVal (panelm, PANELM_TEXTBOX4, s4);  
				dd=atof(s4);
					                                 k=dd*1000;
												 
													 askstr4="1234567890123456789012345678901234567890\r";
						
						   askstr4[0]=0xFF;  askstr4[1]=0xA5; askstr4[2]=0x01; askstr4[3]=0x00;  askstr4[4]=0x82; askstr4[5]=0x01;  
						 askstr4[6]=0x1E; 
						 askstr4[7]=0x4F; 
						for(i=8;i<17;i++)
							   askstr4[i]=0x00;
			
						 j=k&0x00FF;  askstr4[17]=j;  j=k>>8;j=j&0x00FF;askstr4[18]=j; 
						  j=k>>16; j=j&0x00FF; askstr4[19]=j;  j=k>>24;j=j&0x00FF;askstr4[20]=j; 
							 	GetCtrlVal (panelm, PANELM_TEXTBOX6,&k); 
							    askstr4[11]=k;
							   	GetCtrlVal (panelm, PANELM_TEXTBOX8,&k);
								askstr4[13]=k<<4;
								
						  	   	GetCtrlVal (panelm, PANELM_TEXTBOX10,&k); 
							askstr4[12]=k<<2; 
							GetCtrlVal (panelm, PANELM_TEXTBOX12,&k);
							j=k%2;
							 askstr4[12]+=j*2;
							 k=k-j;
							    askstr4[14]=k<<1;
												 
						     for(i=21;i<37;i++) 
								 askstr4[i]=0x00;  
						   
						   k=0;   askstr4[37]=0x96; 
						     for(i=1;i<38;i++) 
								   k=k+askstr4[i];
							 k=k%256;k=-k;
							 j=k&0xFF;
							 askstr4[38]=j;   
							   askstr4[39]=0xFF;
						   
	                                      
						                	FlushInQ(portm);
		                                    FlushOutQ(portm);
											status=ComWrt(portm, askstr4,40);
	                                           	if(status!=40)
												{ MessagePopup("Error","Send data failed!");
												   break;
												}
												
			break;
	}
	ResumeTimerCallbacks ();
	return 0;
}

int CVICALLBACK MUX_EXIT (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	switch (event)
	{
		case EVENT_COMMIT:
					 	 RemovePopup (0); 
						 pflag=0;   
			break;
	}
	return 0;
}

int CVICALLBACK ODU_JSSJ (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	switch (event)
	{
		case EVENT_COMMIT:
						 InstallPopup (panelp);  kbpp=0; kbdd=8;
					ResetTextBox (panelo,PANELO_TEXTBOX4," ");      
			break;
	}
	return 0;
}

int CVICALLBACK ODU_FSSJ (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	switch (event)
	{
		case EVENT_COMMIT:
						InstallPopup (panelp);  kbpp=0; kbdd=7;
					ResetTextBox (panelo,PANELO_TEXTBOX3," ");    
			break;
	}
	return 0;
}

int CVICALLBACK ODU_JSPL (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	switch (event)
	{
		case EVENT_COMMIT:
						  InstallPopup (panelp);  kbpp=0; kbdd=6;
					ResetTextBox (panelo,PANELO_TEXTBOX2," ");    
			break;
	}
	return 0;
}

int CVICALLBACK ODU_FSPL (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	switch (event)
	{
		case EVENT_COMMIT:
						  InstallPopup (panelp);  kbpp=0; kbdd=5;
					ResetTextBox (panelo,PANELO_TEXTBOX1," ");    
			break;
	}
	return 0;
}

int CVICALLBACK ODUSET_OK (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	unsigned char ch,*tempstr,*tempstr2,*tempstr3,oss[20];
int i,j,k,t,status;
double data;
	switch (event)
	{
		case EVENT_COMMIT:
			
			  tempstr="G000000F180037003700\r";
			  	status=OpenComConfig(porto,"COM1",9600,0,8,1,512,512);
		                             if(status!=0)
		                              	{
		                                  	MessagePopup("Error","config failed!");
		                                       	return 0;
		                              	}
									 SetComTime (porto,0.1)  ;
	                                SetCTSMode(porto,LWRS_HWHANDSHAKE_OFF);
			  										//sxpl						
													GetCtrlVal (panelo, PANELO_TEXTBOX1, oss);  
				                                       data=atof(oss);
												 data=data-13950;
												 k=data; j=k&0x000F;
												 switch(j)
														{
															case 15:
																	 ch='F';
																	 break;
														    case 14:
																	 ch='E';
																	 break;
															case 13:
																	 ch='D';
																	 break;
															case 12:
																	 ch='C';
																	 break;
															case 11:
																	 ch='B';
																	 break;
															case 10:
																	 ch='A';
																	 break;
															default:
																	 ch=j+0x30;
																
														}
												 
												 	 tempstr[13]=ch;  tempstr[17]=ch; 
												k=k>>4;  j=k&0x000F; 
												  switch(j)
														{
															case 15:
																	 ch='F';
																	 break;
														    case 14:
																	 ch='E';
																	 break;
															case 13:
																	 ch='D';
																	 break;
															case 12:
																	 ch='C';
																	 break;
															case 11:
																	 ch='B';
																	 break;
															case 10:
																	 ch='A';
																	 break;
															default:
																	 ch=j+0x30;
																
														}
									
												   tempstr[12]=ch;  tempstr[16]=ch;  
												   k=k>>4;  j=k&0x000F; 

⌨️ 快捷键说明

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