pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Driver.java
@@ -1,10 +1,9 @@
package com.dy.common.mw.protocol;
import java.net.URI;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
import com.dy.common.util.ClassScan;
import org.reflections.Reflections;
public abstract class Driver {
@@ -21,7 +20,6 @@
    * @throws Exception 异常
    */
   public abstract void scanAnnotationCode() throws Exception ;
   /**
    * 扫描识别功能码注解类
    * @param driver 驱动
@@ -31,17 +29,15 @@
    * @throws Exception 异常
    */
   @SuppressWarnings("unchecked")
   protected void doScanAnnotationCode(Driver driver, String protocolName, URI uri, String scanRootPackage) throws Exception{
      ClassLoader load = driver.getClass().getClassLoader() ;
      List<String> classNames = new ClassScan().searchClassFromUrl(new URI[]{uri}, scanRootPackage) ;
      if(classNames != null && classNames.size() > 0){
   protected void doScanAnnotationCode(Driver driver, String protocolName, String scanRootPackage) throws Exception{
      Reflections reflections = new Reflections(scanRootPackage); // 指定包名
         String code ;
         String[] codes ;
         for(String cName : classNames){
            String className = cName.substring(0,  cName.lastIndexOf('.')) ;
            Class<?> clazz = load.loadClass(className) ;
            Class<CodeParse> codeParseClazz ;
            if(clazz.isAnnotationPresent(AnnotationCodeUp.class)){
      Set<Class<?>> codeUpClasses = reflections.getTypesAnnotatedWith(AnnotationCodeUp.class);
      if (codeUpClasses != null && codeUpClasses.size() > 0) {
         for (Class<?> clazz : codeUpClasses) {
               AnnotationCodeUp ann = clazz.getAnnotation(AnnotationCodeUp.class) ;
               if(ann != null){
                  codeParseClazz = (Class<CodeParse>)clazz ;
@@ -67,8 +63,11 @@
                  }
               }
            }
      }
            
            if(clazz.isAnnotationPresent(AnnotationCodeDown.class)){
      Set<Class<?>> codeDownClasses = reflections.getTypesAnnotatedWith(AnnotationCodeDown.class);
      if (codeDownClasses != null && codeDownClasses.size() > 0) {
         for (Class<?> clazz : codeDownClasses) {
               AnnotationCodeDown ann = clazz.getAnnotation(AnnotationCodeDown.class) ;
               if(ann != null){
                  codeParseClazz = (Class<CodeParse>)clazz ;
@@ -96,7 +95,7 @@
            }
         }
      }
   }
   /**
    * 单线程单例Driver模式下运行
    * 得到上行数据功能码处理类CodeParse对象