@ -288,32 +288,30 @@ class Inverter { 
			
		
	
		
		
			
				
					                uint8_t   end  =  ptr  +  rec - > assign [ pos ] . num ;                 uint8_t   end  =  ptr  +  rec - > assign [ pos ] . num ;  
			
		
	
		
		
			
				
					                uint16_t  div  =  rec - > assign [ pos ] . div ;                 uint16_t  div  =  rec - > assign [ pos ] . div ;  
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					
					                if ( NULL  ! =  rec )  {                 if ( CMD_CALC  ! =  div )  {  
			
				
				
			
		
	
		
		
			
				
					
					                    if ( CMD_CALC  ! =  div )  {                     uint32_t  val  =  0 ;  
			
				
				
			
		
	
		
		
			
				
					
					                        uint32_t  val  =  0 ;                     do  {  
			
				
				
			
		
	
		
		
			
				
					
					                        do  {                         val  < < =  8 ;  
			
				
				
			
		
	
		
		
			
				
					
					                            val  < < =  8 ;                         val  | =  buf [ ptr ] ;  
			
				
				
			
		
	
		
		
			
				
					
					                            val  | =  buf [ ptr ] ;                     }  while ( + + ptr  ! =  end ) ;  
			
				
				
			
		
	
		
		
			
				
					
					                        }  while ( + + ptr  ! =  end ) ; 
 
			
				
				
			
		
	
		
		
			
				
					
					
                    if  ( ( FLD_T  = =  rec - > assign [ pos ] . fieldId )  | |  ( FLD_Q  = =  rec - > assign [ pos ] . fieldId )  | |  ( FLD_PF  = =  rec - > assign [ pos ] . fieldId ) )  {  
			
				
				
			
		
	
		
		
			
				
					
					                        if  ( ( FLD_T  = =  rec - > assign [ pos ] . fieldId )  | |  ( FLD_Q  = =  rec - > assign [ pos ] . fieldId )  | |  ( FLD_PF  = =  rec - > assign [ pos ] . fieldId ) )  {                         // temperature, Qvar, and power factor are a signed values
  
			
				
				
			
		
	
		
		
			
				
					
					                            // temperature, Qvar, and power factor are a signed values
                         rec - > record [ pos ]  =  ( ( REC_TYP ) ( ( int16_t ) val ) )  /  ( REC_TYP ) ( div ) ;  
			
				
				
			
		
	
		
		
			
				
					
					                            rec - > record [ pos ]  =  ( ( REC_TYP ) ( ( int16_t ) val ) )  /  ( REC_TYP ) ( div ) ;                     }  else  if  ( FLD_YT  = =  rec - > assign [ pos ] . fieldId )  {  
			
				
				
			
		
	
		
		
			
				
					
					                        }  else  if  ( FLD_YT  = =  rec - > assign [ pos ] . fieldId )  {                         rec - > record [ pos ]  =  ( ( REC_TYP ) ( val )  /  ( REC_TYP ) ( div ) )  +  ( ( REC_TYP ) config - > yieldCor [ rec - > assign [ pos ] . ch - 1 ] ) ;  
			
				
				
			
		
	
		
		
			
				
					
					                            rec - > record [ pos ]  =  ( ( REC_TYP ) ( val )  /  ( REC_TYP ) ( div ) )  +  ( ( REC_TYP ) config - > yieldCor [ rec - > assign [ pos ] . ch - 1 ] ) ;                     }  else  if  ( FLD_YD  = =  rec - > assign [ pos ] . fieldId )  {  
			
				
				
			
		
	
		
		
			
				
					
					                        }  else  if  ( FLD_YD  = =  rec - > assign [ pos ] . fieldId )  {                         float  actYD  =  ( REC_TYP ) ( val )  /  ( REC_TYP ) ( div ) ;  
			
				
				
			
		
	
		
		
			
				
					
					                            float  actYD  =  ( REC_TYP ) ( val )  /  ( REC_TYP ) ( div ) ;                         uint8_t  idx  =  rec - > assign [ pos ] . ch  -  1 ;  
			
				
				
			
		
	
		
		
			
				
					
					                            uint8_t  idx  =  rec - > assign [ pos ] . ch  -  1 ;                         if  ( mLastYD [ idx ]  >  actYD )  
			
				
				
			
		
	
		
		
			
				
					
					                            if  ( mLastYD [ idx ]  >  actYD )                             mOffYD [ idx ]  + =  mLastYD [ idx ] ;  
			
				
				
			
		
	
		
		
			
				
					
					                                mOffYD [ idx ]  + =  mLastYD [ idx ] ;                         mLastYD [ idx ]  =  actYD ;  
			
				
				
			
		
	
		
		
			
				
					
					                            mLastYD [ idx ]  =  actYD ;                         rec - > record [ pos ]  =  mOffYD [ idx ]  +  actYD ;  
			
				
				
			
		
	
		
		
			
				
					
					                            rec - > record [ pos ]  =  mOffYD [ idx ]  +  actYD ;                     }  else  {  
			
				
				
			
		
	
		
		
			
				
					
					                        }  else  {                         if  ( ( REC_TYP ) ( div )  >  1 )  
			
				
				
			
		
	
		
		
			
				
					
					                            if  ( ( REC_TYP ) ( div )  >  1 )                             rec - > record [ pos ]  =  ( REC_TYP ) ( val )  /  ( REC_TYP ) ( div ) ;  
			
				
				
			
		
	
		
		
			
				
					
					                                rec - > record [ pos ]  =  ( REC_TYP ) ( val )  /  ( REC_TYP ) ( div ) ;                         else  
			
				
				
			
		
	
		
		
			
				
					
					                            else                             rec - > record [ pos ]  =  ( REC_TYP ) ( val ) ;  
			
				
				
			
		
	
		
		
			
				
					                                rec - > record [ pos ]  =  ( REC_TYP ) ( val ) ;  
			
		
	
		
		
			
				
					                        }  
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					                    }                     }  
			
		
	
		
		
			
				
					                }                 }