Exemple #1
0
// we use the timestamps from our hardware and must handle
// the overflow every 60000ms
static LONGLONG GetSysTimestamp(LONG Timestamp)
{
    static LONGLONG oldTickCount = MyGetTickCount();
    static LONGLONG oldTimestamp = 0, sysTimestamp = oldTickCount;
    LONGLONG timeDiff, newTickCount, temp;

    newTickCount = MyGetTickCount();
    temp = (newTickCount - oldTickCount) / 60000;  // minutes since last read

    // for Tx
    if (Timestamp == ~0)
    {
        return sysTimestamp + (newTickCount - oldTickCount) + (temp * 60000);
    }

    // for Rx
    oldTickCount = newTickCount;

    if (Timestamp < oldTimestamp)
    {
        timeDiff = (60000 - oldTimestamp) + Timestamp;
    }
    else
    {
        timeDiff = Timestamp - oldTimestamp;
    }
    oldTimestamp = Timestamp;

    timeDiff += (temp * 60000);
    sysTimestamp += timeDiff;

    return sysTimestamp;
}
Exemple #2
0
void CTcpView::CallBackData(char* pBuf, UINT nLen, long nConnectHandle, int nAction,int nType)
{
	CTradePackData* pTradePackData = new CTradePackData();
	pTradePackData->m_nTickCount = MyGetTickCount();
	pTradePackData->m_nThreadId = GetCurrentThreadId();
	pTradePackData->m_pBuf = pBuf;
	pTradePackData->m_nLen = nLen;
	pTradePackData->m_nConnectHandle = nConnectHandle;
	pTradePackData->m_nAction = nAction;
	pTradePackData->m_nType = nType;
	m_TradePackDataList.Add(pTradePackData);
	this->PostMessage(WM_TRADE_CALLBACK, 0, (LPARAM)pTradePackData);
}