unsigned long TestHooks::TSK_pvg_send_msg_ex(unsigned long p1, unsigned long p2) { unsigned long res=0; res = m_TSK_pvg_send_msg_ex_fn(p1, p2); logMessageEx("--- TestHooks::TSK_pvg_send_msg_ex %08x, %08x -> %08x", p1, p2, res); return res; }
unsigned long IopSimHooks::TSK_pvg_send_msg_ex(unsigned long p1, unsigned long p2) { unsigned long res=0; lock(); //logMessageEx("--- IopSimHooks::TSK_pvg_send_msg_ex IN %08x, %08x", p1, p2); if(0x12 == p1) { static bool first_message=true; unsigned long* addr = (unsigned long* )p2; unsigned long addr_msg = *addr; unsigned long msg_type = *(unsigned long*)(addr_msg+1*4); //logMessageEx("--- IopSimHooks::TSK_pvg_send_msg_ex msg_type %08x", msg_type); if(0 == msg_type) { send_msg_ex_0x12* pmsg = (send_msg_ex_0x12*)(addr_msg+0x0b); #if 0 logMessageEx("--- IopSimHooks::TSK_pvg_send_msg_ex lat=%f, lon=%f, spe=%f head=%f vs=%f, alt=%f, alt2=%f", pmsg->latitude*RAD2DEG, pmsg->longitude*RAD2DEG, pmsg->speed, pmsg->heading*RAD2DEG, pmsg->verticalSpeed, pmsg->altitude, pmsg->altitude2); #endif if(first_message) { m_altitude2 = pmsg->altitude2; first_message = false; } pmsg->altitude = m_altitude; pmsg->altitude2 = m_altitude + m_altitude2; pmsg->speed = m_speed; pmsg->heading = m_heading; pmsg->latitude = m_latitude; pmsg->longitude = m_longitude; } } res = m_TSK_pvg_send_msg_ex_fn(p1, p2); //logMessageEx("--- IopSimHooks::TSK_pvg_send_msg_ex OUT %08x, %08x -> %08x", p1, p2, res); unlock(); return res; }