anchor.diff:  					)
   				)
   				(setq pos (+ pos 2))
  -			)
  +			))
   			
  -			(and (= (char (nth pos data))  0xa6) (<= (+ pos 10) len)) ;;; ȡpm25 a8 xx xx cc cc cc cc dd dd dd dd, c d is low and counter
  +			((and (= (char (nth pos data))  0xa6) (< (+ pos 6) len)) ;;; ȡpm25 a8 xx xx cc cc dd dd, c d is low and counter
   			(begin
   				(setq short_address nil)
  -				(setq short_address (| (<< (char (nth (+ pos 1) data) ) 8 ) (char (nth (+ pos 2) data) ) ) ) ;; ʽַ xx xx,鿴
  -				(setq tmp1 (get-int (slice data 2 4)))
  -				(setq tmp2 (get-int (slice data 6 4)))
  +				(setq short_address (format "%04X" (get-int (reverse (slice data pos 2)))))
  +				(setq tmp1 (get-int (reverse (slice data 2 2))))
  +				(setq tmp2 (get-int (reverse (slice data 4 2))))
   				(setq pm25_ratio (div tmp1 tmp2))
  -				(if (<= pm25_ratio 0.08)
  +				(if (<= pm25_ratio 0.008)
   						(setq tmp 0)
  -						(and (> pm25_ratio 0.08) (<= pm25_ratio 0.1 ))
  +						(and (> pm25_ratio 0.008) (<= pm25_ratio 0.1 ))
   						(setq tmp 1)
  -						(and (> pm25_ratio 0.1 ) (<= pm25_ratio 0.14))
  +						(and (> pm25_ratio 0.01 ) (<= pm25_ratio 0.14))
   						(setq tmp 2)
  -						(and (> pm25_ratio 0.14) (<= pm25_ratio 0.40)) ;; pm25 ̫ҲǼ
  +						(and (> pm25_ratio 0.014) (<= pm25_ratio 0.40)) ;; pm25 ̫ҲǼ
   						(setq tmp 3)
   				) 
  -				(BASE (string (format "%04X" short_address) "_PM25") tmp)
  +				(BASE (string (slice short_address 0 4) "_PM25") (int tmp))
   				(setq pos (+ pos 10))
  -			)
  -			
  -			(and (= (char (nth pos data))  0xa8) (<= (+ pos 3) len)) ;; ȡ voc кֵ ֵΧֻ  00 01 10 11 ֿ
  +			))
  +			((and (= (char (nth pos data))  0xa8) (< (+ pos 3) len)) ;; ȡ voc кֵ ֵΧֻ  00 01 10 11 ֿa8 xx xx ??
   			(begin
   				(setq short_address nil)
  -				(setq short_address (| (<< (char (nth (+ pos 1) data) ) 8 ) (char (nth (+ pos 2) data) ) ) ) ;; ʽַ xx xx,鿴
  -				(setq tmp (char (nth (+ pos 3) data))	)
  -				(BASE (string (format "%04X" short_address) "_VOC") tmp)
  +				(setq short_address (format "%04X" (get-int (reverse (slice data pos 2)))))
  +				(setq tmp (get-int (nth (+ pos 3) data))	)
  +				(if (nil? tmp) (setq tmp -1)
  +				)
  +				(BASE (string (slice short_address 0 4) "_VOC") (int tmp))
   				(setq pos (+ pos 3))			
  -			)
  -			
  -			(++ pos);; Ĭһһӣһλǰ
  -		)
  -	)
  +			))
  +		)
  +		(++ pos);; Ĭһһӣһλǰ
  +	)
  +	
   
   )
   
  
positive.code: 					)
  				)
  			
  		
  		(assert "close connect 8087\n")
  		(net-close connection)
  	)		
  )
  
  
negative.code: 		(extend ret (string x))
  	)
  	(write 1 ret ) ;; ǿʾstdout
  )
  
  (define (assertln)
  	(assert (args))
  	(assert "\n")
  )
  
  (setq help_string (string "AT&PAN=xx xx, yy yy | Set xx xx's PanID to yy yy\n"
  