lxc 2 years ago
parent
commit
15395018ca
  1. BIN
      .DS_Store
  2. BIN
      lmp_v0.3.9-idea版本(1).rar
  3. BIN
      lmp_v0.3.9.zip
  4. BIN
      lmp_v0.3.9/.DS_Store
  5. 0
      lmp_v0.3.9/.classpath
  6. 0
      lmp_v0.3.9/.idea/.gitignore
  7. 0
      lmp_v0.3.9/.idea/ant.xml
  8. 0
      lmp_v0.3.9/.idea/artifacts/LMP_jar.xml
  9. 0
      lmp_v0.3.9/.idea/compiler.xml
  10. 0
      lmp_v0.3.9/.idea/libraries/lib.xml
  11. 0
      lmp_v0.3.9/.idea/misc.xml
  12. 0
      lmp_v0.3.9/.idea/modules.xml
  13. 4
      lmp_v0.3.9/.project
  14. 0
      lmp_v0.3.9/.settings/org.eclipse.core.resources.prefs
  15. 565
      lmp_v0.3.9/.settings/org.eclipse.jdt.core.prefs
  16. 1
      lmp_v0.3.9/LMP.iml
  17. 2
      lmp_v0.3.9/bin/META-INF/MANIFEST.MF
  18. BIN
      lmp_v0.3.9/bin/com/lpro/iot/bean/ReturnNodeInfoObj.class
  19. BIN
      lmp_v0.3.9/bin/com/lpro/iot/bean/ec/IotNodeInfoBOSocket.class
  20. BIN
      lmp_v0.3.9/bin/com/lpro/iot/common/Cache.class
  21. BIN
      lmp_v0.3.9/bin/com/lpro/iot/common/Config.class
  22. BIN
      lmp_v0.3.9/bin/com/lpro/iot/common/Constants$CODE_TYPE.class
  23. BIN
      lmp_v0.3.9/bin/com/lpro/iot/common/Constants$URL.class
  24. BIN
      lmp_v0.3.9/bin/com/lpro/iot/common/Constants.class
  25. BIN
      lmp_v0.3.9/bin/com/lpro/iot/mqtt/MessageCallback.class
  26. BIN
      lmp_v0.3.9/bin/com/lpro/iot/mqtt/MqttService.class
  27. BIN
      lmp_v0.3.9/bin/com/lpro/iot/protocal/Iprotocal.class
  28. BIN
      lmp_v0.3.9/bin/com/lpro/iot/protocal/Protocal.class
  29. BIN
      lmp_v0.3.9/bin/com/lpro/iot/protocal/impl/ProtocalHj212.class
  30. BIN
      lmp_v0.3.9/bin/com/lpro/iot/protocal/impl/ProtocalMing.class
  31. BIN
      lmp_v0.3.9/bin/com/lpro/iot/protocal/impl/ProtocalModbus.class
  32. BIN
      lmp_v0.3.9/bin/com/lpro/iot/protocal/impl/ProtocalModbusTcp.class
  33. BIN
      lmp_v0.3.9/bin/com/lpro/iot/protocal/impl/ProtocalYinTlink.class
  34. BIN
      lmp_v0.3.9/bin/com/lpro/iot/protocal/impl/ProtocalYw$1.class
  35. BIN
      lmp_v0.3.9/bin/com/lpro/iot/protocal/impl/ProtocalYw$TimerTaskThread.class
  36. BIN
      lmp_v0.3.9/bin/com/lpro/iot/protocal/impl/ProtocalYw.class
  37. BIN
      lmp_v0.3.9/bin/com/lpro/iot/server/MainServer.class
  38. BIN
      lmp_v0.3.9/bin/com/lpro/iot/server/ServerIoHandler.class
  39. BIN
      lmp_v0.3.9/bin/com/lpro/iot/service/impl/task/NodeHeartTask.class
  40. BIN
      lmp_v0.3.9/bin/com/lpro/iot/serviceImpl/MsgHandlerServiceImpl.class
  41. BIN
      lmp_v0.3.9/bin/com/lpro/iot/utils/Util$ByteArrayConveter.class
  42. BIN
      lmp_v0.3.9/bin/com/lpro/iot/utils/Util$NodeDevice.class
  43. BIN
      lmp_v0.3.9/bin/com/lpro/iot/utils/Util$Obj.class
  44. BIN
      lmp_v0.3.9/bin/com/lpro/iot/utils/Util$binhexoct.class
  45. BIN
      lmp_v0.3.9/bin/com/lpro/iot/utils/Util$crc.class
  46. BIN
      lmp_v0.3.9/bin/com/lpro/iot/utils/Util$date.class
  47. BIN
      lmp_v0.3.9/bin/com/lpro/iot/utils/Util$file.class
  48. BIN
      lmp_v0.3.9/bin/com/lpro/iot/utils/Util$json.class
  49. BIN
      lmp_v0.3.9/bin/com/lpro/iot/utils/Util$map.class
  50. BIN
      lmp_v0.3.9/bin/com/lpro/iot/utils/Util$mina.class
  51. BIN
      lmp_v0.3.9/bin/com/lpro/iot/utils/Util$protocal.class
  52. BIN
      lmp_v0.3.9/bin/com/lpro/iot/utils/Util$reflect.class
  53. BIN
      lmp_v0.3.9/bin/com/lpro/iot/utils/Util.class
  54. 4
      lmp_v0.3.9/bin/log4j.properties
  55. 0
      lmp_v0.3.9/build.xml
  56. BIN
      lmp_v0.3.9/build/LSM.jar
  57. 11
      lmp_v0.3.9/config.properties
  58. 0
      lmp_v0.3.9/lib/.DS_Store
  59. 0
      lmp_v0.3.9/lib/commons-codec-1.4.jar
  60. 0
      lmp_v0.3.9/lib/commons-httpclient-3.0.jar
  61. 0
      lmp_v0.3.9/lib/commons-lang-2.6.jar
  62. 0
      lmp_v0.3.9/lib/commons-logging-1.1.1.jar
  63. 0
      lmp_v0.3.9/lib/fastjson-1.2.56.jar
  64. 0
      lmp_v0.3.9/lib/jackson-annotations-2.3.0.jar
  65. 0
      lmp_v0.3.9/lib/jackson-core-2.3.0.jar
  66. 0
      lmp_v0.3.9/lib/jackson-core-asl-1.9.13.jar
  67. 0
      lmp_v0.3.9/lib/jackson-databind-2.3.0.jar
  68. 0
      lmp_v0.3.9/lib/jackson-mapper-asl-1.9.13.jar
  69. 0
      lmp_v0.3.9/lib/log4j-1.2.16.jar
  70. 0
      lmp_v0.3.9/lib/lombok.jar
  71. 0
      lmp_v0.3.9/lib/mina-core-2.0.4.jar
  72. 0
      lmp_v0.3.9/lib/mqtt-client-1.12.jar
  73. 0
      lmp_v0.3.9/lib/org.eclipse.paho.client.mqttv3-1.2.0.jar
  74. 0
      lmp_v0.3.9/lib/slf4j-api-1.5.11.jar
  75. 0
      lmp_v0.3.9/lib/slf4j-log4j12-1.5.11.jar
  76. 2
      lmp_v0.3.9/src/META-INF/MANIFEST.MF
  77. 0
      lmp_v0.3.9/src/com/lpro/iot/bean/BaseBean.java
  78. 0
      lmp_v0.3.9/src/com/lpro/iot/bean/IotBaseBean.java
  79. 0
      lmp_v0.3.9/src/com/lpro/iot/bean/IotMqttSensorInfo.java
  80. 0
      lmp_v0.3.9/src/com/lpro/iot/bean/IotNodeInfo.java
  81. 0
      lmp_v0.3.9/src/com/lpro/iot/bean/IotNodeInfoBO.java
  82. 0
      lmp_v0.3.9/src/com/lpro/iot/bean/IotSensorInfo.java
  83. 0
      lmp_v0.3.9/src/com/lpro/iot/bean/IotSensorInfoBO.java
  84. 0
      lmp_v0.3.9/src/com/lpro/iot/bean/LockResult.java
  85. 0
      lmp_v0.3.9/src/com/lpro/iot/bean/ModbusConfig.java
  86. 4
      lmp_v0.3.9/src/com/lpro/iot/common/Cache.java
  87. 0
      lmp_v0.3.9/src/com/lpro/iot/common/Code.java
  88. 0
      lmp_v0.3.9/src/com/lpro/iot/dto/Brower2LpmDto.java
  89. 4
      lmp_v0.3.9/src/com/lpro/iot/mqtt/MessageCallback.java
  90. 0
      lmp_v0.3.9/src/com/lpro/iot/mqtt/MessageHandler.java
  91. 2
      lmp_v0.3.9/src/com/lpro/iot/mqtt/MqttService.java
  92. 4
      lmp_v0.3.9/src/com/lpro/iot/protocal/Iprotocal.java
  93. 69
      lmp_v0.3.9/src/com/lpro/iot/protocal/Protocal.java
  94. 0
      lmp_v0.3.9/src/com/lpro/iot/protocal/ProtocalFactory.java
  95. 10
      lmp_v0.3.9/src/com/lpro/iot/protocal/impl/ProtocalHj212.java
  96. 16
      lmp_v0.3.9/src/com/lpro/iot/protocal/impl/ProtocalMing.java
  97. 26
      lmp_v0.3.9/src/com/lpro/iot/protocal/impl/ProtocalModbus.java
  98. 24
      lmp_v0.3.9/src/com/lpro/iot/protocal/impl/ProtocalModbusTcp.java
  99. 16
      lmp_v0.3.9/src/com/lpro/iot/protocal/impl/ProtocalYinTlink.java
  100. 17
      lmp_v0.3.9/src/com/lpro/iot/protocal/impl/ProtocalYw.java

BIN
.DS_Store

Binary file not shown.

BIN
lmp_v0.3.9-idea版本(1).rar

Binary file not shown.

BIN
lmp_v0.3.9.zip

Binary file not shown.

BIN
lmp_v0.3.9/.DS_Store

Binary file not shown.

0
lmp_v0.3.9/.classpath

0
lmp_v0.3.9/.idea/.gitignore

0
lmp_v0.3.9/.idea/ant.xml

0
lmp_v0.3.9/.idea/artifacts/LMP_jar.xml

0
lmp_v0.3.9/.idea/compiler.xml

0
lmp_v0.3.9/.idea/libraries/lib.xml

0
lmp_v0.3.9/.idea/misc.xml

0
lmp_v0.3.9/.idea/modules.xml

4
lmp_v0.3.9/.project

@ -16,12 +16,12 @@
</natures> </natures>
<filteredResources> <filteredResources>
<filter> <filter>
<id>1664096443839</id> <id>1665044943591</id>
<name></name> <name></name>
<type>30</type> <type>30</type>
<matcher> <matcher>
<id>org.eclipse.core.resources.regexFilterMatcher</id> <id>org.eclipse.core.resources.regexFilterMatcher</id>
<arguments>node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments> <arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
</matcher> </matcher>
</filter> </filter>
</filteredResources> </filteredResources>

0
lmp_v0.3.9/.settings/org.eclipse.core.resources.prefs

565
lmp_v0.3.9/.settings/org.eclipse.jdt.core.prefs

@ -1,13 +1,576 @@
eclipse.preferences.version=1 eclipse.preferences.version=1
enableParallelJavaIndexSearch=true
org.eclipse.jdt.core.builder.annotationPath.allLocations=disabled
org.eclipse.jdt.core.builder.cleanOutputFolder=clean
org.eclipse.jdt.core.builder.duplicateResourceTask=warning
org.eclipse.jdt.core.builder.invalidClasspath=abort
org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=
org.eclipse.jdt.core.circularClasspath=warning
org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
org.eclipse.jdt.core.classpath.mainOnlyProjectHasTestOnlyDependency=error
org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
org.eclipse.jdt.core.codeComplete.argumentPrefixes=
org.eclipse.jdt.core.codeComplete.argumentSuffixes=
org.eclipse.jdt.core.codeComplete.camelCaseMatch=enabled
org.eclipse.jdt.core.codeComplete.deprecationCheck=disabled
org.eclipse.jdt.core.codeComplete.discouragedReferenceCheck=disabled
org.eclipse.jdt.core.codeComplete.fieldPrefixes=
org.eclipse.jdt.core.codeComplete.fieldSuffixes=
org.eclipse.jdt.core.codeComplete.forbiddenReferenceCheck=enabled
org.eclipse.jdt.core.codeComplete.forceImplicitQualification=disabled
org.eclipse.jdt.core.codeComplete.localPrefixes=
org.eclipse.jdt.core.codeComplete.localSuffixes=
org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
org.eclipse.jdt.core.codeComplete.subwordMatch=disabled
org.eclipse.jdt.core.codeComplete.suggestStaticImports=enabled
org.eclipse.jdt.core.codeComplete.visibilityCheck=enabled
org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.lambda.genericSignature=do not generate
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
org.eclipse.jdt.core.compiler.codegen.shareCommonFinallyBlocks=disabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.codegen.targetlspform=1.7
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.8 org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.doc.comment.support=enabled
org.eclipse.jdt.core.compiler.emulateJavacBug8031744=enabled
org.eclipse.jdt.core.compiler.generateClassFiles=enabled
org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
org.eclipse.jdt.core.compiler.problem.APILeak=warning
org.eclipse.jdt.core.compiler.problem.annotatedTypeArgumentToUnannotated=info
org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
org.eclipse.jdt.core.compiler.problem.deadCode=warning
org.eclipse.jdt.core.compiler.problem.deadCodeInTrivialIfStatement=disabled
org.eclipse.jdt.core.compiler.problem.deprecation=warning
org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=disabled
org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
org.eclipse.jdt.core.compiler.problem.nullReference=warning
org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
org.eclipse.jdt.core.compiler.problem.overridingMethodWithoutSuperInvocation=ignore
org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
org.eclipse.jdt.core.compiler.problem.suppressWarningsNotFullyAnalysed=info
org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
org.eclipse.jdt.core.compiler.problem.tasks=warning
org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore
org.eclipse.jdt.core.compiler.problem.uninternedIdentityComparison=disabled
org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedImport=warning
org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
org.eclipse.jdt.core.compiler.problem.unusedTypeArgumentsForMethodInvocation=warning
org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
org.eclipse.jdt.core.compiler.processAnnotations=disabled
org.eclipse.jdt.core.compiler.release=enabled
org.eclipse.jdt.core.compiler.source=1.8 org.eclipse.jdt.core.compiler.source=1.8
org.eclipse.jdt.core.compiler.storeAnnotations=disabled
org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL
org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX
org.eclipse.jdt.core.computeJavaBuildOrder=ignore
org.eclipse.jdt.core.encoding=utf8
org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
org.eclipse.jdt.core.formatter.align_selector_in_method_invocation_on_expression_first_line=true
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
org.eclipse.jdt.core.formatter.align_with_spaces=false
org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
org.eclipse.jdt.core.formatter.alignment_for_annotations_on_enum_constant=49
org.eclipse.jdt.core.formatter.alignment_for_annotations_on_field=49
org.eclipse.jdt.core.formatter.alignment_for_annotations_on_local_variable=49
org.eclipse.jdt.core.formatter.alignment_for_annotations_on_method=49
org.eclipse.jdt.core.formatter.alignment_for_annotations_on_package=49
org.eclipse.jdt.core.formatter.alignment_for_annotations_on_parameter=0
org.eclipse.jdt.core.formatter.alignment_for_annotations_on_type=49
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_assertion_message=16
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression_chain=0
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_switch_case_with_arrow=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_switch_case_with_colon=16
org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_record_components=16
org.eclipse.jdt.core.formatter.alignment_for_relational_operator=0
org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
org.eclipse.jdt.core.formatter.alignment_for_shift_operator=0
org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_record_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_switch_case_with_arrow=20
org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_type_annotations=0
org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
org.eclipse.jdt.core.formatter.blank_lines_after_last_class_body_declaration=0
org.eclipse.jdt.core.formatter.blank_lines_after_package=1
org.eclipse.jdt.core.formatter.blank_lines_before_abstract_method=1
org.eclipse.jdt.core.formatter.blank_lines_before_field=0
org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
org.eclipse.jdt.core.formatter.blank_lines_before_method=1
org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
org.eclipse.jdt.core.formatter.blank_lines_before_package=0
org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
org.eclipse.jdt.core.formatter.blank_lines_between_statement_group_in_switch=0
org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_record_constructor=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_record_declaration=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true
org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true
org.eclipse.jdt.core.formatter.comment.format_block_comments=true
org.eclipse.jdt.core.formatter.comment.format_header=false
org.eclipse.jdt.core.formatter.comment.format_html=true
org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
org.eclipse.jdt.core.formatter.comment.format_line_comments=true
org.eclipse.jdt.core.formatter.comment.format_source_code=true
org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
org.eclipse.jdt.core.formatter.comment.indent_tag_description=false
org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
org.eclipse.jdt.core.formatter.comment.insert_new_line_between_different_tags=do not insert
org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
org.eclipse.jdt.core.formatter.comment.line_length=80
org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
org.eclipse.jdt.core.formatter.compact_else_if=true
org.eclipse.jdt.core.formatter.continuation_indentation=2
org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_record_header=true
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
org.eclipse.jdt.core.formatter.indent_empty_lines=false
org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
org.eclipse.jdt.core.formatter.indentation.size=4
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_case=insert
org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_default=insert
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_permitted_types=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_record_components=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_switch_case_expressions=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_not_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_record_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_case=insert
org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_default=insert
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_record_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_permitted_types=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_record_components=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_switch_case_expressions=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_record_constructor=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_record_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_record_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
org.eclipse.jdt.core.formatter.join_lines_in_comments=false
org.eclipse.jdt.core.formatter.join_wrapped_lines=false
org.eclipse.jdt.core.formatter.keep_annotation_declaration_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.keep_anonymous_type_declaration_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.keep_code_block_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
org.eclipse.jdt.core.formatter.keep_enum_constant_declaration_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.keep_enum_declaration_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
org.eclipse.jdt.core.formatter.keep_lambda_body_block_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.keep_loop_body_block_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.keep_method_body_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.keep_record_constructor_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.keep_record_declaration_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false
org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false
org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line=false
org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false
org.eclipse.jdt.core.formatter.keep_switch_body_block_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.keep_switch_case_with_arrow_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
org.eclipse.jdt.core.formatter.keep_type_declaration_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.lineSplit=120
org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
org.eclipse.jdt.core.formatter.number_of_blank_lines_after_code_block=0
org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_code_block=0
org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_code_block=0
org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_method_body=0
org.eclipse.jdt.core.formatter.number_of_blank_lines_before_code_block=0
org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_record_declaration=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
org.eclipse.jdt.core.formatter.tabulation.char=space
org.eclipse.jdt.core.formatter.tabulation.size=4
org.eclipse.jdt.core.formatter.text_block_indentation=0
org.eclipse.jdt.core.formatter.use_on_off_tags=true
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
org.eclipse.jdt.core.formatter.wrap_before_assertion_message_operator=true
org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
org.eclipse.jdt.core.formatter.wrap_before_relational_operator=true
org.eclipse.jdt.core.formatter.wrap_before_shift_operator=true
org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
org.eclipse.jdt.core.formatter.wrap_before_switch_case_arrow_operator=false
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
org.eclipse.jdt.core.incompatibleJDKLevel=ignore
org.eclipse.jdt.core.incompleteClasspath=error
org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
org.eclipse.jdt.core.timeoutForParameterNameFromAttachedJavadoc=50

1
lmp_v0.3.9/LMP.iml

@ -168,6 +168,5 @@
<jarDirectory url="file://$MODULE_DIR$/lib" recursive="false" /> <jarDirectory url="file://$MODULE_DIR$/lib" recursive="false" />
</library> </library>
</orderEntry> </orderEntry>
<orderEntry type="library" exported="" scope="PROVIDED" name="Tomcat 9.0.7" level="application_server_libraries" />
</component> </component>
</module> </module>

2
lmp_v0.3.9/bin/META-INF/MANIFEST.MF

@ -1,3 +1,3 @@
Manifest-Version: 1.0 Manifest-Version: 1.0
Main-Class: com.lpro.iot.server.MinaServer Main-Class: com.lpro.iot.server.MainServer

BIN
lmp_v0.3.9/bin/com/lpro/iot/bean/ReturnNodeInfoObj.class

Binary file not shown.

BIN
lmp_v0.3.9/bin/com/lpro/iot/bean/ec/IotNodeInfoBOSocket.class

Binary file not shown.

BIN
lmp_v0.3.9/bin/com/lpro/iot/common/Cache.class

Binary file not shown.

BIN
lmp_v0.3.9/bin/com/lpro/iot/common/Config.class

Binary file not shown.

BIN
lmp_v0.3.9/bin/com/lpro/iot/common/Constants$CODE_TYPE.class

Binary file not shown.

BIN
lmp_v0.3.9/bin/com/lpro/iot/common/Constants$URL.class

Binary file not shown.

BIN
lmp_v0.3.9/bin/com/lpro/iot/common/Constants.class

Binary file not shown.

BIN
lmp_v0.3.9/bin/com/lpro/iot/mqtt/MessageCallback.class

Binary file not shown.

BIN
lmp_v0.3.9/bin/com/lpro/iot/mqtt/MqttService.class

Binary file not shown.

BIN
lmp_v0.3.9/bin/com/lpro/iot/protocal/Iprotocal.class

Binary file not shown.

BIN
lmp_v0.3.9/bin/com/lpro/iot/protocal/Protocal.class

Binary file not shown.

BIN
lmp_v0.3.9/bin/com/lpro/iot/protocal/impl/ProtocalHj212.class

Binary file not shown.

BIN
lmp_v0.3.9/bin/com/lpro/iot/protocal/impl/ProtocalMing.class

Binary file not shown.

BIN
lmp_v0.3.9/bin/com/lpro/iot/protocal/impl/ProtocalModbus.class

Binary file not shown.

BIN
lmp_v0.3.9/bin/com/lpro/iot/protocal/impl/ProtocalModbusTcp.class

Binary file not shown.

BIN
lmp_v0.3.9/bin/com/lpro/iot/protocal/impl/ProtocalYinTlink.class

Binary file not shown.

BIN
lmp_v0.3.9/bin/com/lpro/iot/protocal/impl/ProtocalYw$1.class

Binary file not shown.

BIN
lmp_v0.3.9/bin/com/lpro/iot/protocal/impl/ProtocalYw$TimerTaskThread.class

Binary file not shown.

BIN
lmp_v0.3.9/bin/com/lpro/iot/protocal/impl/ProtocalYw.class

Binary file not shown.

BIN
lmp_v0.3.9/bin/com/lpro/iot/server/MainServer.class

Binary file not shown.

BIN
lmp_v0.3.9/bin/com/lpro/iot/server/ServerIoHandler.class

Binary file not shown.

BIN
lmp_v0.3.9/bin/com/lpro/iot/service/impl/task/NodeHeartTask.class

Binary file not shown.

BIN
lmp_v0.3.9/bin/com/lpro/iot/serviceImpl/MsgHandlerServiceImpl.class

Binary file not shown.

BIN
lmp_v0.3.9/bin/com/lpro/iot/utils/Util$ByteArrayConveter.class

Binary file not shown.

BIN
lmp_v0.3.9/bin/com/lpro/iot/utils/Util$NodeDevice.class

Binary file not shown.

BIN
lmp_v0.3.9/bin/com/lpro/iot/utils/Util$Obj.class

Binary file not shown.

BIN
lmp_v0.3.9/bin/com/lpro/iot/utils/Util$binhexoct.class

Binary file not shown.

BIN
lmp_v0.3.9/bin/com/lpro/iot/utils/Util$crc.class

Binary file not shown.

BIN
lmp_v0.3.9/bin/com/lpro/iot/utils/Util$date.class

Binary file not shown.

BIN
lmp_v0.3.9/bin/com/lpro/iot/utils/Util$file.class

Binary file not shown.

BIN
lmp_v0.3.9/bin/com/lpro/iot/utils/Util$json.class

Binary file not shown.

BIN
lmp_v0.3.9/bin/com/lpro/iot/utils/Util$map.class

Binary file not shown.

BIN
lmp_v0.3.9/bin/com/lpro/iot/utils/Util$mina.class

Binary file not shown.

BIN
lmp_v0.3.9/bin/com/lpro/iot/utils/Util$protocal.class

Binary file not shown.

BIN
lmp_v0.3.9/bin/com/lpro/iot/utils/Util$reflect.class

Binary file not shown.

BIN
lmp_v0.3.9/bin/com/lpro/iot/utils/Util.class

Binary file not shown.

4
lmp_v0.3.9/bin/log4j.properties

@ -17,7 +17,7 @@
log4j.rootLogger=INFO,CONSOLE,R log4j.rootLogger=INFO,CONSOLE,R
log4j.additivity.org.apache=true log4j.additivity.org.apache=true
#全局的日志级别(打印sql必须要该属性) #???????(??sql??????)
log4j.appender.Threshold=INFO log4j.appender.Threshold=INFO
#ConsoleAppender #ConsoleAppender
@ -29,7 +29,7 @@ log4j.appender.CONSOLE.layout.ConversionPattern=%d %-5p [%t] -%l - %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.Threshold=DEBUG log4j.appender.R.Threshold=DEBUG
log4j.appender.R.File=/log/lpm/${lpmKey}/${lpmKey}.log log4j.appender.R.File=/Users/ec/Desktop/work/out/log4j/lpm/${lpmKey}/${lpmKey}.log
log4j.appender.R.MaxFileSize=2048KB log4j.appender.R.MaxFileSize=2048KB
log4j.appender.R.Append=true log4j.appender.R.Append=true
log4j.appender.R.MaxBackupIndex=20 log4j.appender.R.MaxBackupIndex=20

0
lmp_v0.3.9/build.xml

BIN
lmp_v0.3.9/build/LSM.jar

Binary file not shown.

11
lmp_v0.3.9/config.properties

@ -3,14 +3,15 @@ iot.userKey=426aad8a150a4d85a8fa7221085edca3
#TCP SERVER PORT #TCP SERVER PORT
iot.port=50001 iot.port=50001
iot.url=http://127.0.0.1:8080/lpro iot.url=http://127.0.0.1:8081
#iot.url=http://127.0.0.1:8081/lpro
iot.lpm.key=qw3erfds3c4qq0856bf9b63f99529f iot.lpm.key=qw3erfds3c4qq0856bf9b63f99529f
#MQTT #MQTT
iot.mqtt.host=tcp://127.0.0.1:1883 iot.mqtt.host=tcp://127.0.0.1:1883
iot.mqtt.userName=iot2yun iot.mqtt.userName=admin
iot.mqtt.password=iot2yun iot.mqtt.password=public
iot.mqtt.topic=lmp123
#UDP----------- #UDP-----------
iot.udp.switch=false iot.udp.switch=false
iot.udp.port=8000 iot.udp.port=50002

0
lmp_v0.3.9/lib/.DS_Store

0
lmp_v0.3.9/lib/commons-codec-1.4.jar

0
lmp_v0.3.9/lib/commons-httpclient-3.0.jar

0
lmp_v0.3.9/lib/commons-lang-2.6.jar

0
lmp_v0.3.9/lib/commons-logging-1.1.1.jar

0
lmp_v0.3.9/lib/fastjson-1.2.56.jar

0
lmp_v0.3.9/lib/jackson-annotations-2.3.0.jar

0
lmp_v0.3.9/lib/jackson-core-2.3.0.jar

0
lmp_v0.3.9/lib/jackson-core-asl-1.9.13.jar

0
lmp_v0.3.9/lib/jackson-databind-2.3.0.jar

0
lmp_v0.3.9/lib/jackson-mapper-asl-1.9.13.jar

0
lmp_v0.3.9/lib/log4j-1.2.16.jar

0
lmp_v0.3.9/lib/lombok.jar

0
lmp_v0.3.9/lib/mina-core-2.0.4.jar

0
lmp_v0.3.9/lib/mqtt-client-1.12.jar

0
lmp_v0.3.9/lib/org.eclipse.paho.client.mqttv3-1.2.0.jar

0
lmp_v0.3.9/lib/slf4j-api-1.5.11.jar

0
lmp_v0.3.9/lib/slf4j-log4j12-1.5.11.jar

2
lmp_v0.3.9/src/META-INF/MANIFEST.MF

@ -1,3 +1,3 @@
Manifest-Version: 1.0 Manifest-Version: 1.0
Main-Class: com.lpro.iot.server.MinaServer Main-Class: com.lpro.iot.server.MainServer

0
lmp_v0.3.9/src/com/lpro/iot/bean/BaseBean.java

0
lmp_v0.3.9/src/com/lpro/iot/bean/IotBaseBean.java

0
lmp_v0.3.9/src/com/lpro/iot/bean/IotMqttSensorInfo.java

0
lmp_v0.3.9/src/com/lpro/iot/bean/IotNodeInfo.java

0
lmp_v0.3.9/src/com/lpro/iot/bean/IotNodeInfoBO.java

0
lmp_v0.3.9/src/com/lpro/iot/bean/IotSensorInfo.java

0
lmp_v0.3.9/src/com/lpro/iot/bean/IotSensorInfoBO.java

0
lmp_v0.3.9/src/com/lpro/iot/bean/LockResult.java

0
lmp_v0.3.9/src/com/lpro/iot/bean/ModbusConfig.java

4
lmp_v0.3.9/src/com/lpro/iot/common/Cache.java

@ -6,6 +6,7 @@ import java.util.Set;
import java.util.Timer; import java.util.Timer;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import com.lpro.iot.bean.ec.IotNodeInfoBOSocket;
import org.apache.mina.core.session.IoSession; import org.apache.mina.core.session.IoSession;
@ -33,4 +34,7 @@ public class Cache {
public static Map<String, Long > deviceMap = new ConcurrentHashMap<>(); public static Map<String, Long > deviceMap = new ConcurrentHashMap<>();
public static Map<String, IotNodeInfoBOSocket> nodeIdsessionMapEx = new ConcurrentHashMap<>();
} }

0
lmp_v0.3.9/src/com/lpro/iot/common/Code.java

0
lmp_v0.3.9/src/com/lpro/iot/dto/Brower2LpmDto.java

4
lmp_v0.3.9/src/com/lpro/iot/mqtt/MessageCallback.java

@ -6,7 +6,7 @@ import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import com.lpro.iot.server.MinaServer; import com.lpro.iot.server.MainServer;
public class MessageCallback implements MqttCallbackExtended { public class MessageCallback implements MqttCallbackExtended {
@ -25,7 +25,7 @@ public class MessageCallback implements MqttCallbackExtended {
@Override @Override
public void messageArrived(String topic, MqttMessage message) throws Exception { public void messageArrived(String topic, MqttMessage message) throws Exception {
// 消息放入线程池中处理 // 消息放入线程池中处理
MinaServer.threadPool.execute(new MessageHandler(message.getPayload() , new String(message.getPayload()), topic)); MainServer.threadPool.execute(new MessageHandler(message.getPayload() , new String(message.getPayload()), topic));
} }
@Override @Override

0
lmp_v0.3.9/src/com/lpro/iot/mqtt/MessageHandler.java

2
lmp_v0.3.9/src/com/lpro/iot/mqtt/MqttService.java

@ -55,7 +55,7 @@ public class MqttService {
client.connect(options); client.connect(options);
LOGGER.info("mqtt server connect success ;"); LOGGER.info("mqtt server connect success ;");
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("Error:" + e.getLocalizedMessage() +",请检查EMQX是否正常启动!"); LOGGER.error("Error:" + e.getLocalizedMessage() +",请检查MQTT 代理是否正常启动!");
} }
} }

4
lmp_v0.3.9/src/com/lpro/iot/protocal/Iprotocal.java

@ -2,7 +2,7 @@ package com.lpro.iot.protocal;
import org.apache.mina.core.session.IoSession; import org.apache.mina.core.session.IoSession;
import com.lpro.iot.bean.ReturnObj; import com.lpro.iot.bean.ReturnNodeInfoObj;
public interface Iprotocal { public interface Iprotocal {
@ -17,7 +17,7 @@ public interface Iprotocal {
* @param data * @param data
* @param msg * @param msg
*/ */
void loginProtocal(IoSession session,byte[] data,String msg , ReturnObj obj); void loginProtocal(IoSession session,byte[] data,String msg , ReturnNodeInfoObj obj);
/** /**
* 数据解析 * 数据解析

69
lmp_v0.3.9/src/com/lpro/iot/protocal/Protocal.java

@ -1,9 +1,10 @@
package com.lpro.iot.protocal; package com.lpro.iot.protocal;
import com.lpro.iot.bean.ec.IotNodeInfoBOSocket;
import org.apache.mina.core.session.IoSession; import org.apache.mina.core.session.IoSession;
import com.lpro.iot.bean.IotNodeInfoBO; import com.lpro.iot.bean.IotNodeInfoBO;
import com.lpro.iot.bean.ReturnObj; import com.lpro.iot.bean.ReturnNodeInfoObj;
import com.lpro.iot.common.Cache; import com.lpro.iot.common.Cache;
import com.lpro.iot.common.Code; import com.lpro.iot.common.Code;
import com.lpro.iot.common.Config; import com.lpro.iot.common.Config;
@ -23,6 +24,54 @@ public class Protocal {
public static void main(String[] args) { public static void main(String[] args) {
System.out.println( MD5Util.MD5Encode( "user" , "").subSequence(0, 6) ); System.out.println( MD5Util.MD5Encode( "user" , "").subSequence(0, 6) );
}
//cmd=login:deviceCode 例如:login:Device_Code_001
// 或者为:login:MN=Device_Code_001;xxx
public static void loginProtocalEx(IoSession session,byte[] data,String msg){
// 解析登录命令
String[] cmds= msg.split(":");
if(cmds.length!=2){
Util.mina.writeStr(session, "failure:错误编码:D0001, 登录格式错误,正确格式是'login:deviceCode'") ;
session.close(true);
return;
}
String deviceCode = cmds[1] ;
if( ObjectUtil.isEmpty(deviceCode) ) {
Util.mina.writeStr(session, "failure:错误编码:D0002, deviceCode==null") ;
session.close(true);
return;
}
// IotNodeInfoBOSocket nodeinfoDB= Cache.nodeIdsessionMapEx.get(deviceCode);
IoSession ioSession= Cache.nodeIdsessionMap.get(deviceCode);
if(ObjectUtil.isEmpty(ioSession)){
//当为空时从从服务器获得
ServerIoHandler.LOGGER.info("Login Code: " + deviceCode);
// 设备登录获取信息
ReturnNodeInfoObj obj = Util.NodeDevice.loginReturn( deviceCode );
if(obj!=null && obj.getStatus() == Code.ResponseCode.OK+0 && ObjectUtil.isNotEmpty(obj.getData()) ){
IotNodeInfoBO nodeInfo = obj.getData() ;
if(ObjectUtil.isNotEmpty( nodeInfo.getIot_protocal_category() ) ){
// 协议类型
try{
ProtocalFactory.getInstance(nodeInfo.getIot_protocal_category()).loginProtocal(session, data, deviceCode , obj);
Util.mina.writeStr(session, "success 登录成功!") ;
// Cache.nodeIdsessionMap.put(deviceCode,session);
}catch(Exception e){
e.printStackTrace();
}
}
}else {
session.close(true);
}
}
} }
/** /**
* 登录判断并匹配协议 * 登录判断并匹配协议
@ -32,7 +81,8 @@ public class Protocal {
*/ */
public static void loginProtocal(IoSession session,byte[] data,String msg){ public static void loginProtocal(IoSession session,byte[] data,String msg){
// 首先判断该命令是否为登录命令 >>< 匹配多种协议 // 首先判断该命令是否为登录命令 >>< 匹配多种协议
String protocals = Config.IOT_PROTOCAL ; /**/
String protocals = Config.IOT_PROTOCAL ; //"ProtocalHj212,ProtocalMing,ProtocalModbus,ProtocalModbusTcp"
String[] protocal = protocals.split(","); String[] protocal = protocals.split(",");
if(ObjectUtil.isEmpty(protocal)) if(ObjectUtil.isEmpty(protocal))
@ -76,7 +126,7 @@ public class Protocal {
ServerIoHandler.LOGGER.info("Login Code: " + deviceCode); ServerIoHandler.LOGGER.info("Login Code: " + deviceCode);
// 设备登录获取信息 // 设备登录获取信息
ReturnObj obj = Util.NodeDevice.loginReturn( deviceCode ); ReturnNodeInfoObj obj = Util.NodeDevice.loginReturn( deviceCode );
if(obj!=null && obj.getStatus() == Code.ResponseCode.OK+0 && ObjectUtil.isNotEmpty(obj.getData()) ){ if(obj!=null && obj.getStatus() == Code.ResponseCode.OK+0 && ObjectUtil.isNotEmpty(obj.getData()) ){
IotNodeInfoBO nodeInfo = obj.getData() ; IotNodeInfoBO nodeInfo = obj.getData() ;
if(ObjectUtil.isNotEmpty( nodeInfo.getIot_protocal_category() ) ){ if(ObjectUtil.isNotEmpty( nodeInfo.getIot_protocal_category() ) ){
@ -107,28 +157,29 @@ public class Protocal {
} }
/** /**
* 动作执行 *接收服务器发送的动作指令然后执行
* @param session * @param session
* @param data * @param data
* @param msg * @param msg
* IOT_SERVER_LPM:TYPE,nodeId,SENSOR_DEVICE_ID,PORT_ID,DATA,FORMULATE * IOT_SERVER_LPM:TYPE,nodeId,SENSOR_DEVICE_ID,PORT_ID,DATA,FORMULATE
* IOT_SERVER_LPM:reset,2,0,1,5,FORMULATE
*/ */
public static void execServer(IoSession session, byte[] data, String msg) { public static void execServer(IoSession session, byte[] data, String msg) {
String subStr = msg.split(":")[1]; String subStr = msg.split(":")[1];//TYPE,nodeId,SENSOR_DEVICE_ID,PORT_ID,DATA,FORMULATE
String[] commands = subStr.split(","); String[] commands = subStr.split(",");
String nodeDeviceCode = commands[1]; String nodeDeviceCode = commands[1];//nodeId
if("mqtt_control".equals(commands[0])){ if("mqtt_control".equals(commands[0])){//MQTT 控制 TYPE=="mqtt_control"
}else if("param_mqtt_write".equalsIgnoreCase(commands[0])){ }else if("param_mqtt_write".equalsIgnoreCase(commands[0])){
}else if("param_mqtt_read".equalsIgnoreCase(commands[0])){ }else if("param_mqtt_read".equalsIgnoreCase(commands[0])){
}else if("reset".equals(commands[0])){ }else if("reset".equals(commands[0])){// TYPE=="reset" 从服务器重新 获取 设备信息
// 设备重新同步 // 设备重新同步
IoSession sessionDeviceCode = Cache.nodeIdsessionMap.get(nodeDeviceCode); IoSession sessionDeviceCode = Cache.nodeIdsessionMap.get(nodeDeviceCode);
// 这里http请求 // 这里http请求
if( sessionDeviceCode != null ){ if( sessionDeviceCode != null ){
ReturnObj obj = Util.NodeDevice.syncDeviceReturn(nodeDeviceCode); ReturnNodeInfoObj obj = Util.NodeDevice.syncDeviceReturn(nodeDeviceCode);
if( obj.getStatus() == Code.ResponseCode.OK+0 ){ if( obj.getStatus() == Code.ResponseCode.OK+0 ){
sessionDeviceCode.setAttribute( "NODE_SENSORS_DATA" , obj.getData() ) ; sessionDeviceCode.setAttribute( "NODE_SENSORS_DATA" , obj.getData() ) ;
} }

0
lmp_v0.3.9/src/com/lpro/iot/protocal/ProtocalFactory.java

10
lmp_v0.3.9/src/com/lpro/iot/protocal/impl/ProtocalHj212.java

@ -13,7 +13,7 @@ import com.alibaba.fastjson.JSON;
import com.lpro.iot.bean.IotNodeInfo; import com.lpro.iot.bean.IotNodeInfo;
import com.lpro.iot.bean.IotNodeInfoBO; import com.lpro.iot.bean.IotNodeInfoBO;
import com.lpro.iot.bean.IotSensorInfoBO; import com.lpro.iot.bean.IotSensorInfoBO;
import com.lpro.iot.bean.ReturnObj; import com.lpro.iot.bean.ReturnNodeInfoObj;
import com.lpro.iot.common.Cache; import com.lpro.iot.common.Cache;
import com.lpro.iot.common.Code; import com.lpro.iot.common.Code;
import com.lpro.iot.common.Code.IOT_NODE_STATUS; import com.lpro.iot.common.Code.IOT_NODE_STATUS;
@ -44,7 +44,7 @@ public class ProtocalHj212 implements Iprotocal {
} }
@Override @Override
public void loginProtocal(IoSession session, byte[] data, String msg , ReturnObj obj) { public void loginProtocal(IoSession session, byte[] data, String msg , ReturnNodeInfoObj obj) {
// 解析登录命令 // 解析登录命令
String deviceCode = ""; String deviceCode = "";
@ -63,7 +63,7 @@ public class ProtocalHj212 implements Iprotocal {
if(obj.getStatus() == Code.ResponseCode.OK+0){ if(obj.getStatus() == Code.ResponseCode.OK+0){
// 将devicecode放入session // 将devicecode放入session
session.setAttribute(Constants.DEVICECODE,deviceCode); session.setAttribute(Constants.DEVICE_CODE,deviceCode);
session.setAttribute( nodeSensorsData, obj.getData()) ; session.setAttribute( nodeSensorsData, obj.getData()) ;
// session 数据缓存 // session 数据缓存
@ -81,7 +81,7 @@ public class ProtocalHj212 implements Iprotocal {
@Override @Override
public void analysisData(IoSession session, byte[] data, String msg) { public void analysisData(IoSession session, byte[] data, String msg) {
// node id // node id
Object deviceCode = session.getAttribute(Constants.DEVICECODE); Object deviceCode = session.getAttribute(Constants.DEVICE_CODE);
List<IotSensorInfoBO> senorList = new ArrayList<IotSensorInfoBO>(); List<IotSensorInfoBO> senorList = new ArrayList<IotSensorInfoBO>();
String dataCache = (String) session.getAttribute("dataCache"); String dataCache = (String) session.getAttribute("dataCache");
@ -179,7 +179,7 @@ public class ProtocalHj212 implements Iprotocal {
@Override @Override
public void logout(IoSession session) { public void logout(IoSession session) {
IotNodeInfo iotNodeInfo = new IotNodeInfo(); IotNodeInfo iotNodeInfo = new IotNodeInfo();
iotNodeInfo.setDevice_code( session.getAttribute(Constants.DEVICECODE) +""); ; iotNodeInfo.setDevice_code( session.getAttribute(Constants.DEVICE_CODE) +""); ;
iotNodeInfo.setIot_node_status(IOT_NODE_STATUS.offline); iotNodeInfo.setIot_node_status(IOT_NODE_STATUS.offline);
iotNodeInfo.setLpmKey(Config.IOT_LPM_KEY); iotNodeInfo.setLpmKey(Config.IOT_LPM_KEY);
String body = Util.json.object2Json(iotNodeInfo); String body = Util.json.object2Json(iotNodeInfo);

16
lmp_v0.3.9/src/com/lpro/iot/protocal/impl/ProtocalMing.java

@ -12,7 +12,7 @@ import com.alibaba.fastjson.JSON;
import com.lpro.iot.bean.IotNodeInfo; import com.lpro.iot.bean.IotNodeInfo;
import com.lpro.iot.bean.IotNodeInfoBO; import com.lpro.iot.bean.IotNodeInfoBO;
import com.lpro.iot.bean.IotSensorInfo; import com.lpro.iot.bean.IotSensorInfo;
import com.lpro.iot.bean.ReturnObj; import com.lpro.iot.bean.ReturnNodeInfoObj;
import com.lpro.iot.common.Cache; import com.lpro.iot.common.Cache;
import com.lpro.iot.common.Code; import com.lpro.iot.common.Code;
import com.lpro.iot.common.Config; import com.lpro.iot.common.Config;
@ -20,9 +20,7 @@ import com.lpro.iot.common.Constants;
import com.lpro.iot.common.Code.IOT_NODE_STATUS; import com.lpro.iot.common.Code.IOT_NODE_STATUS;
import com.lpro.iot.mqtt.MqttService; import com.lpro.iot.mqtt.MqttService;
import com.lpro.iot.protocal.Iprotocal; import com.lpro.iot.protocal.Iprotocal;
import com.lpro.iot.server.ServerIoHandler;
import com.lpro.iot.utils.CoordinateTransformUtil; import com.lpro.iot.utils.CoordinateTransformUtil;
import com.lpro.iot.utils.DateUtils;
import com.lpro.iot.utils.HttpServiceSender; import com.lpro.iot.utils.HttpServiceSender;
import com.lpro.iot.utils.ObjectUtil; import com.lpro.iot.utils.ObjectUtil;
import com.lpro.iot.utils.Util; import com.lpro.iot.utils.Util;
@ -42,7 +40,7 @@ public class ProtocalMing implements Iprotocal {
* @param msg * @param msg
*/ */
@Override @Override
public void loginProtocal(IoSession session,byte[] data,String msg, ReturnObj obj){ public void loginProtocal(IoSession session,byte[] data,String msg, ReturnNodeInfoObj obj){
// 解析登录命令 // 解析登录命令
String deviceCode = null ; String deviceCode = null ;
if(obj == null){ if(obj == null){
@ -62,7 +60,7 @@ public class ProtocalMing implements Iprotocal {
if(obj.getStatus() == Code.ResponseCode.OK+0 ){ if(obj.getStatus() == Code.ResponseCode.OK+0 ){
// 将devicecode放入session // 将devicecode放入session
session.setAttribute(Constants.DEVICECODE,deviceCode); session.setAttribute(Constants.DEVICE_CODE,deviceCode);
session.setAttribute("nodeINfo", obj.getData()) ; session.setAttribute("nodeINfo", obj.getData()) ;
// session 数据缓存 // session 数据缓存
session.setAttribute("dataCache",""); session.setAttribute("dataCache","");
@ -71,7 +69,7 @@ public class ProtocalMing implements Iprotocal {
// 这边判断设备是否有session连接存在着 // 这边判断设备是否有session连接存在着
if( Cache.nodeIdsessionMap.containsKey(deviceCode) ){ if( Cache.nodeIdsessionMap.containsKey(deviceCode) ){
// 如果之前存在,则删除sesion的属性,并关闭会话 // 如果之前存在,则删除sesion的属性,并关闭会话
Cache.nodeIdsessionMap.get(deviceCode).removeAttribute(Constants.DEVICECODE); Cache.nodeIdsessionMap.get(deviceCode).removeAttribute(Constants.DEVICE_CODE);
Cache.nodeIdsessionMap.get(deviceCode).close(true) ; Cache.nodeIdsessionMap.get(deviceCode).close(true) ;
} }
Cache.nodeIdsessionMap.put(deviceCode , session); Cache.nodeIdsessionMap.put(deviceCode , session);
@ -97,7 +95,7 @@ public class ProtocalMing implements Iprotocal {
@Override @Override
public void analysisData(IoSession session, byte[] data, String msg) { public void analysisData(IoSession session, byte[] data, String msg) {
// node id // node id
Object deviceCode = session.getAttribute(Constants.DEVICECODE); Object deviceCode = session.getAttribute(Constants.DEVICE_CODE);
String dataCache = (String) session.getAttribute("dataCache"); String dataCache = (String) session.getAttribute("dataCache");
if(ObjectUtil.isNotEmpty(dataCache)){ if(ObjectUtil.isNotEmpty(dataCache)){
msg = dataCache + msg ; msg = dataCache + msg ;
@ -150,7 +148,7 @@ public class ProtocalMing implements Iprotocal {
String url = Constants.URL.SENSORS_DATA; String url = Constants.URL.SENSORS_DATA;
// 控制状态修改 // 控制状态修改
String[] reponse = HttpServiceSender.doPut(url, Config.IOT_USER_KEY, body); String[] reponse = HttpServiceSender.doPut(url, Config.IOT_USER_KEY, body);
ReturnObj re = (ReturnObj) Util.json.string2Object(reponse[1], ReturnObj.class); ReturnNodeInfoObj re = (ReturnNodeInfoObj) Util.json.string2Object(reponse[1], ReturnNodeInfoObj.class);
if(re.getStatus() == Code.DEVICE_STATUS.OFFLINE){ if(re.getStatus() == Code.DEVICE_STATUS.OFFLINE){
// 设备离线,需要重新登录一次 // 设备离线,需要重新登录一次
session.close(true); session.close(true);
@ -242,7 +240,7 @@ public class ProtocalMing implements Iprotocal {
@Override @Override
public void logout(IoSession session) { public void logout(IoSession session) {
IotNodeInfo iotNodeInfo = new IotNodeInfo(); IotNodeInfo iotNodeInfo = new IotNodeInfo();
iotNodeInfo.setDevice_code( session.getAttribute(Constants.DEVICECODE) +""); ; iotNodeInfo.setDevice_code( session.getAttribute(Constants.DEVICE_CODE) +""); ;
iotNodeInfo.setIot_node_status(IOT_NODE_STATUS.offline); iotNodeInfo.setIot_node_status(IOT_NODE_STATUS.offline);
iotNodeInfo.setLpmKey(Config.IOT_LPM_KEY); iotNodeInfo.setLpmKey(Config.IOT_LPM_KEY);
String body = Util.json.object2Json(iotNodeInfo); String body = Util.json.object2Json(iotNodeInfo);

26
lmp_v0.3.9/src/com/lpro/iot/protocal/impl/ProtocalModbus.java

@ -17,7 +17,7 @@ import com.lpro.iot.bean.IotSensorInfo;
import com.lpro.iot.bean.IotSensorInfoBO; import com.lpro.iot.bean.IotSensorInfoBO;
import com.lpro.iot.bean.LockResult; import com.lpro.iot.bean.LockResult;
import com.lpro.iot.bean.ModbusConfig; import com.lpro.iot.bean.ModbusConfig;
import com.lpro.iot.bean.ReturnObj; import com.lpro.iot.bean.ReturnNodeInfoObj;
import com.lpro.iot.common.Cache; import com.lpro.iot.common.Cache;
import com.lpro.iot.common.Code; import com.lpro.iot.common.Code;
import com.lpro.iot.common.Code.IOT_NODE_STATUS; import com.lpro.iot.common.Code.IOT_NODE_STATUS;
@ -25,7 +25,7 @@ import com.lpro.iot.common.Config;
import com.lpro.iot.common.Constants; import com.lpro.iot.common.Constants;
import com.lpro.iot.mqtt.MqttService; import com.lpro.iot.mqtt.MqttService;
import com.lpro.iot.protocal.Iprotocal; import com.lpro.iot.protocal.Iprotocal;
import com.lpro.iot.server.MinaServer; import com.lpro.iot.server.MainServer;
import com.lpro.iot.utils.CoordinateTransformUtil; import com.lpro.iot.utils.CoordinateTransformUtil;
import com.lpro.iot.utils.HttpServiceSender; import com.lpro.iot.utils.HttpServiceSender;
import com.lpro.iot.utils.ObjectUtil; import com.lpro.iot.utils.ObjectUtil;
@ -68,7 +68,7 @@ public class ProtocalModbus extends TimerTask implements Iprotocal {
* @param msg * @param msg
*/ */
@Override @Override
public void loginProtocal(IoSession session,byte[] data,String msg, ReturnObj obj){ public void loginProtocal(IoSession session,byte[] data,String msg, ReturnNodeInfoObj obj){
if(data.length >100 ){ if(data.length >100 ){
return ; return ;
} }
@ -80,7 +80,7 @@ public class ProtocalModbus extends TimerTask implements Iprotocal {
if(obj.getStatus() == Code.ResponseCode.OK+0 && ObjectUtil.isNotEmpty(obj.getData()) ){ if(obj.getStatus() == Code.ResponseCode.OK+0 && ObjectUtil.isNotEmpty(obj.getData()) ){
// 将devicecode放入session // 将devicecode放入session
session.setAttribute(Constants.DEVICECODE, deviceCode ); session.setAttribute(Constants.DEVICE_CODE, deviceCode );
// 添加协议类型 // 添加协议类型
session.setAttribute(Constants.PROTOCOL_CATEGORY, this.getClass().getSimpleName() ); session.setAttribute(Constants.PROTOCOL_CATEGORY, this.getClass().getSimpleName() );
@ -139,7 +139,7 @@ public class ProtocalModbus extends TimerTask implements Iprotocal {
*/ */
@Override @Override
public void analysisData(IoSession session, byte[] data, String msg) { public void analysisData(IoSession session, byte[] data, String msg) {
String deviceCode = session.getAttribute(Constants.DEVICECODE)+""; String deviceCode = session.getAttribute(Constants.DEVICE_CODE)+"";
// log // log
if( Cache.deviceMap.containsKey(deviceCode) ){ if( Cache.deviceMap.containsKey(deviceCode) ){
@ -163,7 +163,7 @@ public class ProtocalModbus extends TimerTask implements Iprotocal {
sensorList.get(i).setSdata(0f); sensorList.get(i).setSdata(0f);
list.add(sensorList.get(i)) ; list.add(sensorList.get(i)) ;
// 放入到线程中走 // 放入到线程中走
MinaServer.threadPool.execute(new Runnable() { MainServer.threadPool.execute(new Runnable() {
@Override @Override
public void run() { public void run() {
String body = Util.json.object2Json(list); String body = Util.json.object2Json(list);
@ -203,7 +203,7 @@ public class ProtocalModbus extends TimerTask implements Iprotocal {
String subStr = msg.split(":")[1]; String subStr = msg.split(":")[1];
String[] commands = subStr.split(","); String[] commands = subStr.split(",");
String type = commands[0]; String type = commands[0];
String deviceCode = (String) session.getAttribute(Constants.DEVICECODE); String deviceCode = (String) session.getAttribute(Constants.DEVICE_CODE);
if(ObjectUtil.isNotEmpty(session.getAttribute(Constants.DEVICE_FLAG))) { if(ObjectUtil.isNotEmpty(session.getAttribute(Constants.DEVICE_FLAG))) {
return ; return ;
} }
@ -285,7 +285,7 @@ public class ProtocalModbus extends TimerTask implements Iprotocal {
} }
list.add(new IotSensorInfo( sensorDeviceId+"" , portId, rh+0.0f , deviceCode )); list.add(new IotSensorInfo( sensorDeviceId+"" , portId, rh+0.0f , deviceCode ));
// 放入到线程中走 // 放入到线程中走
MinaServer.threadPool.execute(new Runnable() { MainServer.threadPool.execute(new Runnable() {
@Override @Override
public void run() { public void run() {
String body = Util.json.object2Json(list); String body = Util.json.object2Json(list);
@ -552,7 +552,7 @@ public class ProtocalModbus extends TimerTask implements Iprotocal {
} }
} }
// 放入到线程中走 // 放入到线程中走
MinaServer.threadPool.execute(new Runnable() { MainServer.threadPool.execute(new Runnable() {
@Override @Override
public void run() { public void run() {
String body = Util.json.object2Json(list); String body = Util.json.object2Json(list);
@ -712,7 +712,7 @@ public class ProtocalModbus extends TimerTask implements Iprotocal {
obj.getPort_id(), rh+0.0f , deviceCode ) ); obj.getPort_id(), rh+0.0f , deviceCode ) );
} }
// 放入到线程中走 // 放入到线程中走
MinaServer.threadPool.execute(new Runnable() { MainServer.threadPool.execute(new Runnable() {
@Override @Override
public void run() { public void run() {
String body = Util.json.object2Json(list); String body = Util.json.object2Json(list);
@ -765,15 +765,15 @@ public class ProtocalModbus extends TimerTask implements Iprotocal {
@Override @Override
public void logout(IoSession session) { public void logout(IoSession session) {
// 这个协议下,需要关闭掉session // 这个协议下,需要关闭掉session
Timer timeTask = Cache.timerTaskMap.get(session.getAttribute(Constants.DEVICECODE)) ; Timer timeTask = Cache.timerTaskMap.get(session.getAttribute(Constants.DEVICE_CODE)) ;
if(ObjectUtil.isNotEmpty(timeTask)){ if(ObjectUtil.isNotEmpty(timeTask)){
timeTask.cancel(); timeTask.cancel();
timeTask = null ; timeTask = null ;
Cache.timerTaskMap.remove(session.getAttribute(Constants.DEVICECODE)); Cache.timerTaskMap.remove(session.getAttribute(Constants.DEVICE_CODE));
} }
IotNodeInfo iotNodeInfo = new IotNodeInfo(); IotNodeInfo iotNodeInfo = new IotNodeInfo();
iotNodeInfo.setDevice_code( session.getAttribute(Constants.DEVICECODE) +""); ; iotNodeInfo.setDevice_code( session.getAttribute(Constants.DEVICE_CODE) +""); ;
iotNodeInfo.setIot_node_status(IOT_NODE_STATUS.offline); iotNodeInfo.setIot_node_status(IOT_NODE_STATUS.offline);
iotNodeInfo.setLpmKey(Config.IOT_LPM_KEY); iotNodeInfo.setLpmKey(Config.IOT_LPM_KEY);
String body = Util.json.object2Json(iotNodeInfo); String body = Util.json.object2Json(iotNodeInfo);

24
lmp_v0.3.9/src/com/lpro/iot/protocal/impl/ProtocalModbusTcp.java

@ -17,7 +17,7 @@ import com.lpro.iot.bean.IotSensorInfo;
import com.lpro.iot.bean.IotSensorInfoBO; import com.lpro.iot.bean.IotSensorInfoBO;
import com.lpro.iot.bean.LockResult; import com.lpro.iot.bean.LockResult;
import com.lpro.iot.bean.ModbusConfig; import com.lpro.iot.bean.ModbusConfig;
import com.lpro.iot.bean.ReturnObj; import com.lpro.iot.bean.ReturnNodeInfoObj;
import com.lpro.iot.common.Cache; import com.lpro.iot.common.Cache;
import com.lpro.iot.common.Code; import com.lpro.iot.common.Code;
import com.lpro.iot.common.Code.IOT_NODE_STATUS; import com.lpro.iot.common.Code.IOT_NODE_STATUS;
@ -25,7 +25,7 @@ import com.lpro.iot.common.Config;
import com.lpro.iot.common.Constants; import com.lpro.iot.common.Constants;
import com.lpro.iot.mqtt.MqttService; import com.lpro.iot.mqtt.MqttService;
import com.lpro.iot.protocal.Iprotocal; import com.lpro.iot.protocal.Iprotocal;
import com.lpro.iot.server.MinaServer; import com.lpro.iot.server.MainServer;
import com.lpro.iot.utils.CoordinateTransformUtil; import com.lpro.iot.utils.CoordinateTransformUtil;
import com.lpro.iot.utils.HttpServiceSender; import com.lpro.iot.utils.HttpServiceSender;
import com.lpro.iot.utils.ObjectUtil; import com.lpro.iot.utils.ObjectUtil;
@ -63,7 +63,7 @@ public class ProtocalModbusTcp extends TimerTask implements Iprotocal {
* @param msg * @param msg
*/ */
@Override @Override
public void loginProtocal(IoSession session,byte[] data,String msg, ReturnObj obj){ public void loginProtocal(IoSession session,byte[] data,String msg, ReturnNodeInfoObj obj){
if(data.length >100 ){ if(data.length >100 ){
return ; return ;
} }
@ -75,7 +75,7 @@ public class ProtocalModbusTcp extends TimerTask implements Iprotocal {
if(obj.getStatus() == Code.ResponseCode.OK+0 && ObjectUtil.isNotEmpty(obj.getData()) ){ if(obj.getStatus() == Code.ResponseCode.OK+0 && ObjectUtil.isNotEmpty(obj.getData()) ){
// 将devicecode放入session // 将devicecode放入session
session.setAttribute(Constants.DEVICECODE, deviceCode ); session.setAttribute(Constants.DEVICE_CODE, deviceCode );
// 添加协议类型 // 添加协议类型
session.setAttribute(Constants.PROTOCOL_CATEGORY, this.getClass().getSimpleName() ); session.setAttribute(Constants.PROTOCOL_CATEGORY, this.getClass().getSimpleName() );
@ -130,7 +130,7 @@ public class ProtocalModbusTcp extends TimerTask implements Iprotocal {
@Override @Override
public void analysisData(IoSession session, byte[] data, String msg) { public void analysisData(IoSession session, byte[] data, String msg) {
Object deviceCode = session.getAttribute(Constants.DEVICECODE); Object deviceCode = session.getAttribute(Constants.DEVICE_CODE);
if( Cache.deviceMap.containsKey(deviceCode) ){ if( Cache.deviceMap.containsKey(deviceCode) ){
// 如果有,则返回数据 // 如果有,则返回数据
Map<String,String> map =new HashMap<>(); Map<String,String> map =new HashMap<>();
@ -161,7 +161,7 @@ public class ProtocalModbusTcp extends TimerTask implements Iprotocal {
String subStr = msg.split(":")[1]; String subStr = msg.split(":")[1];
String[] commands = subStr.split(","); String[] commands = subStr.split(",");
String type = commands[0]; String type = commands[0];
String deviceCode = (String) session.getAttribute(Constants.DEVICECODE); String deviceCode = (String) session.getAttribute(Constants.DEVICE_CODE);
if(ObjectUtil.isNotEmpty(session.getAttribute(Constants.DEVICE_FLAG))) { if(ObjectUtil.isNotEmpty(session.getAttribute(Constants.DEVICE_FLAG))) {
return ; return ;
} }
@ -241,7 +241,7 @@ public class ProtocalModbusTcp extends TimerTask implements Iprotocal {
} }
list.add(new IotSensorInfo( datab[6] +"", portId, rh+0.0f , deviceCode )); list.add(new IotSensorInfo( datab[6] +"", portId, rh+0.0f , deviceCode ));
// 放入到线程中走 // 放入到线程中走
MinaServer.threadPool.execute(new Runnable() { MainServer.threadPool.execute(new Runnable() {
@Override @Override
public void run() { public void run() {
String body = Util.json.object2Json(list); String body = Util.json.object2Json(list);
@ -517,7 +517,7 @@ public class ProtocalModbusTcp extends TimerTask implements Iprotocal {
} }
} }
// 放入到线程中走 // 放入到线程中走
MinaServer.threadPool.execute(new Runnable() { MainServer.threadPool.execute(new Runnable() {
@Override @Override
public void run() { public void run() {
String body = Util.json.object2Json(list); String body = Util.json.object2Json(list);
@ -671,7 +671,7 @@ public class ProtocalModbusTcp extends TimerTask implements Iprotocal {
} }
list.add(new IotSensorInfo(obj.getSensor_device_id()+"", obj.getPort_id(),rh+0.0f , deviceCode.toString())); list.add(new IotSensorInfo(obj.getSensor_device_id()+"", obj.getPort_id(),rh+0.0f , deviceCode.toString()));
// 放入到线程中走 // 放入到线程中走
MinaServer.threadPool.execute(new Runnable() { MainServer.threadPool.execute(new Runnable() {
@Override @Override
public void run() { public void run() {
String body = Util.json.object2Json(list); String body = Util.json.object2Json(list);
@ -741,15 +741,15 @@ public class ProtocalModbusTcp extends TimerTask implements Iprotocal {
@Override @Override
public void logout(IoSession session) { public void logout(IoSession session) {
// 这个协议下,需要关闭掉session // 这个协议下,需要关闭掉session
Timer timeTask = Cache.timerTaskMap.get(session.getAttribute(Constants.DEVICECODE)) ; Timer timeTask = Cache.timerTaskMap.get(session.getAttribute(Constants.DEVICE_CODE)) ;
if(ObjectUtil.isNotEmpty(timeTask)){ if(ObjectUtil.isNotEmpty(timeTask)){
timeTask.cancel(); timeTask.cancel();
timeTask = null ; timeTask = null ;
Cache.timerTaskMap.remove(session.getAttribute(Constants.DEVICECODE)); Cache.timerTaskMap.remove(session.getAttribute(Constants.DEVICE_CODE));
} }
IotNodeInfo iotNodeInfo = new IotNodeInfo(); IotNodeInfo iotNodeInfo = new IotNodeInfo();
iotNodeInfo.setDevice_code( session.getAttribute(Constants.DEVICECODE) +""); ; iotNodeInfo.setDevice_code( session.getAttribute(Constants.DEVICE_CODE) +""); ;
iotNodeInfo.setIot_node_status(IOT_NODE_STATUS.offline); iotNodeInfo.setIot_node_status(IOT_NODE_STATUS.offline);
iotNodeInfo.setLpmKey(Config.IOT_LPM_KEY); iotNodeInfo.setLpmKey(Config.IOT_LPM_KEY);
String body = Util.json.object2Json(iotNodeInfo); String body = Util.json.object2Json(iotNodeInfo);

16
lmp_v0.3.9/src/com/lpro/iot/protocal/impl/ProtocalYinTlink.java

@ -12,7 +12,7 @@ import com.alibaba.fastjson.JSON;
import com.lpro.iot.bean.IotNodeInfo; import com.lpro.iot.bean.IotNodeInfo;
import com.lpro.iot.bean.IotNodeInfoBO; import com.lpro.iot.bean.IotNodeInfoBO;
import com.lpro.iot.bean.IotSensorInfo; import com.lpro.iot.bean.IotSensorInfo;
import com.lpro.iot.bean.ReturnObj; import com.lpro.iot.bean.ReturnNodeInfoObj;
import com.lpro.iot.common.Cache; import com.lpro.iot.common.Cache;
import com.lpro.iot.common.Code; import com.lpro.iot.common.Code;
import com.lpro.iot.common.Code.IOT_NODE_STATUS; import com.lpro.iot.common.Code.IOT_NODE_STATUS;
@ -39,7 +39,7 @@ public class ProtocalYinTlink implements Iprotocal {
* @param msg * @param msg
*/ */
@Override @Override
public void loginProtocal(IoSession session,byte[] data,String msg, ReturnObj obj){ public void loginProtocal(IoSession session,byte[] data,String msg, ReturnNodeInfoObj obj){
// 解析登录命令 // 解析登录命令
String deviceCode = msg; String deviceCode = msg;
// 这边对TLink协议的登录串数据不能超过个字节 // 这边对TLink协议的登录串数据不能超过个字节
@ -51,7 +51,7 @@ public class ProtocalYinTlink implements Iprotocal {
if(obj.getStatus() == Code.ResponseCode.OK+0){ if(obj.getStatus() == Code.ResponseCode.OK+0){
// 将devicecode放入session // 将devicecode放入session
session.setAttribute(Constants.DEVICECODE,deviceCode); session.setAttribute(Constants.DEVICE_CODE,deviceCode);
session.setAttribute("nodeINfo", obj.getData()) ; session.setAttribute("nodeINfo", obj.getData()) ;
// session // session
session.setAttribute("dataCache",""); session.setAttribute("dataCache","");
@ -61,7 +61,7 @@ public class ProtocalYinTlink implements Iprotocal {
// 这边判断设备是否有session连接存在着 // 这边判断设备是否有session连接存在着
if( Cache.nodeIdsessionMap.containsKey(deviceCode) ){ if( Cache.nodeIdsessionMap.containsKey(deviceCode) ){
Cache.nodeIdsessionMap.get(deviceCode).close(true) ; Cache.nodeIdsessionMap.get(deviceCode).close(true) ;
Cache.nodeIdsessionMap.get(deviceCode).removeAttribute(Constants.DEVICECODE) ; Cache.nodeIdsessionMap.get(deviceCode).removeAttribute(Constants.DEVICE_CODE) ;
session.close(true); session.close(true);
return ; return ;
} }
@ -85,7 +85,7 @@ public class ProtocalYinTlink implements Iprotocal {
return ; return ;
} }
// node id // node id
Object deviceCode = session.getAttribute(Constants.DEVICECODE); Object deviceCode = session.getAttribute(Constants.DEVICE_CODE);
String dataCache = (String) session.getAttribute("dataCache"); String dataCache = (String) session.getAttribute("dataCache");
if(ObjectUtil.isNotEmpty(dataCache)){ if(ObjectUtil.isNotEmpty(dataCache)){
msg = dataCache+msg ; msg = dataCache+msg ;
@ -120,7 +120,7 @@ public class ProtocalYinTlink implements Iprotocal {
String url = Constants.URL.SENSORS_DATA; String url = Constants.URL.SENSORS_DATA;
// 控制状态修改 // 控制状态修改
String[] reponse = HttpServiceSender.doPut(url, Config.IOT_USER_KEY, body); String[] reponse = HttpServiceSender.doPut(url, Config.IOT_USER_KEY, body);
ReturnObj re = (ReturnObj) Util.json.string2Object(reponse[1], ReturnObj.class); ReturnNodeInfoObj re = (ReturnNodeInfoObj) Util.json.string2Object(reponse[1], ReturnNodeInfoObj.class);
if(re.getStatus() == Code.DEVICE_STATUS.OFFLINE){ if(re.getStatus() == Code.DEVICE_STATUS.OFFLINE){
// 设备离线,需要重新登录一次 // 设备离线,需要重新登录一次
session.close(true); session.close(true);
@ -197,12 +197,12 @@ public class ProtocalYinTlink implements Iprotocal {
@Override @Override
public void logout(IoSession session) { public void logout(IoSession session) {
IotNodeInfo iotNodeInfo = new IotNodeInfo(); IotNodeInfo iotNodeInfo = new IotNodeInfo();
iotNodeInfo.setDevice_code( session.getAttribute(Constants.DEVICECODE) +""); ; iotNodeInfo.setDevice_code( session.getAttribute(Constants.DEVICE_CODE) +""); ;
iotNodeInfo.setIot_node_status(IOT_NODE_STATUS.offline); iotNodeInfo.setIot_node_status(IOT_NODE_STATUS.offline);
iotNodeInfo.setLpmKey(Config.IOT_LPM_KEY); iotNodeInfo.setLpmKey(Config.IOT_LPM_KEY);
String body = Util.json.object2Json(iotNodeInfo); String body = Util.json.object2Json(iotNodeInfo);
HttpServiceSender.doPut(Constants.URL.NODE_INFO, Config.IOT_USER_KEY, body); HttpServiceSender.doPut(Constants.URL.NODE_INFO, Config.IOT_USER_KEY, body);
// 再删除一遍 // 再删除一遍
Cache.nodeIdsessionMap.remove(session.getAttribute(Constants.DEVICECODE)); Cache.nodeIdsessionMap.remove(session.getAttribute(Constants.DEVICE_CODE));
} }
} }

17
lmp_v0.3.9/src/com/lpro/iot/protocal/impl/ProtocalYw.java

@ -17,7 +17,7 @@ import com.lpro.iot.bean.IotNodeInfo;
import com.lpro.iot.bean.IotNodeInfoBO; import com.lpro.iot.bean.IotNodeInfoBO;
import com.lpro.iot.bean.IotSensorInfo; import com.lpro.iot.bean.IotSensorInfo;
import com.lpro.iot.bean.IotSensorInfoBO; import com.lpro.iot.bean.IotSensorInfoBO;
import com.lpro.iot.bean.ReturnObj; import com.lpro.iot.bean.ReturnNodeInfoObj;
import com.lpro.iot.common.Cache; import com.lpro.iot.common.Cache;
import com.lpro.iot.common.Code; import com.lpro.iot.common.Code;
import com.lpro.iot.common.Code.IOT_NODE_STATUS; import com.lpro.iot.common.Code.IOT_NODE_STATUS;
@ -25,8 +25,7 @@ import com.lpro.iot.common.Config;
import com.lpro.iot.common.Constants; import com.lpro.iot.common.Constants;
import com.lpro.iot.mqtt.MqttService; import com.lpro.iot.mqtt.MqttService;
import com.lpro.iot.protocal.Iprotocal; import com.lpro.iot.protocal.Iprotocal;
import com.lpro.iot.server.MinaServer; import com.lpro.iot.server.MainServer;
import com.lpro.iot.server.ServerIoHandler;
import com.lpro.iot.utils.HttpServiceSender; import com.lpro.iot.utils.HttpServiceSender;
import com.lpro.iot.utils.ObjectUtil; import com.lpro.iot.utils.ObjectUtil;
import com.lpro.iot.utils.Util; import com.lpro.iot.utils.Util;
@ -70,7 +69,7 @@ public class ProtocalYw implements Iprotocal {
* @param msg * @param msg
*/ */
@Override @Override
public void loginProtocal(IoSession session,byte[] data,String msg, ReturnObj obj){ public void loginProtocal(IoSession session,byte[] data,String msg, ReturnNodeInfoObj obj){
// 解析登录命令 // 解析登录命令
String deviceCode = null ; String deviceCode = null ;
deviceCode = msg ; deviceCode = msg ;
@ -84,7 +83,7 @@ public class ProtocalYw implements Iprotocal {
if(obj.getStatus() == Code.ResponseCode.OK+0 ){ if(obj.getStatus() == Code.ResponseCode.OK+0 ){
// 将devicecode放入session // 将devicecode放入session
session.setAttribute(Constants.DEVICECODE , deviceCode); session.setAttribute(Constants.DEVICE_CODE, deviceCode);
session.setAttribute(Constants.NODE_INFO , obj.getData()) ; session.setAttribute(Constants.NODE_INFO , obj.getData()) ;
// session 数据缓存 // session 数据缓存
session.setAttribute(Constants.DATA_CACHE , "" ); session.setAttribute(Constants.DATA_CACHE , "" );
@ -93,7 +92,7 @@ public class ProtocalYw implements Iprotocal {
// 这边判断设备是否有session连接存在着 // 这边判断设备是否有session连接存在着
if( Cache.nodeIdsessionMap.containsKey(deviceCode) ){ if( Cache.nodeIdsessionMap.containsKey(deviceCode) ){
// 如果之前存在,则删除sesion的属性,并关闭会话 // 如果之前存在,则删除sesion的属性,并关闭会话
Cache.nodeIdsessionMap.get(deviceCode).removeAttribute(Constants.DEVICECODE); Cache.nodeIdsessionMap.get(deviceCode).removeAttribute(Constants.DEVICE_CODE);
Cache.nodeIdsessionMap.get(deviceCode).close(true) ; Cache.nodeIdsessionMap.get(deviceCode).close(true) ;
} }
Cache.nodeIdsessionMap.put(deviceCode , session) ; Cache.nodeIdsessionMap.put(deviceCode , session) ;
@ -173,7 +172,7 @@ public class ProtocalYw implements Iprotocal {
@Override @Override
public void analysisData(IoSession session, byte[] data, String msg) { public void analysisData(IoSession session, byte[] data, String msg) {
// node id // node id
Object deviceCode = session.getAttribute(Constants.DEVICECODE); Object deviceCode = session.getAttribute(Constants.DEVICE_CODE);
// 窗口调试,返回 // 窗口调试,返回
if(Cache.deviceMap.containsKey(deviceCode)){ if(Cache.deviceMap.containsKey(deviceCode)){
Map<String,String> map =new HashMap<>(); Map<String,String> map =new HashMap<>();
@ -210,7 +209,7 @@ public class ProtocalYw implements Iprotocal {
list.add(new IotSensorInfo(address, 3, battery, deviceCode.toString())) ; list.add(new IotSensorInfo(address, 3, battery, deviceCode.toString())) ;
// 上传 // 上传
// 放入到线程中走 // 放入到线程中走
MinaServer.threadPool.execute(new Runnable() { MainServer.threadPool.execute(new Runnable() {
@Override @Override
public void run() { public void run() {
String body = Util.json.object2Json(list); String body = Util.json.object2Json(list);
@ -298,7 +297,7 @@ public class ProtocalYw implements Iprotocal {
@Override @Override
public void logout(IoSession session) { public void logout(IoSession session) {
IotNodeInfo iotNodeInfo = new IotNodeInfo(); IotNodeInfo iotNodeInfo = new IotNodeInfo();
iotNodeInfo.setDevice_code( session.getAttribute(Constants.DEVICECODE) +""); ; iotNodeInfo.setDevice_code( session.getAttribute(Constants.DEVICE_CODE) +""); ;
iotNodeInfo.setIot_node_status(IOT_NODE_STATUS.offline); iotNodeInfo.setIot_node_status(IOT_NODE_STATUS.offline);
iotNodeInfo.setLpmKey(Config.IOT_LPM_KEY); iotNodeInfo.setLpmKey(Config.IOT_LPM_KEY);
String body = Util.json.object2Json(iotNodeInfo); String body = Util.json.object2Json(iotNodeInfo);

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save