static void BackupLog( const char *log_name, unsigned copies ) { char buff[_MAX_PATH2]; char *drive; char *dir; char *fn; char *ext; char old_name[_MAX_PATH]; char new_name[_MAX_PATH]; char temp_ext[5]; if( copies > MAX_BACKUP ) copies = MAX_BACKUP; if( copies == 0 ) { remove( log_name ); return; } _splitpath2( log_name, buff, &drive, &dir, &fn, &ext ); while( copies != 0 ) { PutNumber( ext, temp_ext, copies ); _makepath( new_name, drive, dir, fn, temp_ext ); remove( new_name ); if( copies == 1 ) { strcpy( old_name, log_name ); } else { PutNumber( ext, temp_ext, copies - 1 ); _makepath( old_name, drive, dir, fn, temp_ext ); } rename( old_name, new_name ); --copies; } }
string RomanNumber::ArabToRoman(int value) { if(value>4999) return "This number isn't exists."; string Roman = ""; int temp = 0; int additional = 0; temp = value/1000; if(value==0) return "ZERO"; for (int i = 0; i < temp; i++) { Roman = Roman + "M"; } temp = value%1000; additional = temp/100; if (additional > 0) { Roman = Roman + PutNumber (additional, "C","D","M"); } temp = temp%100; additional = temp/10; if (additional > 0) { Roman = Roman + PutNumber (additional, "X","L","C"); } temp = temp%10; if (temp > 0) { Roman = Roman + PutNumber (temp, "I","V","X"); } return Roman; }
TEST_F(NetworkTableTest, LeadingSlash) { auto nt = NetworkTable::GetTable("leadingslash"); auto nt2 = NetworkTable::GetTable("/leadingslash"); ASSERT_FALSE(nt->ContainsKey("testkey")); nt2->PutNumber("testkey", 5); ASSERT_TRUE(nt->ContainsKey("testkey")); }
TEST_F(NetworkTableTest, EmptyOrNoSlash) { auto inst = nt::NetworkTableInstance::Create(); auto nt = inst.GetTable("/"); auto nt2 = inst.GetTable(""); ASSERT_FALSE(nt->ContainsKey("testkey")); nt2->PutNumber("testkey", 5); ASSERT_TRUE(nt->ContainsKey("testkey")); ASSERT_TRUE(inst.GetEntry("/testkey").Exists()); }
TEST_F(NetworkTableTest, ContainsKey) { auto inst = nt::NetworkTableInstance::Create(); auto nt = inst.GetTable("containskey"); ASSERT_FALSE(nt->ContainsKey("testkey")); nt->PutNumber("testkey", 5); ASSERT_TRUE(nt->ContainsKey("testkey")); ASSERT_TRUE(inst.GetEntry("/containskey/testkey").Exists()); ASSERT_FALSE(inst.GetEntry("containskey/testkey").Exists()); }
void recieve (){ uint8_t temp=0; HAL_UART_Init(&huart1); HAL_GPIO_TogglePin(Kimenet_GPIO_Port,Kimenet_Pin); HAL_UART_Receive(&huart1,&temp,1,3000); PutNumber(temp); PutString("\n"); }
void HAL_RTC_AlarmAEventCallback(RTC_HandleTypeDef *hrtcc) { //HAL_GPIO_TogglePin(Kimenet_GPIO_Port,Kimenet_Pin); MX_USART1_UART_Init(); PutString("--------\n"); HAL_RTC_GetTime(&hrtc,&sTim,RTC_FORMAT_BIN); HAL_RTC_GetDate(&hrtc, &sDat, RTC_FORMAT_BIN); PutNumber((uint32_t)sTim.Hours); PutString(":"); PutNumber((uint32_t)sTim.Minutes); PutString(":"); PutNumber((uint32_t)sTim.Seconds); PutString("\n"); PutString("--------\n"); }
//------------------------------------------------------------ void CBMRegView::OnDrawRow(CDC* pDC, int nRow, int y) { CBrush brushBackground; COLORREF crNewBack,crNewText = RGB(128,0,0), crOldText, crOldBackground = 0; CFont FontNew,*FontOld; int width,i,Pos,n,k; char buf[128]; CSize cs; CSample* pReg; TEXTMETRIC tm; CScriptDoc* pDoc = GetDocument(); pDC->GetTextMetrics(&tm); width = tm.tmAveCharWidth; //Ширина одного символа FontNew.CreateFontIndirect(&lf); FontOld = pDC->SelectObject((CFont*)&FontNew); if ( !pDoc->m_RowMask.IsEmpty() && pDoc->m_RowMask.GetBitAt(nRow)) crNewBack =RGB(224,224,0); else crNewBack =::GetSysColor(COLOR_WINDOW); brushBackground.CreateSolidBrush(crNewBack); crOldBackground = pDC->SetBkColor(crNewBack); // Установить текущей Pos=40; CRect rectSelection; pDC->GetClipBox(&rectSelection); rectSelection.top = y; rectSelection.bottom = y + m_nRowHeight+2; pDC->FillRect(&rectSelection, &brushBackground); // Всю строку crOldText = pDC->SetTextColor(crNewText); // Красный текст PutNumber(pDC,nRow,y,FontOld,&FontNew,&lf); pDC->MoveTo(Pos-3,y); pDC->LineTo(Pos-3,rectSelection.bottom); pReg = pDoc->m_pReguls.GetAt(nRow); for (i=0; i<(int)pDoc->m_nDom; i++) { if ((i&1)==0) pDC->SetTextColor(crOldText); // Черный текст for (k=n=0; n<(int)pDoc->m_DomVal[i]; n++) k |= pReg->m_Values.GetAt(pDoc->m_DomAdr[i]+n); for (n=0; n<(int)pDoc->m_DomVal[i]; n++) { if (k&2) buf[n]= (pReg->m_Values.GetAt(pDoc->m_DomAdr[i]+n)==0) ? '1':Symbol0; else buf[n]= pReg->m_Values.GetAt(pDoc->m_DomAdr[i]+n) ? '1':Symbol0; } buf[n]='\0'; cs = pDC->GetTextExtent(buf,pDoc->m_DomVal[i]); pDC->TextOut(Pos, y, buf,pDoc->m_DomVal[i]); Pos+=cs.cx+5; pDC->MoveTo(Pos-3,y); pDC->LineTo(Pos-3,rectSelection.bottom); if ((i&1)==0) pDC->SetTextColor(crNewText); // Красный текст } pDC->SetBkColor(crOldBackground); pDC->SetTextColor(crOldText); pDC->SelectObject((CFont*)FontOld); FontNew.DeleteObject(); }
uint16_t temperature(){ float temp,Vdd_voltage,temp30,sense,x=0.8058608; int32_t f**k,vrefint_data; //VREFINT measured value int16_t vrefint_cal_temp,vrefint_cal_int; //VREFINT calibration value ADC_ChannelConfTypeDef sConfig; vrefint_cal_temp= *((int32_t*)0x1FFFF7B8); vrefint_cal_int= *((int32_t*)0x1FFFF7BA); ADC->CCR |= ADC_CCR_TSEN; HAL_Delay(50); //MX_ADC_Init(); //HAL_ADC_Init(&hadc); HAL_ADCEx_Calibration_Start(&hadc); sConfig.Channel = ADC_CHANNEL_VREFINT; sConfig.Rank = ADC_RANK_CHANNEL_NUMBER; sConfig.SamplingTime = ADC_SAMPLETIME_239CYCLES_5 ; hadc.Instance->CHSELR = (uint32_t)(ADC_CHSELR_CHSEL17); HAL_ADC_ConfigChannel(&hadc,&sConfig); HAL_ADC_Start(&hadc); HAL_ADC_PollForConversion(&hadc,1000); vrefint_data = (int32_t)HAL_ADC_GetValue(&hadc); //vint beolvasott digitális érték HAL_ADC_Stop(&hadc); sConfig.Channel = ADC_CHANNEL_TEMPSENSOR; hadc.Instance->CHSELR = (uint32_t)(ADC_CHSELR_CHSEL16); HAL_ADC_ConfigChannel(&hadc,&sConfig); HAL_ADC_Start(&hadc); HAL_ADC_PollForConversion(&hadc,1000); f**k = (int32_t)HAL_ADC_GetValue(&hadc); //temerature sensor HAL_ADC_Stop(&hadc); sense=(float)((float)vrefint_cal_int*(float)f**k); sense=(float)(sense/(float)vrefint_data); sense=(float)(sense*x); temp30=(3300*vrefint_cal_temp)/4095; temp=temp30-sense+30; PutString("Temperature:"); PutNumber((uint32_t)temp); PutString("\n"); // HAL_ADC_DeInit(&hadc); return (uint16_t)temp; }
uint16_t voltage_read(uint32_t channel, float voltage_div ){ //TIM_CHANNEL_2 -> Battery voltage, div=2.0 //ADC_voltage = (Vcal*vrefint_cal* ADC_data) / (vrefint_data*FULL_SCALE) float voltage,x=0.80586; //x=3300/4095 uint32_t aResult; //a mért csdatorna értéke uint16_t vrefint_cal; //VREFINT calibration value,gyári kalibrációs érték(3,3V on) vrefint uint32_t vrefint_data; //VREFINT measured value, tényleges vrefint ADC->CCR |= ADC_CCR_VREFEN; vrefint_cal= *((uint16_t*)VREFINT_CAL_ADDR); ADC_ChannelConfTypeDef sConfig; //MX_ADC_Init(); //HAL_ADC_Init(&hadc); sConfig.Channel = ADC_CHANNEL_VREFINT; sConfig.Rank = ADC_RANK_CHANNEL_NUMBER; sConfig.SamplingTime = ADC_SAMPLETIME_239CYCLES_5; hadc.Instance->CHSELR = (uint32_t)(ADC_CHSELR_CHSEL17); HAL_ADC_ConfigChannel(&hadc,&sConfig); HAL_ADCEx_Calibration_Start(&hadc); HAL_ADC_Start(&hadc); HAL_ADC_PollForConversion(&hadc,1000); vrefint_data = HAL_ADC_GetValue(&hadc); //vrefint beolvasott digitális érték HAL_ADC_Stop(&hadc); hadc.Instance->CHSELR = (uint32_t)(ADC_CHSELR_CHSEL2); sConfig.Channel = channel; HAL_ADC_ConfigChannel(&hadc,&sConfig); HAL_ADC_Start(&hadc); HAL_ADC_PollForConversion(&hadc,100); aResult = HAL_ADC_GetValue(&hadc); //aksifesz beolvasás HAL_ADC_Stop(&hadc); voltage = (((float)vrefint_cal/(float)vrefint_data))* (float)aResult*x; //feszültség kiszámolása mV-ban voltage *=voltage_div; PutString("voltage="); PutNumber((uint32_t)voltage); PutString("mV\n"); return (uint16_t)voltage; }
uint16_t battery_voltage_read(){ //PA2 lábon, chanel_2 float voltage,x=0.80586; uint32_t aResult; uint16_t vrefint_cal; //VREFINT calibration value uint32_t vrefint_data; //VREFINT measured value ADC->CCR |= ADC_CCR_VREFEN; vrefint_cal= *((uint16_t*)VREFINT_CAL_ADDR); ADC_ChannelConfTypeDef sConfig; //MX_ADC_Init(); //HAL_ADC_Init(&hadc); sConfig.Channel = ADC_CHANNEL_VREFINT; sConfig.Rank = ADC_RANK_CHANNEL_NUMBER; sConfig.SamplingTime = ADC_SAMPLETIME_239CYCLES_5; hadc.Instance->CHSELR = (uint32_t)(ADC_CHSELR_CHSEL17); HAL_ADC_ConfigChannel(&hadc,&sConfig); HAL_ADCEx_Calibration_Start(&hadc); HAL_ADC_Start(&hadc); HAL_ADC_PollForConversion(&hadc,1000); vrefint_data = HAL_ADC_GetValue(&hadc); //vrefint beolvasott digitális érték HAL_ADC_Stop(&hadc); hadc.Instance->CHSELR = (uint32_t)(ADC_CHSELR_CHSEL2); sConfig.Channel = ADC_CHANNEL_2; //aksifesz bemenet HAL_ADC_ConfigChannel(&hadc,&sConfig); HAL_ADC_Start(&hadc); HAL_ADC_PollForConversion(&hadc,100); aResult = HAL_ADC_GetValue(&hadc); //aksifesz beolvasás HAL_ADC_Stop(&hadc); voltage = (((float)vrefint_cal/(float)vrefint_data))* (float)aResult*x; //feszültség kiszámolása mV-ban voltage *=2; PutString("battery voltage="); PutNumber((uint32_t)voltage); PutString("mV"); PutString("\n"); // HAL_ADC_DeInit(&hadc); return (uint32_t)voltage; }
//------------------------------------------------------------ void CBMEditView::OnDrawRow(CDC* pDC, int nRow, int y) { CBrush brushBackground; COLORREF crNewBack,crNewText = RGB(128,0,0), crOldText, crOldBackground = 0; CFont FontNew,*FontOld; int width,i,Pos,n; char buf[128]; CSize cs; CSample* pSmp; TEXTMETRIC tm; CScriptDoc* pDoc = GetDocument(); pDC->GetTextMetrics(&tm); width = tm.tmAveCharWidth; //Ширина одного символа FontNew.CreateFontIndirect(&lf); FontOld = pDC->SelectObject((CFont*)&FontNew); crNewBack =::GetSysColor(COLOR_WINDOW); brushBackground.CreateSolidBrush(crNewBack); //Белая кисть crOldBackground = pDC->SetBkColor(crNewBack); // Установить текущей белую CRect rectSelection; pDC->GetClipBox(&rectSelection); rectSelection.top = y; rectSelection.bottom = y + m_nRowHeight; pDC->FillRect(&rectSelection, &brushBackground); // Всю строку сделать белой crOldText = pDC->SetTextColor(crNewText); // Красный текст if (pDoc->m_ActSmp==nRow) { Draw(pDC,6,23, y); } // Active PutNumber(pDC,nRow,y,FontOld,&FontNew,&lf); Pos=40; pDC->MoveTo(Pos-3,y); pDC->LineTo(Pos-3,rectSelection.bottom); pSmp = pDoc->m_pSamples.GetAt(nRow); for (i=0; i<pDoc->m_nDom; i++) { if ((i&1)==0) pDC->SetTextColor(crOldText); // Черный текст for (n=0; n<(int)pDoc->m_DomVal[i]; n++) buf[n]= pSmp->m_Values.GetAt(pDoc->m_DomAdr[i]+n) ? '1':Symbol0; buf[n]='\0'; cs = pDC->GetTextExtent(buf,pDoc->m_DomVal[i]); pDC->TextOut(Pos, y, buf,pDoc->m_DomVal[i]); Pos+=cs.cx+5; pDC->MoveTo(Pos-3,y); pDC->LineTo(Pos-3,rectSelection.bottom); if ((i&1)==0) pDC->SetTextColor(crNewText); // Красный текст } pDC->SetBkColor(crOldBackground); pDC->SetTextColor(crOldText); pDC->SelectObject((CFont*)FontOld); FontNew.DeleteObject(); }
/** * {@inheritDoc} */ void ADIS16448_IMU::UpdateTable() { auto table = GetTable(); if (table) { table->PutNumber("Value", GetAngle()); table->PutNumber("Pitch", GetPitch()); table->PutNumber("Roll", GetRoll()); table->PutNumber("Yaw", GetYaw()); table->PutNumber("AccelX", GetAccelX()); table->PutNumber("AccelY", GetAccelY()); table->PutNumber("AccelZ", GetAccelZ()); table->PutNumber("AngleX", GetAngleX()); table->PutNumber("AngleY", GetAngleY()); table->PutNumber("AngleZ", GetAngleZ()); } }
int main(void) { int i=5000; uint8_t ultrasoundEnableFlag; uint16_t voltage; /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* Configure the system clock */ SystemClock_Config_8MHz(); //__HAL_RCC_PWR_CLK_ENABLE(); /* Initialize all configured peripherals */ MX_GPIO_Init(); HAL_GPIO_WritePin( DCDC_EN_GPIO_Port , DCDC_EN_Pin , 0); // HAL_GPIO_WritePin( DCDC_PWR_GPIO_Port , DCDC_PWR_Pin , 0 ); //open drain kimenet,pch fet, MX_ADC_Init(); //MX_I2C1_Init(); //MX_TIM3_Init(); MX_USART1_UART_Init(); GPIO_TIM3_OFF(); //HAL_Delay(100); MX_RTC_Init(); /* Enable Power Clock */ //__HAL_RCC_PWR_CLK_ENABLE(); uartTester(); // GPIO_TIM3_OFF(); //Feszültseg ellenörzése,sippogás----------------------------------------------------- voltage=voltage_read(ADC_CHANNEL_2,2); if(Full<voltage) batteryLevel=3; if(Medium < voltage && voltage<= Full) batteryLevel=2; if(Medium >= voltage) batteryLevel=1; HAL_Delay(1000); beeps(batteryLevel,1); PutString("Software version 2016.07.26.\n"); PutString("batteryLevel: "); PutNumber(batteryLevel); PutString("\n"); while(1){ //Feszültseg ellenörzése, paraméterek beállítása,fesz fvében------------------------ voltage=voltage_read(ADC_CHANNEL_2,2); if(Low > voltage){ if(UltraLow > voltage){ voltage=voltage_read(ADC_CHANNEL_2,2); if(UltraLow > voltage){ HAL_GPIO_WritePin( DCDC_PWR_GPIO_Port , DCDC_PWR_Pin , 1 ); //open drain kimenet,pch fet, HAL_PWR_EnterSTANDBYMode(); } } ultrasoundEnableFlag=0; sleepNum=LowVoltSleep; }else{ ultrasoundEnableFlag=1; sleepNum= linear(sleepNumMax,sleepNumMin, voltageMin,voltageMax,voltage); soundNum= linear(soundNumMin,soundNumMax,voltageMin,voltageMax,voltage); sounDelay=sDelay; } PutString("sleepNum"); PutNumber(sleepNum); PutString("\n"); PutString("soundNum"); PutNumber(soundNum); PutString("\n"); //Ultrahang generálás--------------------------------------------------------------- if(ultrasoundEnableFlag){ PutString("ultrasound(1)\n "); ultrasound(1); } //Sleep----------------------------------------------------------------------------- // HAL_ADC_MspDeInit(&hadc); HAL_Delay(10); PutString("sleep!\n"); HAL_NVIC_SetPriority(RTC_IRQn, 0, 0); HAL_NVIC_EnableIRQ(RTC_IRQn); for(uint8_t e=0 ; e < sleepNum ; e++){ HAL_RTC_GetTime(&hrtc,&sTim,RTC_FORMAT_BIN); HAL_RTC_GetDate(&hrtc, &sDat, RTC_FORMAT_BIN); HAL_RTC_GetTime(&hrtc,&sTim,RTC_FORMAT_BIN); HAL_RTC_GetDate(&hrtc, &sDat, RTC_FORMAT_BIN); PutNumber((uint32_t)sTim.Hours); PutString(":"); PutNumber((uint32_t)sTim.Minutes); PutString(":"); PutNumber((uint32_t)sTim.Seconds); PutString("\n"); if(sTim.Minutes==59){ sAlarm.AlarmTime.Minutes=0; if(sTim.Hours==23){ sAlarm.AlarmTime.Hours=0; }else{ sAlarm.AlarmTime.Hours=sTim.Hours+1; } }else{ sAlarm.AlarmTime.Minutes=sTim.Minutes+1; sAlarm.AlarmTime.Hours=sTim.Hours; } HAL_RTC_SetAlarm_IT(&hrtc, &sAlarm, FORMAT_BIN); PutString("alarm: "); PutNumber((uint32_t)sAlarm.AlarmTime.Hours); PutString(":"); PutNumber((uint32_t)sAlarm.AlarmTime.Minutes); PutString(":"); PutNumber((uint32_t)sAlarm.AlarmTime.Seconds); PutString("\n"); SleepMode(); } HAL_NVIC_DisableIRQ(RTC_IRQn); } }
TEST_F(NetworkTableTest, ContainsKey) { auto nt = NetworkTable::GetTable("containskey"); ASSERT_FALSE(nt->ContainsKey("testkey")); nt->PutNumber("testkey", 5); ASSERT_TRUE(nt->ContainsKey("testkey")); }
static CHAR *FormatItem(CHAR *f, INT a) { CHAR c; INT fieldwidth = 0; INT leftjust = FALSE; INT radix = 0; CHAR fill = ' '; if (*f == '0') fill = '0'; while ((c = *f++) != 0) { if (c >= '0' && c <= '9') { fieldwidth = (fieldwidth * 10) + (c - '0'); } else switch (c) { case '\000': return (--f); case '%': NET_putchar('%'); return (f); case '-': leftjust = TRUE; break; case 'c': { if (leftjust) NET_putchar(a & 0x7f); if (fieldwidth > 0) PutRepChar(fill, fieldwidth - 1); if (!leftjust) NET_putchar(a & 0x7f); return (f); } case 's': { if (leftjust) NU_PutString((CHAR *)a); if (fieldwidth > strlen((CHAR *)a)) PutRepChar(fill, fieldwidth - strlen((CHAR *)a)); if (!leftjust) NU_PutString((CHAR *)a); return (f); } case 'd': case 'i': radix = -10; break; case 'u': radix = 10; break; case 'x': radix = 16; break; case 'X': radix = 16; break; case 'o': radix = 8; break; default: radix = 3; break; /* unknown switch! */ } if (radix) break; } if (leftjust) fieldwidth = -fieldwidth; PutNumber(a, radix, fieldwidth, fill); return (f); }