Browse Source

update

master
zhaohe 2 years ago
parent
commit
1a45d81ad9
  1. 52
      components/dwin/dwin_screen.cpp
  2. 1
      components/dwin/dwin_screen.hpp

52
components/dwin/dwin_screen.cpp

@ -17,6 +17,13 @@ using namespace std;
DwinScreen& DwinScreen::ins() { return g_dwinScreen; }
static void dumphex(uint8_t* data, size_t len) {
printf("(%d)", len);
for (size_t i = 0; i < len; i++) {
printf("%02X ", data[i]);
}
printf("\n");
}
void DwinScreen::init(UART_HandleTypeDef* huart, map<string, DwinRamManager*>& rammanager) {
m_huart = huart;
// m_dwcfg = dwcfg;
@ -35,11 +42,11 @@ void DwinScreen::init(UART_HandleTypeDef* huart, map<string, DwinRamManager*>& r
if (txcontext.receipt_ready_flag) {
return;
}
// dumphex(data, len);
memcpy(txcontext.receiptcache, data, len);
txcontext.receiptlen = len;
txcontext.receipt_ready_flag = true;
});
// m_rammanager.init(dwcfg.freeRawStartAddr, dwcfg.freeRawEndAddr);
// m_textDisplayerManager.init(dwcfg.textDisplayerStartAddr, dwcfg.textDisplayerEndAddr);
// m_varIconManager.init(dwcfg.varIconStartAddr, dwcfg.varIconEndAddr);
@ -101,7 +108,6 @@ bool DwinScreen::sendcmdblock(int overtime) {
// zos_delay(1);
// HAL_Delay(1);
osDelay(1);
}
}
return false;
@ -156,7 +162,10 @@ bool DwinScreen::read_varspace(uint16_t regaddr, uint8_t* data, uint8_t len, int
ZLOGE(TAG, "read_varspace failed");
return false;
}
// ZLOGI(TAG, "read_varspace success %d", txcontext.receiptlen);
memcpy(data, &txcontext.receiptcache[7], len);
return true;
}
@ -205,6 +214,15 @@ bool DwinScreen::read_varspace16_muti(uint16_t regaddr, uint16_t* data, size_t n
return true;
}
bool DwinScreen::read_varspace8_muti(uint16_t regaddr, uint8_t* data, size_t n8, int overtime) {
// TODO: CHECK BUFSIZE
memset(m_rd_pre_processcache, 0, sizeof(m_rd_pre_processcache));
bool suc = read_varspace(regaddr, m_rd_pre_processcache, n8, overtime);
memcpy(data, m_rd_pre_processcache, n8);
if (!suc) return false;
return true;
}
bool DwinScreen::read_varspace16(uint16_t regaddr, uint16_t& data, int overtime) {
uint8_t data8[2];
bool suc = read_varspace(regaddr, data8, 2, overtime);
@ -332,25 +350,19 @@ bool DwinScreen::set_rtc(uint16_t year, uint16_t month, uint16_t day, uint16_t h
}
bool DwinScreen::get_rtc(Date* date) {
uint16_t data[4] = {0};
bool suc = read_varspace16_muti(0x10, data, 4, 10);
// printf("data[0]:%04X data[1]:%04X data[2]:%04X data[3]:%04X\n", data[0], data[1], data[2], data[3]);
// date->year = (data[0] >> 8) + 2000;
// date->month = data[0] & 0xFF;
// date->day = data[1] >> 8;
// date->weekdaynum = data[1] & 0xFF;
// date->hour = data[2] >> 8;
// date->minute = data[2] & 0xFF;
// date->second = data[3] >> 8;
uint8_t data[8] = {0};
bool suc = read_varspace8_muti(0x10, data, 8, 10);
// dumphex(data, 8);
if (!suc) return false;
date->year = (data[0] & 0xff) + 2000;
date->month = data[1] >> 8;
date->day = data[1] & 0xFF;
date->weekdaynum = data[2] >> 8;
date->hour = data[2] & 0xFF;
date->minute = data[3] >> 8;
date->second = data[3] & 0xFF;
printf("year:%d month:%d day:%d weekdaynum:%d hour:%d minute:%d second:%d\n", //
date->year, date->month, date->day, date->weekdaynum, date->hour, date->minute, date->second);
date->month = data[1];
date->day = data[2];
date->weekdaynum = data[3];
date->hour = data[4];
date->minute = data[5];
date->second = data[6];
// printf("year:%d month:%d day:%d weekdaynum:%d hour:%d minute:%d second:%d\n", //
// date->year, date->month, date->day, date->weekdaynum, date->hour, date->minute, date->second);
return suc;
}

1
components/dwin/dwin_screen.hpp

@ -136,6 +136,7 @@ class DwinScreen {
bool write_varspace8(uint16_t regaddr, uint16_t subadd, uint16_t data, int overtime);
bool read_varspace8(uint16_t regaddr, uint16_t subadd, uint16_t& data, int overtime);
bool read_varspace8_muti(uint16_t regaddr, uint8_t* data, size_t n8, int overtime);
bool write_varspace(uint16_t regaddr, uint8_t* data, uint8_t len, int overtime);
bool read_varspace(uint16_t regaddr, uint8_t* data, uint8_t len, int overtime);

Loading…
Cancel
Save