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

📄 es16uh.zrg

📁 本代码为与电能表相配套的掌上通讯设备的源程序
💻 ZRG
📖 第 1 页 / 共 5 页
字号:
			case chfMain = "1"
                		ctmpstr="电表密码"	
				writename=ctmpstr
				ctmpstr1="新密码:            "	       
				corder[1]="15"	
				corder[2]="08"	      
				ndataid1=0	
				ndataid2=0	
				ndatalen=04	              
				nitem=01	
				nchangeformat=13	
				nbackdata=01	  
				strdata="" 
				cdataformat="060000009999990101090"    
                		do hwdxwrite
			case chfMain = "2"      
				do ESddsfonoff
 			case chfMain = "3"
 				do setupFigFunc
                	case chfMain = "4"
                		ctmpstr="小数位数"	
				writename=ctmpstr
				ctmpstr1="小数位数:            "	       
				corder[1]="04"	
				corder[2]="07"	      
				ndataid1=021	
				ndataid2=193	
				ndatalen=01	              
				nitem=01	
				nchangeformat=10	
				nbackdata=00	
				strdata="" 
				cdataformat="020100000000000301100"
				do hwdxwrite	
			otherwise
                		return
        	endcase
		ENDDO
	return
endpro
*/---------------------------------------------------------------------\*
*/---------------------------------------------------------------------\*
Procedure ES16uDefaultSetupMain
                        
		        do while .T.
			szWinTitle = "---出厂设置---"
			do ShowWindow
			clear
			formatdata=datauno
			leng =12
			do format
			datauno=formatdata
			@1,0 say "表号:"+datauno   
				wait ""  to key_esc
			        if asc(key_esc)=13
					do DefaultSetupMain	
						if strRecFlag="no"
							clear
							@1,1 say "设置不成功,请检查"	
							wait""	
							loop
						endif
					datauno=str(val(datauno)+1,1)		
			        endif					
				if asc(key_esc)=24
					return
				else
					if asc(key_esc)=8
						do inputmeterid
                        	        	if ifquit=1
                        				exit	
				        	endif
        					@0,7 say cmtnum1 
        					datauno=cmtnum1
						loop
				 	else
				 		loop
				 	endif
				endif	
			enddo
		return
Endpro
*/---------------------------------------------------------------------\*..
*/--------------------------------------------------------------------\*..
Procedure DefaultSetupMain
      		clear
		@0,0 say   "硬设表号:"		
			ctmpstr=str(val(datauno),12)
         		cmtnum1=""
         		i = 1
         		do while i<=12
         			cmtnum1=cmtnum1+str(val(substr(ctmpstr,i,1)),1)
         			i=i+1
        		enddo 
         		szdata{1,8}=51
         		szdata{1,1} = 52
         		szdata{2,1} = 52
        			
        		ctmpstr = datauno
        		m = len(ctmpstr)
        		do while m < 12
        			ctmpstr = "0" + ctmpstr
        			m = len(ctmpstr)
        		enddo
        		szdata{3,1} = numtobcd(val(right(ctmpstr,2)),33h)
        		szdata{4,1} = numtobcd(val(substr(ctmpstr,9,2)),33h)
        		szdata{5,1} = numtobcd(val(substr(ctmpstr,7,2)),33h)
        		szdata{6,1} = numtobcd(val(substr(ctmpstr,5,2)),33h)
        		szdata{7,1} = numtobcd(val(substr(ctmpstr,3,2)),33h)
        		szdata{8,1} = numtobcd(val(substr(ctmpstr,1,2)),33h)
                        datatempuno="999999999999"
        		szaddr{1,6}=numtobcd(val(datatempuno),0)
			ctmpstr="载波表号"	
			writename="电表表号"
			ctmpstr1="电表新表号"
				
			unozborhw=1
			zyccsetup=1		
			corder[1]="10"	
			corder[2]="08"	
			ndatalen=08	            
			nitem=01
			ndataid1=0
			ndataid2=0	
			nchangeformat=1	
			nbackdata=00
			strdata=""
			do hwdxwrite 
			unozborhw=0
			sound 0,4                                        
	     		zyccsetup=0		

			if strRecFlag="no"
                              	return
                        else 
       			ctempcode=""
			inputkey=""
       			ctmpstr="电表密码"	
			writename=ctmpstr
                        	inputkey="666666"
				szpassword{1,4}=0
      				n=val(inputkey+"00")
      				szpassword=numtobcd(n,33h)
      				m=scanbyte(szpassword{1,4},255)                    
      				if m>0
         				szpassword{m,5-m}=51                      
      				endif
      				writename="电表密码"
				ctmpstr1="电表密码"
				ctmpstr=writename
				zyccsetup=1		
				corder[1]="15"	
				corder[2]="08"	      
				ndataid1=0	
				ndataid2=0	
				ndatalen=04
				ifdefault=1
				nchangeformat=13	
				strdata=ctempcode
				szdata=strdata
				do hwdxwrite
				zyccsetup=0	
				szpassword{1,4}=szdata{1,4}
				inputkey=""
				ifdefault=0
			endif
			if strRecFlag="no"
				return
			else
			        ctmpstr="初始电量"	
				writename=ctmpstr
				ctmpstr1="初始电量:"+datanewfig  
				@1,0 say space(21) 
                    		@2,0 say space(21)                 
                    		@1,0 say  trim(ctmpstr1)      
        		        ninputcount=1+len(datanewfig)   
        		        inputkey=datanewfig             &&电表底数默认为近一次输入
				if nexitflag=1
        			        return
        		        endif  
        			corder[1]="04"	
				corder[2]="10"	      
				ndataid1=025	
				ndataid2=193	
				ndatalen=04	              
				nitem=1
				nbackdata=00
				strdata="" 
				nchangeformat=10
				ccszflag=1	
				nbackdata=00	
				strdata="" 
				cdataformat="0900000999999.9901092" 
				do hwdxwrite
				ccszflag=0
			endif
                        szdata{1,50}= 51		 
            		szdata=numtobcd(val(strinput),33h)
            		m=scanbyte(szdata{1,ndatalen},255)
            		if m>0          
                		szdata{m,ndatalen-m+1}=51                                   
            		endif
            		
            	set intensity off             
        	if strRecFlag="yes" 
			return 
		endif 
	return          		
endpro
*/---------------------------------------------------------------------\*
*/----------------------------------------------------------------------\*
procedure ESddsfonoff
	clear
	DO WHILE .T.
		szWinTitle = "远程控制"
		do ShowWindow
		aszMxItem[1] = "1.通知断电"
		aszMxItem[2] = "2.清除断电"
		aszMxItem[3] = "3.控制断电"
		aszMxItem[4] = "4.控制通电"
			
		nMxItemNum = 4
		nMxChoice = 1
		do Menu
		chfMain = chr(nMxChoice+48)
		do case
			case chfMain = "1"
				ctmpstr="通知断电"	
				writename=ctmpstr
				ctmpstr1="通知断电"	
				corder[1]="04"	
				corder[2]="06"	
				ndataid1=058	
				ndataid2=192	
				ndatalen=00	            
				nitem=01	
				nchangeformat=11	
				nbackdata=01
				strdata="" 
				do hwdxwrite   
						        			
            		case chfMain = "2"
                		ctmpstr="清除断电"	
				writename=ctmpstr
				ctmpstr1="清除断电"	
				corder[1]="04"	
				corder[2]="06"	
				ndataid1=059	
				ndataid2=192	
				ndatalen=00	            
				nitem=01	
				nchangeformat=11	
				nbackdata=01
				strdata="" 
				do hwdxwrite   
						
			case chfMain = "3"
                		ctmpstr="控制断电"	
				writename=ctmpstr
				ctmpstr1="控制断电"	
				corder[1]="04"	
				corder[2]="06"	
				ndataid1=060	
				ndataid2=192	
				ndatalen=00	            
				nitem=01	
				nchangeformat=11	
				nbackdata=01
				strdata="" 
				do hwdxwrite   
						
            		case chfMain = "4"
                		ctmpstr="控制通电"	
				writename=ctmpstr
				ctmpstr1="控制通电"	
				corder[1]="04"	
				corder[2]="06"	
				ndataid1=061	
				ndataid2=192	
				ndatalen=00	            
				nitem=01	
				nchangeformat=11	
				nbackdata=01
				strdata="" 
				do hwdxwrite   
			otherwise
                		return
        	endcase
	ENDDO
endpro
*/---------------------------------------------------------------------\*
*/---------------------------------------------------------------------\*..
Procedure SetupFigFunc
                                ctmpstr="初始电量"	
				writename=ctmpstr
				ctmpstr1="初始电量:            "	       
				corder[1]="04"	
				corder[2]="10"	      
				ndataid1=025	
				ndataid2=193	
				ndatalen=04	              
				nitem=01	
				nchangeformat=10	
				nbackdata=00	
				strdata="" 
				cdataformat="0900000999999.9901092"   
                        	do hwdxwrite
         return
endpro
*/---------------------------------------------------------------------\*..
*/---------------------------------------------------------------------\*
procedure ddsfdxread
	clear
	DO WHILE .T.
		szWinTitle = "单项抄收"
		do ShowWindow
		aszMxItem[1] = "1.抄收电量"
		aszMxItem[2] = "2.时间参数"
		aszMxItem[3] = "3.状态参数"
		aszMxItem[4] = "4.集合命令"		
		nMxItemNum = 4
		nMxChoice = 1
		do Menu
		chfMain = chr(nMxChoice+48)
		do case
			case chfMain = "1"			 
			 	do readPowerMenu				
			case chfMain = "2"
				do hwtimeparam 
			case chfMain = "3"
				do hwstateparam
			case chfMain = "4"
				do hwgatherch
			otherwise
                		return
        	endcase
	ENDDO
endpro
*/--------------------------------------------------------------------\* 
*/--------------------------------------------------------------------\*
procedure readPowerMenu
	clear
	DO WHILE .T.
		szWinTitle = "抄收电量"
		do ShowWindow
		aszMxItem[1] = "1.当前电量"
		aszMxItem[2] = "2.前日冻结1"
		aszMxItem[3] = "3.前日冻结2"
		aszMxItem[4] = "4.日冻结电量"
		nMxItemNum = 4
		nMxChoice = 1
		do Menu
		chfMain = chr(nMxChoice+48)
		do case
			case chfMain = "1"
				ctmpstr= "当前电量"
				corder[1]="01"	
    				corder[2]="02"	
    				ndataid1=016		
    				ndataid2=144	
    				ndatalen=04	
    				nitem=01	
    				nchangeformat=3	
    				nvallen=09	
    				nvaldot=02	
    				cformat="当前电量:######.##"                     
    				do hwdxread
        		case chfMain = "2"				
				do HourFigRead1
			case chfMain = "3"				
				do HourFigRead2	
        		case chfMain = "4"
				ctmpstr= "日冻结电量"
				corder[1]="01"	
    				corder[2]="02"	
    				ndataid1=016		
    				ndataid2=154	
    				ndatalen=04	
    				nitem=01	
    				nchangeformat=3	
    				nvallen=09	
    				nvaldot=02	
    				cformat="日冻结电量:######.##"                     
    				do hwdxread
		        				
        		otherwise
                		return
        	endcase
	ENDDO
endpro	
*/---------------------------------------------------------------------\*
*整点冻结电量
*/---------------------------------------------------------------------\*
procedure HourFigRead1
	clear
	DO WHILE .T.
		szWinTitle = "整点冻结"
		do ShowWindow
		aszMxItem[1]="1.0到1点"
		aszMxItem[2]="2.2到3点"
		aszMxItem[3]="3.4到5点"
		aszMxItem[4]="4.6到7点"
		aszMxItem[5]="5.8到9点"
		aszMxItem[6]="6.10到11点"

		nMxItemNum = 6
		nMxChoice = 1
		do Menu
		chfMain = chr(nMxChoice+48)
		do case
			case chfMain = "1"
				ctmpstr= "0点到1点电量"
				corder[1]="01"	
            			corder[2]="02"	
            			ndataid1=097		
            			ndataid2=232	
            			ndatalen=04	
            			nitem=02	
            			nchangeformat=3	
            			nvallen=09	
            			nvaldot=02	
            			if tp_ver="tp600"
            			    	cformat="0点冻结量:######.##  1点冻结量:######.##"
            			else
            			    	cformat="0点冻结量:######.## 1点冻结量:######.##"
            			endif                    
            			do hwdxread	
        	        case chfMain = "2"
                                ctmpstr= "2点到3点电量"
				corder[1]="01"	
            			corder[2]="02"	
            			ndataid1=098		
            			ndataid2=232	
            			ndatalen=04	
            			nitem=02	
            			nchangeformat=3	
            			nvallen=09	
            			nvaldot=02	 
            			if tp_ver="tp600"
            			    	cformat="2点冻结量:######.##  3点冻结量:######.##"                    
            			else
    			            	cformat="2点冻结量:######.## 3点冻结量:######.##"                    
                                endif
       			        do hwdxread	
                        case chfMain = "3"
                                ctmpstr= "4点到5点电量"
				corder[1]="01"	
            			corder[2]="02"	
            			ndataid1=099		
            			ndataid2=232	
            			ndatalen=04	
            			nitem=02	
            			nchangeformat=3	
            			nvallen=09	
            			nvaldot=02	
            			if tp_ver="tp600"
            			    	cformat="4点冻结量:######.##  5点冻结量:######.##"                    
            			else
            			    	cformat="4点冻结量:######.## 5点冻结量:######.##"                    
            			endif
            			do hwdxread	
    		        case chfMain = "4"
                                ctmpstr= "6点到7点电量"
				corder[1]="01"	
            			corder[2]="02"	
            			ndataid1=100		
            			ndataid2=232	
            			ndatalen=04	
            			nitem=02	
            			nchangeformat=3	
            			nvallen=09	
            			nvaldot=02	
            			if tp_ver="tp600" 
            			    	cformat="6点冻结量:######.##  7点冻结量:######.##"                    
            			else
            			    	cformat="6点冻结量:######.## 7点冻结量:######.##"                   
            			endif
            			do hwdxread
            		case chfMain = "5"
                                ctmpstr= "8点到9点电量"
				corder[1]="01"	
            			corder[2]="02"	
            			ndataid1=101		
            			ndataid2=232	
            			ndatalen=04	
            			nitem=02	
            			nchangeformat=

⌨️ 快捷键说明

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