guohui лет назад: 2
Родитель
Сommit
2ad78c786a

+ 21 - 9
04-源码/03-核心板/tools/merge/merge.cpp

@@ -6,6 +6,8 @@
 static void print_md5(md5_t* m)
 {
 	int i;
+
+	printf("md5:");
 	for (i = 0; i < 32; i++) {
 		printf("%c", m->data[i]);
 	}
@@ -13,10 +15,11 @@ static void print_md5(md5_t* m)
 static void print_info(const char* s, upgrade_file_t* hdr, md5_t *m)
 {
 	printf("\n");
-	printf("__%s__hdr.magic:		0x%08x\n",  s, hdr->magic);
+	printf("__%s__hdr.magic:        0x%08x\n",  s, hdr->magic);
 	printf("__%s__hdr.obj.num:      %d\n",		s, hdr->obj.num);
 	printf("__%s__hdr.obj.stra:     %d\n",		s, hdr->obj.stra);
-	printf("__%s__hdr.obj.addr:     %d\n",		s, hdr->obj.addr);
+	printf("__%s__hdr.obj.obj1:     %s\n",		s, hdr->obj.obj1);
+	printf("__%s__hdr.obj.obj2:     %s\n",		s, hdr->obj.obj2);
 	print_md5(m);
 }
 
@@ -40,15 +43,16 @@ int main(char argc, char *argv[])
 	//GetCurrentDirectory(500, curPath);
 	//_tprintf(_T("curPath: %s\n"), curPath);
     
-	if(argc<4) {
-		printf("usage: pack num stra addr packageFile\n");
+	if(argc<5) {
+		printf("usage: pack num stra obj1 obj2 packageFile\n");
 		return -1;
 	}
 
 	obj.num  = (uint8_t)atoi(argv[1]);
 	obj.stra = (uint8_t)atoi(argv[2]);
-	obj.addr = (uint8_t)atoi(argv[3]);
-	path = argv[4];
+	strcpy_s(obj.obj1, sizeof(obj.obj1), argv[3]);
+	strcpy_s(obj.obj2, sizeof(obj.obj2), argv[4]);
+	path = argv[5];
 
 	xPath = mf.char_to_tchar(path);
 	if (!xPath) {
@@ -58,8 +62,17 @@ int main(char argc, char *argv[])
 
 	strcpy(newPath, path);
 	char* dot = strrchr(newPath, '/');
-	if (dot) *(dot + 1) = 0;
-	strcat(newPath, "pdupkg");
+	if (!dot) {
+		dot = strrchr(newPath, '\\');
+	}
+
+	if (dot) {
+		*(dot + 1) = 0;
+		strcat(newPath, "pdupkg");
+	}
+	else {
+		strcat(newPath, "./pdupkg");
+	}
 
 	fp = fopen(newPath, "wb");
 	if (!fp) {
@@ -74,7 +87,6 @@ int main(char argc, char *argv[])
 
 	hdr.magic = UPG_FILE_MAGIC;
 	hdr.obj = obj;
-	
 
 	md5_calc(&hdr, sizeof(hdr), nd.pbuf, nd.dlen, (char*)md5.data);
 	fwrite(&hdr, 1, sizeof(hdr), fp);

BIN
04-源码/03-核心板/tools/merge/merge.exe


+ 3 - 3
04-源码/03-核心板/tools/merge/merge.vcxproj

@@ -104,12 +104,12 @@
       <SDLCheck>true</SDLCheck>
       <PreprocessorDefinitions>_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <ConformanceMode>true</ConformanceMode>
-      <AdditionalIncludeDirectories>../../../smart_pdu/upgrade</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>../../upgd</AdditionalIncludeDirectories>
     </ClCompile>
     <Link>
       <SubSystem>Console</SubSystem>
       <GenerateDebugInformation>true</GenerateDebugInformation>
-      <OutputFile>../$(TargetName)$(TargetExt)</OutputFile>
+      <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
     </Link>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -129,7 +129,7 @@
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup>
-    <ClCompile Include="..\..\..\smart_pdu\upgrade\md5.c" />
+    <ClCompile Include="..\..\upgd\md5.c" />
     <ClCompile Include="merge.cpp" />
     <ClCompile Include="myFile.cpp" />
   </ItemGroup>

+ 1 - 1
04-源码/03-核心板/tools/merge/merge.vcxproj.filters

@@ -21,7 +21,7 @@
     <ClCompile Include="myFile.cpp">
       <Filter>源文件</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\smart_pdu\upgrade\md5.c">
+    <ClCompile Include="..\..\upgd\md5.c">
       <Filter>源文件</Filter>
     </ClCompile>
   </ItemGroup>

+ 30 - 0
04-源码/03-核心板/tools/pack.bat

@@ -0,0 +1,30 @@
+@ECHO OFF
+
+SET NUM=%~1
+SET STRA=%~2
+SET OBJ1=%~3
+SET OBJ2=%~4
+
+SET RM=DEL /Q
+SET TAR=TAR  -cjf
+SET MER=merge\merge
+SET TMP=xxx
+
+SET TARGET=pdupkg
+SET OUTEDIR=..\output
+
+%RM% %OUTEDIR%\%TMP%
+
+%TAR% %OUTEDIR%\%TMP% %OUTEDIR%\base\*
+IF %ERRORLEVEL% NEQ 0 (
+    ECHO tar failed
+    EXIT /B 1
+)
+
+echo on
+%MER%  %NUM% %STRA% %OBJ1% %OBJ2% %OUTEDIR%\%TMP%
+IF %ERRORLEVEL% NEQ 0 (
+    ECHO merge failed
+    EXIT /B 1
+)
+

+ 6 - 0
04-源码/03-核心板/tools/readme.txt

@@ -0,0 +1,6 @@
+ 用法:pack num stra obj1 obj2
+
+num:  0: 单个升  1: 批量升  2: 全部升
+stra:   0:升旧版  1: 强制升
+obj1:  一级设备名或地址
+obj2:  二级设备名或地址

+ 5 - 10
04-源码/03-核心板/upgd/upgrade.h

@@ -50,13 +50,6 @@ enum {  //升级对象object, 可以同时升级多个
 	UPGRADE_OBJ_APP=(1<<2),
 };
 
-enum {  //升级设备类型device type
-	UPGRADE_DEV_PWR=0,						//电源板
-	UPGRADE_DEV_HDR,						//表头
-
-	UPGRADE_DEV_MAX
-};
-
 enum {  //升级策略strategy
 	UPGRADE_STRA_OLD=0,						//升级版本或编译/修改时间较老的设备
 	UPGRADE_STRA_FORCE,						//强制升级
@@ -82,10 +75,12 @@ enum {  //升级进度step
 };
 
 #pragma pack(1)
+
 typedef struct {    //升级目标数据结构
-    uint8_t			num;					//device number
-    uint8_t			stra;					//device strategy
-	uint8_t			addr;					//device modbus addr
+    uint8_t			num;					//obj number
+    uint8_t			stra;					//obj strategy
+	char			obj1[64];				//obj1 addr or name
+	char			obj2[64];				//obj2 addr or name
 }upgrade_obj_t;
 
 typedef struct {