@@ -296,6 +296,7 @@ def print_header():
296296 *
297297 *******************************************************************************
298298 * Automatically generated from {}
299+ * CubeMX DB version {} release {}
299300 */
300301#include "Arduino.h"
301302#include "{}.h"
@@ -314,6 +315,8 @@ def print_header():
314315""" .format (
315316 datetime .datetime .now ().year ,
316317 os .path .basename (input_file_name ),
318+ cubemx_db_version ,
319+ cubemx_db_release ,
317320 re .sub ("\\ .c$" , "" , out_c_filename ),
318321 )
319322 out_c_file .write (s )
@@ -976,20 +979,18 @@ def parse_pins():
976979 config_file = open (config_filename , "w" , newline = "\n " )
977980 if sys .platform .startswith ("win32" ):
978981 print ("Platform is Windows" )
979- cubemxdir = (
980- "C:\\ Program Files\\ STMicroelectronics\\ STM32Cube\\ STM32CubeMX\\ db\\ mcu"
981- )
982+ cubemxdir = "C:\\ Program Files\\ STMicroelectronics\\ STM32Cube\\ STM32CubeMX"
982983 elif sys .platform .startswith ("linux" ):
983984 print ("Platform is Linux" )
984- cubemxdir = os .getenv ("HOME" ) + "/STM32CubeMX/db/mcu "
985+ cubemxdir = os .getenv ("HOME" ) + "/STM32CubeMX"
985986 elif sys .platform .startswith ("darwin" ):
986987 print ("Platform is Mac OSX" )
987988 cubemxdir = (
988- "/Applications/STMicroelectronics/STM32CubeMX.app/Contents/Resources/db/mcu "
989+ "/Applications/STMicroelectronics/STM32CubeMX.app/Contents/Resources"
989990 )
990991 else :
991992 print ("Platform unknown" )
992- cubemxdir = "<Set CubeMX install directory>/db/mcu "
993+ cubemxdir = "<Set CubeMX install directory>"
993994 config_file .write (json .dumps ({"CUBEMX_DIRECTORY" : cubemxdir }))
994995 config_file .close ()
995996 exit (1 )
@@ -1049,21 +1050,33 @@ def parse_pins():
10491050 )
10501051 quit ()
10511052
1052- cubemxdirIP = os .path .join (cubemxdir , "IP" )
1053+ cubemxdirMCU = os .path .join (cubemxdir , "db" , "mcu" )
1054+ cubemxdirIP = os .path .join (cubemxdirMCU , "IP" )
1055+ version_file = os .path .join (cubemxdir , "db" , "package.xml" )
1056+ cubemx_db_version = "Unknown"
1057+ cubemx_db_release = "Unknown"
1058+ xml_file = parse (version_file )
1059+ Package_item = xml_file .getElementsByTagName ("Package" )
1060+ for item in Package_item :
1061+ cubemx_db_version = item .attributes ["DBVersion" ].value
1062+ PackDescription_item = xml_file .getElementsByTagName ("PackDescription" )
1063+ for item in PackDescription_item :
1064+ cubemx_db_release = item .attributes ["Release" ].value
1065+ print ("CubeMX DB version {} release {}\n " .format (cubemx_db_version , cubemx_db_release ))
10531066
10541067if args .mcu :
10551068 # check input file exists
1056- if not (os .path .isfile (os .path .join (cubemxdir , args .mcu ))):
1069+ if not (os .path .isfile (os .path .join (cubemxdirMCU , args .mcu ))):
10571070 print ("\n " + args .mcu + " file not found" )
1058- print ("\n Check in " + cubemxdir + " the correct name of this file" )
1071+ print ("\n Check in " + cubemxdirMCU + " the correct name of this file" )
10591072 print ("\n You may use double quotes for file containing special characters" )
10601073 quit ()
10611074 mcu_list .append (args .mcu )
10621075else :
1063- mcu_list = fnmatch .filter (os .listdir (cubemxdir ), "STM32*.xml" )
1076+ mcu_list = fnmatch .filter (os .listdir (cubemxdirMCU ), "STM32*.xml" )
10641077
10651078if args .list :
1066- print ("Available xml files description: {}" . format ( mcu_list ) )
1079+ print ("Available xml files description:" )
10671080 for f in mcu_list :
10681081 print (f )
10691082 quit ()
@@ -1074,7 +1087,7 @@ def parse_pins():
10741087 out_c_filename , out_h_filename , mcu_file
10751088 )
10761089 )
1077- input_file_name = os .path .join (cubemxdir , mcu_file )
1090+ input_file_name = os .path .join (cubemxdirMCU , mcu_file )
10781091 out_path = os .path .join (
10791092 cur_dir ,
10801093 "Arduino" ,
0 commit comments