|
|
@ -76,7 +76,11 @@ void ZFPGACommander::initialize() { |
|
|
|
})); |
|
|
|
m_online_detect_thread.reset(new thread([this]() { |
|
|
|
while (true) { |
|
|
|
this_thread::sleep_for(chrono::milliseconds(500)); |
|
|
|
if (!isconnected) { |
|
|
|
this_thread::sleep_for(chrono::milliseconds(100)); |
|
|
|
} else { |
|
|
|
this_thread::sleep_for(chrono::milliseconds(3000)); |
|
|
|
} |
|
|
|
bool tostate = false; |
|
|
|
if (ping()) { |
|
|
|
tostate = true; |
|
|
@ -214,7 +218,6 @@ shared_ptr<Receipt> ZFPGACommander::sendPacket(zaf_packet_header_t *packet, uint |
|
|
|
void ZFPGACommander::writeReg(uint32_t regadd, uint32_t regvalue, uint32_t ®backvalue, int32_t overtime_ms) { |
|
|
|
lock_guard<recursive_mutex> lock(m_tx_lock); |
|
|
|
|
|
|
|
|
|
|
|
Reginfo *reg = GetRegInfo(regadd); |
|
|
|
|
|
|
|
if (reg->flag & kreg_flag_force_write) { |
|
|
@ -229,8 +232,7 @@ void ZFPGACommander::writeReg(uint32_t regadd, uint32_t regvalue, uint32_t ®b |
|
|
|
return; |
|
|
|
} |
|
|
|
void ZFPGACommander::readReg(uint32_t regadd, uint32_t ®value, int32_t overtime_ms) { |
|
|
|
lock_guard<recursive_mutex> lock(m_tx_lock); |
|
|
|
|
|
|
|
lock_guard<recursive_mutex> lock(m_tx_lock); |
|
|
|
|
|
|
|
Reginfo *reg = GetRegInfo(regadd); |
|
|
|
|
|
|
@ -326,10 +328,16 @@ void ZFPGACommander::RegInfo_Reset() { |
|
|
|
void ZFPGACommander::readFPGAVersion(Version &version) { |
|
|
|
uint32_t version32; |
|
|
|
readReg(kreg_fpga_version, version32, 100); |
|
|
|
version.main = VERSION_MAIN(version32); |
|
|
|
version.sub = VERSION_SUB(version32); |
|
|
|
version.fix = VERSION_FIX(version32); |
|
|
|
} |
|
|
|
void ZFPGACommander::readStm32Version(Version &version) { |
|
|
|
uint32_t version32; |
|
|
|
readReg(kreg_software_version, version32, 10); |
|
|
|
version.main = VERSION_MAIN(version32); |
|
|
|
version.sub = VERSION_SUB(version32); |
|
|
|
version.fix = VERSION_FIX(version32); |
|
|
|
} |
|
|
|
|
|
|
|
bool ZFPGACommander::ping() { |
|
|
@ -344,7 +352,6 @@ bool ZFPGACommander::ping() { |
|
|
|
void ZFPGACommander::callcmd(uint32_t cmd, uint32_t delayms) { |
|
|
|
lock_guard<recursive_mutex> lock(m_tx_lock); |
|
|
|
|
|
|
|
|
|
|
|
uint8_t txdata[128] = {0}; |
|
|
|
|
|
|
|
zaf_packet_header_t *txpacket = (zaf_packet_header_t *)txdata; |
|
|
|