Beispiel #1
0
void Persistent::pageCopy(uint8_t* dst, uint8_t* src) {
	uint8_t* tagAddress;
	pageInit(dst, _sequence + 1);
	for (uint8_t tag = 0; tag < 10; tag++) {
		if (pageFindTag(src, tag, &tagAddress))
			pagePutTag(dst, tag, tagAddress + 4, ((Header*)tagAddress)->used);
	}
}
Beispiel #2
0
// general purpose return code, true by default, false in case of some failure
bool UI::drawPage(uint16_t id) {
	m_page = id;
	m_butCount = 0;
	switch (id) {
		case PAGE_INIT: return pageInit();
		case PAGE_MAIN: pageMain(); break;
		case PAGE_MEASURE: pageMeasure(); break;
		case PAGE_MONITOR: pageMonitor(); break;
		case PAGE_SETTINGS: pageSettings(); break;
		case PAGE_CALIBRATE: pageCalibrate(); break;
		case PAGE_WLAN: pageWLAN(); break;
	}
	return true;
}
Beispiel #3
0
void Persistent::pageFindActive() {
	uint8_t* page;
	uint32_t* activePage = 0;
	uint32_t sequence=0;
	for (page = _flashStart; page < _flashEnd; page += 0x400) {
		if (pageIsUsed(page))
			if (*(uint32_t*) page != 0xFFFFFFFF
					&& *(uint32_t*) (page + 4) == 0xFFFFFFFF)
				if (*page >= sequence) {
					activePage = (uint32_t*)page;
					sequence = *page;
				}
	}
	if (activePage) {
		_pageActive = (uint8_t*)activePage;
		_sequence = sequence;
	} else {
		_pageActive = _flashStart;
		_sequence = 0;
		pageInit(_pageActive, _sequence);
	}

}