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

📄 com_driver.c

📁 lab windows uart driver
💻 C
📖 第 1 页 / 共 5 页
字号:
		*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //get error code  
		if(*errinfo!=0)break;
		temp=amt_get_bytes(cmdbuf,AMT_ADC_ATOM,data,0); 
		amt_get_bytes(cmdbuf,AMT_ADC_ATOM,data,temp); 
		break;
		//写电池电压ADC表
		//*rult: NULL
		//输入:*data:	data[0]	AMT_MINMAX_ADC_ATOM		0-最小值
		//												1-最大值
		//				data[1]	待写入的表值
		//输出:*errinfo
		//备注:
	case WFLASHCURADC:  ////写电池ADC表
		amt_set_commandtype(cmdbuf,AMT_WRIT_BATCURRENTADC_CMD);  //set command type
		amt_set_bytes(cmdbuf,AMT_ADC_ATOM,data,8);	 
		for(i=0;i<3;i++)
		{
			*errinfo=ComRw();  //send command and read response
			if(*errinfo==enNoneErr) break;
		}
		if(*errinfo!=0) break;
		CommType=amt_get_commandtype(cmdbuf);  //get response command type
		if(CommType!=AMT_WRIT_BATCURRENTADC_RSPCMD)
		{
			*errinfo=ComRspTypeErr;   //command type error
			break;
		}
		*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM);  //get error code    
		break;
	case RFLASHTEMADC: ////读取电池temperature ADC表
		amt_set_commandtype(cmdbuf,AMT_READ_BATTEMERATUREADC_CMD);  //set command type
		for(i=0;i<3;i++)
		{
			*errinfo=ComRw();   //send command and read response
			if(*errinfo==enNoneErr) break;
		}
		if(*errinfo!=0) break;
		CommType=amt_get_commandtype(cmdbuf);  //get response command type
		if(CommType!=AMT_READ_BATTEMERATUREADC_RSPCMD)
		{
			*errinfo=ComRspTypeErr;			   //
			break;
		}
		*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //get error code  
		if(*errinfo!=0)break;
		temp=amt_get_bytes(cmdbuf,AMT_ADC_ATOM,data,0); 
		amt_get_bytes(cmdbuf,AMT_ADC_ATOM,data,temp); 
		break;
		//写电池电压ADC表
		//*rult: NULL
		//输入:*data:	data[0]	AMT_MINMAX_ADC_ATOM		0-最小值
		//												1-最大值
		//				data[1]	待写入的表值
		//输出:*errinfo
		//备注:
	case WFLASHTEMADC:  ////写电池 temperature ADC表
		amt_set_commandtype(cmdbuf,AMT_WRIT_BATTEMERATUREADC_CMD);  //set command type
		amt_set_bytes(cmdbuf,AMT_ADC_ATOM,data,8);	 
		for(i=0;i<3;i++)
		{
			*errinfo=ComRw();  //send command and read response
			if(*errinfo==enNoneErr) break;
		}
		if(*errinfo!=0) break;
		CommType=amt_get_commandtype(cmdbuf);  //get response command type
		if(CommType!=AMT_WRIT_BATTEMERATUREADC_RSPCMD)
		{
			*errinfo=ComRspTypeErr;   //command type error
			break;
		}
		*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM);  //get error code    
		break;
	case ACCCCHG :
		amt_set_commandtype(cmdbuf,AMT_AC_CC_CHG_CMD);  //set command type
		amt_set_int(cmdbuf,AMT_AC_CC_CHG_ATOM,data[0]);	 
		for(i=0;i<3;i++)
		{
			*errinfo=ComRw();  //send command and read response
			if(*errinfo==enNoneErr) break;
		}
		if(*errinfo!=0) break;
		CommType=amt_get_commandtype(cmdbuf);  //get response command type
		if(CommType!=AMT_AC_CC_CHG_RSPCMD)
		{
			*errinfo=ComRspTypeErr;   //command type error
			break;
		}
		*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM);  //get error code  
		break;
		
	case ACINDETECTE:
		amt_set_commandtype(cmdbuf,AMT_AC_IN_DETECTE_CMD);  //set command type
		for(i=0;i<3;i++)
		{
			*errinfo=ComRw();  //send command and read response
			if(*errinfo==enNoneErr) break;
		}
		if(*errinfo!=0) break;
		CommType=amt_get_commandtype(cmdbuf);  //get response command type
		if(CommType!=AMT_AC_IN_DETECTE_RSPCMD)
		{
			*errinfo=ComRspTypeErr;   //command type error
			break;
		}
		*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM);  //get error code  
		temp=amt_get_int(cmdbuf,AMT_AC_IN_DETECTE_ATOM);
		data[0]=0;
		data[1]=0;	
		if(temp==1) 
			data[0]=1;
		if(temp==2)
			data[1]=1;
		break;
	case ACINDEINIT:
		
		amt_set_commandtype(cmdbuf,AMT_AC_IN_DETECTE_INIT_CMD);  //set command type
		for(i=0;i<3;i++)
		{
			*errinfo=ComRw();  //send command and read response
			if(*errinfo==enNoneErr) break;
		}
		if(*errinfo!=0) break;
		CommType=amt_get_commandtype(cmdbuf);  //get response command type
		if(CommType!=AMT_AC_IN_DETECTE_INIT_RSPCMD)
		{
			*errinfo=ComRspTypeErr;   //command type error
			break;
		}
		*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM);  //get error code  
		break;
	case HEADSETDTEST:
		amt_set_commandtype(cmdbuf,AMT_HEADSET_DETECTE_CMD);  //set command type
		for(i=0;i<3;i++)
		{
			*errinfo=ComRw();  //send command and read response
			if(*errinfo==enNoneErr) break;
		}
		if(*errinfo!=0) break;
		CommType=amt_get_commandtype(cmdbuf);  //get response command type
		if(CommType!=AMT_HEADSET_DETECTE_RSPCMD)
		{
			*errinfo=ComRspTypeErr;   //command type error
			break;
		}
		*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM);  //get error code  
		temp=amt_get_int(cmdbuf,AMT_HEADSET_DETECTE_ATOM);
		data[0]=0;
		data[1]=0;	
		if(temp==1) 
			data[0]=1;
		if(temp==2)
			data[1]=1;
		break;
	case HEADSETINIT:
		
		amt_set_commandtype(cmdbuf,AMT_HEADSET_DETECTE_INIT_CMD);  //set command type
		for(i=0;i<3;i++)
		{
			*errinfo=ComRw();  //send command and read response
			if(*errinfo==enNoneErr) break;
		}
		if(*errinfo!=0) break;
		CommType=amt_get_commandtype(cmdbuf);  //get response command type
		if(CommType!=AMT_HEADSET_DETECTE_INIT_RSPCMD)
		{
			*errinfo=ComRspTypeErr;   //command type error
			break;
		}
		*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM);  //get error code  
		break;
		
		//读取出厂日期
		//*data: NULL
		//输入:无
		//输出:*Buf 读取到的出厂日期,ASCII字符串
		//		*errinfo
		//备注:此出厂日期从Flash中读出		
	case RDOUTDATE: ////读取出厂日期
		amt_set_commandtype(cmdbuf,AMT_READ_OUTDATE_CMD);  //set command type   
		for(i=0;i<3;i++)
		{
			*errinfo=ComRw();  //send command and read response
			if(*errinfo==enNoneErr) break;
		}
		if(*errinfo!=0) break;
		CommType=amt_get_commandtype(cmdbuf);  //get response command type
		if(CommType!=AMT_READ_OUTDATE_RSPCMD)
		{
			*errinfo=ComRspTypeErr;  //
			break;
		}
		*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM);  //get error code   
		if(*errinfo!=0) break;
		temp=amt_get_string(cmdbuf,AMT_DATE_ATOM,Buf,0);
		amt_get_string(cmdbuf,AMT_DATE_ATOM,Buf,temp);
		break;
		//写取出厂日期
		//*data: NULL
		//输入:*Buf 待写入的出厂日期,ASCII字符串
		//输出:*errinfo
		//备注:将出厂日期写入Flash		
	case WROUTDATE: ////写出厂日期
		amt_set_commandtype(cmdbuf,AMT_WRITE_OUTDATE_CMD);  //set command type 
		amt_set_string(cmdbuf,AMT_DATE_ATOM,Buf);   //
		for(i=0;i<3;i++)
		{
			*errinfo=ComRw(); //send command and read response
			if(*errinfo==enNoneErr) break; //
		}
		if(*errinfo!=0) break;
		CommType=amt_get_commandtype(cmdbuf);  //get response command type
		if(CommType!=AMT_WRITE_OUTDATE_RSPCMD)
		{
			*errinfo=ComRspTypeErr; //
			break;
		}
		*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //get error code
		break;
		//读取Flash烧录日期
		//*data: NULL
		//输入:无
		//输出:*Buf 读取到的烧录日期,ASCII字符串
		//		*errinfo
		//备注:	
	case RDFLUSHDATE:  ////读取烧入日期
		amt_set_commandtype(cmdbuf,AMT_READ_FLUSHDATE_CMD);  //set command type    
		for(i=0;i<3;i++)
		{
			*errinfo=ComRw(); //send command and read response
			if(*errinfo==enNoneErr) break;  //
		}
		if(*errinfo!=0) break;
		CommType=amt_get_commandtype(cmdbuf); //get response command type
		if(CommType!=AMT_READ_FLUSHDATE_RSPCMD)
		{
			*errinfo=ComRspTypeErr;  //
			break;
		}
		*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //get error code    
		if(*errinfo!=0) break;
		
		temp=amt_get_string(cmdbuf,AMT_DATE_ATOM,Buf,0); //
		amt_get_string(cmdbuf,AMT_DATE_ATOM,Buf,temp);   //get flush date
		break;
		//退出生产测试模式
		//*data: NULL
		//*Buf: NULL
		//输入:无
		//输出:*errinfo
		//备注:	
	case EXIT: //退出生产测试模式
		amt_set_commandtype(cmdbuf,AMT_EXIT_CMD);  //set command type 
		for(i=0;i<3;i++)
		{
			*errinfo=ComRw();  //send command and read response
			if(*errinfo==enNoneErr) break;  //
		}
		if(*errinfo!=0) break; //fail for three times,break
		CommType=amt_get_commandtype(cmdbuf); //get response command type
		if(CommType!=AMT_EXIT_RSPCMD)  //response command type correct?
		{
			*errinfo=ComRspTypeErr;    //
			break;
		}
		*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM);  //read error code 
		break; 
		//设置生产测试模式允许
		//*Buf: NULL
		//输入:*data(data[0])	Mode info	0x31-AMT_MODE1
		//									0x32-AMT_MODE2
		//									0x33-AMT_MODE3 
		//输出:*errinfo
		//备注:	
	case WRCTL: ////设置生产测试模式允许
		amt_set_commandtype(cmdbuf,AMT_WRITE_CONTROL_CMD);  //set command type 
		//SetString(enIMEIAtom,rult);
		amt_set_int(cmdbuf,AMT_CONTROL_BYTE_ATOM,data[0]);  //set mode info
		//			amt_set_string(cmdbuf,AMT_CONTROL_BYTE_ATOM,Buf);   //需要写入的是什么类型
		for(i=0;i<3;i++)
		{
			*errinfo=ComRw(); //send command and read response
			if(*errinfo==enNoneErr) break;
		}
		if(*errinfo!=0) break;
		CommType=amt_get_commandtype(cmdbuf);  //get response command type
		if(CommType!=AMT_WRITE_CONTROL_RSPCMD) //
		{
			*errinfo=ComRspTypeErr;			   //
			break;
		}
		*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //read error code 
		break;
		//读取生产测试模式允许
		//*data: NULL
		//输入:无
		//输出:*Buf 读取到的控制Byte
		//		*errinfo
		//备注:
	case RDCTL: //读取生产测试模式允许
		amt_set_commandtype(cmdbuf,AMT_READ_CONTROL_CMD);  //set command type    
		for(i=0;i<3;i++)
		{
			*errinfo=ComRw();  //send command and check response from UE
			if(*errinfo==enNoneErr) break;  //there is error,try three times .or break
		}
		if(*errinfo!=0) break;
		CommType=amt_get_commandtype(cmdbuf); //get response command type
		if(CommType!=AMT_READ_CONTROL_RSPCMD) //
		{
			*errinfo=ComRspTypeErr;			  //
			break;
		}
		*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //get error code    
		if(*errinfo!=0) break;
		temp=amt_get_bytes(cmdbuf,AMT_CONTROL_BYTE_ATOM,Buf,0); //
		amt_get_bytes(cmdbuf,AMT_CONTROL_BYTE_ATOM,Buf,temp);   //
		break;
		//改变音频输入增益
		//*Buf: NULL
		//输入:*data(data[0])	AMT_GAININ_ATOM,待写入的增益值
		//输出:*errinfo
		//备注:	
	case WTGAININ:  ////改变音频输入增益
		amt_set_commandtype(cmdbuf,AMT_WRITE_GAININ_CMD); 
		amt_set_int(cmdbuf,AMT_GAININ_ATOM, data[0]);   //para 1
		for(i=0;i<3;i++)
		{
			*errinfo=ComRw();  //send command and read response
			if(*errinfo==enNoneErr) break;  //
		}
		if(*errinfo!=0) break;
		CommType=amt_get_commandtype(cmdbuf); //get response command type
		if(CommType!=AMT_WRITE_GAININ_RSPCMD)
		{
			*errinfo=ComRspTypeErr;
			break;
		}
		*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM);  //read error code
		break;
		//读取音频输入增益
		//*Buf: NULL
		//输入:无
		//输出:*data(data[0])	AMT_GAININ_ATOM,读到的增益值
		//		*errinfo
		//备注:	
	case RDGAININ: //读取音频输入增益
		amt_set_commandtype(cmdbuf,AMT_READ_GAININ_CMD);  //set command type    
		for(i=0;i<3;i++)
		{
			*errinfo=ComRw();  //send command and check response from UE
			if(*errinfo==enNoneErr) break;  //there is error,try three times .or break
		}
		if(*errinfo!=0) break;
		CommType=amt_get_commandtype(cmdbuf); //get response command type
		if(CommType!=AMT_READ_GAININ_RSPCMD) //
		{
			*errinfo=ComRspTypeErr;			  //
			break;
		}
		*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //get error code    
		if(*errinfo!=0) break;
		*data=amt_get_int(cmdbuf,AMT_GAININ_ATOM); //read gain value 
		break;
		//Read Board No.
		//*data: NULL
		//输入:无
		//输出:*Buf 读取到的Board No. ASCII字符串
		//		*errinfo
		//备注:
	case RDBODNO:							////读取Board No.
		amt_set_commandtype(cmdbuf,AMT_READ_BOARD_CMD);    
		for(i=0;i<3;i++)
		{
			*errinfo=ComRw();   //send command and read response
			if(*errinfo==enNoneErr) break;  //
		}
		if(*errinfo!=0) break;
		CommType=amt_get_commandtype(cmdbuf);  //
		if(CommType!=AMT_READ_BOARD_RSPCMD)	   //
		{
			*errinfo=ComRspTypeErr;			   //
			break;
		}
		*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //get error code    
		if(*errinfo!=0) break;
		temp=amt_get_string(cmdbuf,AMT_BOARD_ATOM,Buf,0); //
		amt_get_string(cmdbuf,AMT_BOARD_ATOM,Buf,temp);   //get flash data
		break;
		//写Board No.
		//*data: NULL
		//输入:*Buf 待写入的Board No. ASCII字符串

⌨️ 快捷键说明

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