Subversion Repositories HomeAutomation

Rev

Rev 2006 | Rev 2137 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed

Rev 2006 Rev 2127
Line 38... Line 38...
38
		if line.find(moduleName + "_ID") != -1:
38
		if line.find(moduleName + "_ID") != -1:
39
			parts = line.split("=")
39
			parts = line.split("=")
40
			if parts[1].strip(" ") != -1 and parts[1].strip(" ") != "<ID>":
40
			if parts[1].strip(" ") != -1 and parts[1].strip(" ") != "<ID>":
41
				takenIds.append(int(parts[1].strip(" "), 16))
41
				takenIds.append(int(parts[1].strip(" "), 16))
42
				print "Found id: "+parts[1].strip(" ")+" in file: "+fileName+" for module: "+moduleName
42
				print "Found id: "+parts[1].strip(" ")+" in file: "+fileName+" for module: "+moduleName
-
 
43
	
43
	return takenIds
44
	return takenIds
44
 
45
 
45
 
46
 
46
def getModuleIdsFromFile(moduleName):
47
def getModuleIdsFromFile(moduleName):
47
	takenIds = []
48
	takenIds = []
48
	for applicationName in os.listdir("../"):	
49
	for applicationName in os.listdir("../"):	
49
		if applicationName[0] != '.' and os.path.exists("../" + applicationName + "/config.inc"):
50
		if applicationName[0] != '.' and os.path.exists("../" + applicationName + "/config.inc"):
50
			takenIds = parseModuleIdFromFile(moduleName, "../" + applicationName + "/config.inc")
51
			takenIds += parseModuleIdFromFile(moduleName, "../" + applicationName + "/config.inc")
51
 
-
 
52
	return takenIds
52
	return takenIds
53
	
53
	
54
def parseAllModuleIdFromFile(fileName, foundModules):
54
def parseAllModuleIdFromFile(fileName, foundModules):
55
	index = 0
55
	index = 0
56
	modules = getModules()
56
	modules = getModules()
Line 98... Line 98...
98
 
98
 
99
def getFreeModuleId(takenIds):
99
def getFreeModuleId(takenIds):
100
	if len(takenIds) == 0:
100
	if len(takenIds) == 0:
101
		return 1
101
		return 1
102
	takenIds.sort()
102
	takenIds.sort()
103
 
-
 
104
	lastId = 0
103
	lastId = 0
105
 
104
 
106
	for takenId in takenIds:
105
	for takenId in takenIds:
107
		if takenId != lastId+1:
106
		if ((takenId != lastId+1) & (takenId != lastId)):
108
			return lastId+1
107
			return lastId+1
109
		lastId = takenId
108
		lastId = takenId
110
 
109
 
111
	return lastId+1
110
	return lastId+1
112
 
-
 
113
 
111
	
114
 
112
 
115
def compileMainFile():
113
def compileMainFile():
116
	print "Compiling new main.c..."
114
	print "Compiling new main.c..."
117
	main_c_template = open('src/main.c.template', 'r') 
115
	main_c_template = open('src/main.c.template', 'r') 
Line 206... Line 204...
206
		for line in moduleSection:
204
		for line in moduleSection:
207
			if len(line) > 0:
205
			if len(line) > 0:
208
				if line[0] != '#':
206
				if line[0] != '#':
209
					if line.find("<ID>") != -1:
207
					if line.find("<ID>") != -1:
210
						new_ID = getFreeModuleId(moduleIds)
208
						new_ID = getFreeModuleId(moduleIds)
211
						print "id = "+hex(new_ID)
209
						print "\nNew module id set to: "+hex(new_ID)+"\n"
212
						moduleIds.append(new_ID)
210
						moduleIds.append(new_ID)
213
						line = line.replace("<ID>", hex(new_ID))
211
						line = line.replace("<ID>", hex(new_ID))
214
					elif line.find("<TIMER>") != -1:
212
					elif line.find("<TIMER>") != -1:
215
						line = line[:line.find("=")+1] + hex(timers) + " /* <TIMER> -- DO NOT REMOVE THIS COMMENT -- */"
213
						line = line[:line.find("=")+1] + hex(timers) + " /* <TIMER> -- DO NOT REMOVE THIS COMMENT -- */"
216
						timers += 1
214
						timers += 1