123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232 |
- #include "StdAfx.h"
- #include "BikeCadenceDisplay.h"
- void BikeCadenceDisplay::ANT_eventNotification(UCHAR ucEventCode_, UCHAR* pucEventBuffer_)
- {
- switch(ucEventCode_)
- {
- case EVENT_RX_ACKNOWLEDGED:
- case EVENT_RX_BURST_PACKET:
- case EVENT_RX_BROADCAST:
- HandleReceive((UCHAR*) pucEventBuffer_);
- break;
- default:
- break;
- }
- }
- void BikeCadenceDisplay::InitializeSim()
- {
- ucStatePage = BC_INIT_PAGE;
- usEventCount = 0;
- usPreviousEventCount = 0;
- usTime1024 = 0;
- usPreviousTime1024 = 0;
- ulElapsedTime2 = 0;
- bCoast = FALSE;
- ulAcumEventCount = 0;
- ulAcumTime1024 = 0;
- ucCadence = 0;
- ucMfgID = 0;
- ucHwVersion = 0;
- ucSwVersion = 0;
- ucModelNum = 0;
- usSerialNum = 0;
- }
- void BikeCadenceDisplay::HandleReceive(UCHAR* pucRxBuffer_)
- {
- static UCHAR ucNoEventCount = 0;
- UCHAR ucPageNum = 0;
- USHORT usEventDiff = 0;
- USHORT usTimeDiff1024 = 0;
-
- if(ucStatePage != BC_EXT_PAGE)
- {
- if(ucStatePage == BC_INIT_PAGE)
- {
- ucStatePage = (pucRxBuffer_[0] & BC_TOGGLE_MASK) >>7;
-
- usPreviousTime1024 = pucRxBuffer_[4];
- usPreviousTime1024 += pucRxBuffer_[5]<<8;
- usPreviousEventCount = pucRxBuffer_[6];
- usPreviousEventCount += pucRxBuffer_[7]<<8;
- }
- else if(ucStatePage != ((pucRxBuffer_[0] & BC_TOGGLE_MASK) >>7))
- {
-
- ucStatePage = BC_EXT_PAGE;
- }
- }
-
- ucPageNum = pucRxBuffer_[0] & ~BC_TOGGLE_MASK;
-
-
- usEventCount = pucRxBuffer_[6];
- usEventCount += pucRxBuffer_[7]<<8;
- usTime1024 = pucRxBuffer_[4];
- usTime1024 += pucRxBuffer_[5]<<8;
-
- if(ucStatePage == BC_EXT_PAGE)
- {
- switch(ucPageNum)
- {
- case BC_PAGE1:
-
- ulElapsedTime2 = pucRxBuffer_[1];
- ulElapsedTime2 += pucRxBuffer_[2] << 8;
- ulElapsedTime2 += pucRxBuffer_[3] << 16;
- break;
- case BC_PAGE2:
-
- ucMfgID = pucRxBuffer_[1];
- usSerialNum = pucRxBuffer_[2];
- usSerialNum += pucRxBuffer_[3] << 8;
- break;
- case BC_PAGE3:
-
- ucHwVersion = pucRxBuffer_[1];
- ucSwVersion = pucRxBuffer_[2];
- ucModelNum = pucRxBuffer_[3];
- break;
- default:
- break;
- }
- }
-
- if(usEventCount != usPreviousEventCount)
- {
- ucNoEventCount = 0;
- bCoast = FALSE;
-
- if(usEventCount > usPreviousEventCount)
- usEventDiff = usEventCount - usPreviousEventCount;
- else
- usEventDiff = (USHORT) (0xFFFF - usPreviousEventCount + usEventCount + 1);
- ulAcumEventCount += usEventDiff;
-
- if(usTime1024 > usPreviousTime1024)
- usTimeDiff1024 = usTime1024 - usPreviousTime1024;
- else
- usTimeDiff1024 = (USHORT) (0xFFFF - usPreviousTime1024 + usTime1024 + 1);
- ulAcumTime1024 += usTimeDiff1024;
-
- if(usTimeDiff1024 > 0)
- ucCadence = (UCHAR) ( ((ULONG) usEventDiff * 0xF000) / (ULONG) usTimeDiff1024 );
- }
- else
- {
- ucNoEventCount++;
- if(ucNoEventCount >= MAX_NO_EVENTS)
- bCoast = TRUE;
- }
-
-
- UpdateDisplay(ucPageNum);
-
-
- usPreviousEventCount = usEventCount;
- usPreviousTime1024 = usTime1024;
- }
- void BikeCadenceDisplay::UpdateDisplay(UCHAR ucPageNum_)
- {
-
- this->label_Trn_TimeDisplay->Text = usTime1024.ToString();
- this->label_Trn_EventCountDisplay->Text = usEventCount.ToString();
- this->label_Coasting->Visible = (bCoast == TRUE);
-
- if(ucStatePage == BC_EXT_PAGE)
- {
- this->label_Calc_waitToggle->Visible = false;
- switch(ucPageNum_)
- {
- case BC_PAGE1:
- this->label_Glb_BattTimeDisplay->Text = (ulElapsedTime2*2).ToString();
- break;
- case BC_PAGE2:
- this->label_Glb_ManfIDDisplay->Text = ucMfgID.ToString();
- this->label_Glb_SerialNumDisplay->Text = usSerialNum.ToString();
- break;
- case BC_PAGE3:
- this->label_Glb_HardwareVerDisplay->Text = ucHwVersion.ToString();
- this->label_Glb_SoftwareVerDisplay->Text = ucSwVersion.ToString();
- this->label_Glb_ModelNumDisplay->Text = ucModelNum.ToString();
- break;
- default:
- break;
- }
- }
-
-
-
- this->label_Calc_ElapsedSecsDisplay->Text = System::Math::Round((DOUBLE) ulAcumTime1024/1024,3).ToString();
-
- this->label_Calc_TotEventCountDisplay->Text = ulAcumEventCount.ToString();
-
- this->label_Calc_CadenceDisplay->Text = ucCadence.ToString();
- }
|