int main(int argc, const char * argv[]) { char string[4] = "abc"; demonstrateParentheses(); count; // unused expression, compiles chooseLanguage(0); int cuboid[][2][2] = {1,2,3,4,5,6,7,8}; // int a[5] = {1,2,3}; // forbidden int * a = (int *)malloc(10 * sizeof(*a)); for (int i = 0; i < 3; i++) { a[i] = i + 1; } int * p = NULL; p = (int *)realloc(a, 0); // a is freed and p was allocated to min size /* srand(); number generator int randomNumber = rand() % 50; int n = rand() % 50; */ changeData(string); changeAddress(string); count(); printf("%s\n", string); return 0; }
void XrefBrowseDialog::on_listWidget_currentRowChanged(int row) { if(ui->listWidget->selectedItems().size() != 0) { duint address = mXrefInfo.references[row].addr; changeAddress(address); } }
Check::Check(const Address& address, const Address& pc) { m_status = TesterStatus_Idle; pickValue(); pickInitiatingNode(); changeAddress(address); m_pc = pc; m_access_mode = AccessModeType(random() % AccessModeType_NUM); m_store_count = 0; }
void XrefBrowseDialog::on_listWidget_itemSelectionChanged() { if(ui->listWidget->selectedItems().size() != mPrevSelectionSize) { duint address; if(mPrevSelectionSize == 0) address = mXrefInfo.references[ui->listWidget->currentRow()].addr; else address = mAddress; changeAddress(address); } mPrevSelectionSize = ui->listWidget->selectedItems().size(); }
/* ============================================================================= Change I2C Address for Multiple Sensors Using the new I2C address change feature, you can also change the address for multiple sensors using the PWR_EN line connected to Arduino's digital pins. Address changes will be lost on power off. Process ------------------------------------------------------------------------------ 1. Parameters ------------------------------------------------------------------------------ - numberOfSensors: int representing the number of sensors you have connected - pinArray: array of the digital pins your sensors' PWR_EN line is connected to - i2cAddressArray: array of the I2C address you want to assign to your sen- sors, the order should reflect the order of the pinArray (see not for poss- ible addresses below) - usePartyLine(optional): true/false value of weather or not to leave 0x62 available to all sensors for write (default is false) Example Usage ------------------------------------------------------------------------------ 1. // Assign new address to the sensors connected to sensorsPins and disable // 0x62 as a partyline to talk to all of the sensors int sensorPins[] = {2,3,4}; unsigned char addresses[] = {0x66,0x68,0x64}; myLidarLiteInstance.changeAddressMultisensor(3,sensorPins,addresses); Notes ------------------------------------------------------------------------------ Possible Address for LIDAR-Lite 7-bit address in binary form need to end in "0". Example: 0x62 = 01100010 so that works well for us. Essentially any even numbered hex value will work for 7-bit address. 8-bit read address in binary form need to end in "00". Example: the default 8-bit read address for LIDAR-Lite is 0xc4 = 011000100. Essentially any hex value evenly divisable by "4" will work. =========================================================================== */ void LIDARLite::changeAddressMultiPwrEn(int numOfSensors, int *pinArray, unsigned char *i2cAddressArray, bool usePartyLine){ for (int i = 0; i < numOfSensors; i++){ pinMode(pinArray[i], OUTPUT); // Pin to first LIDAR-Lite Power Enable line delay(2); digitalWrite(pinArray[i], HIGH); delay(20); configure(1); changeAddress(i2cAddressArray[i],true); // We have to turn off the party line to actually get these to load } if(usePartyLine){ for (int i = 0; i < numOfSensors; i++){ write(0x1e,0x00,i2cAddressArray[i]); } } }
static void main_task(void *pvParameters) { int i; char ch; bool selftestPasses = true; /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_I2C1_Init(); MX_USART1_UART_Init(); MX_SPI1_Init(); MX_USB_DEVICE_Init(); // Light up all LEDs to test ledOn(ledRanging); ledOn(ledSync); ledOn(ledMode); printf("\r\n\r\n====================\r\n"); printf("SYSTEM\t: CPU-ID: "); for (i=0; i<12; i++) { printf("%02x", uid[i]); } printf("\r\n"); // Initializing pressure sensor (if present ...) lps25hInit(&hi2c1); testSupportPrintStart("Initializing pressure sensor"); if (lps25hTestConnection()) { printf("[OK]\r\n"); lps25hSetEnabled(true); } else { printf("[FAIL] (%u)\r\n", (unsigned int)hi2c1.ErrorCode); selftestPasses = false; } testSupportPrintStart("Pressure sensor self-test"); testSupportReport(&selftestPasses, lps25hSelfTest()); // Initializing i2c eeprom eepromInit(&hi2c1); testSupportPrintStart("EEPROM self-test"); testSupportReport(&selftestPasses, eepromTest()); cfgInit(); // Initialising radio testSupportPrintStart("Initialize UWB "); uwbInit(); if (uwbTest()) { printf("[OK]\r\n"); } else { printf("[ERROR]: %s\r\n", uwbStrError()); selftestPasses = false; } if (!selftestPasses) { printf("TEST\t: One or more self-tests failed, blocking startup!\r\n"); usbcommSetSystemStarted(true); } // Printing UWB configuration struct uwbConfig_s * uwbConfig = uwbGetConfig(); printf("CONFIG\t: Address is 0x%X\r\n", uwbConfig->address[0]); printf("CONFIG\t: Mode is %s\r\n", uwbAlgorithmName(uwbConfig->mode)); printf("CONFIG\t: Tag mode anchor list (%i): ", uwbConfig->anchorListSize); for (i = 0; i < uwbConfig->anchorListSize; i++) { printf("0x%02X ", uwbConfig->anchors[i]); } printf("\r\n"); HAL_Delay(500); ledOff(ledRanging); ledOff(ledSync); ledOff(ledMode); printf("SYSTEM\t: Node started ...\r\n"); printf("SYSTEM\t: Press 'h' for help.\r\n"); usbcommSetSystemStarted(true); // Starts UWB protocol uwbStart(); // Main loop ... while(1) { usbcommPrintWelcomeMessage(); ledTick(); // // Measure pressure // if (uwbConfig.mode != modeSniffer) { // if(lps25hGetData(&pressure, &temperature, &asl)) { // pressure_ok = true; // } else { // printf("Fail reading pressure\r\n"); // printf("pressure not ok\r\n"); // } // } // Accepts serial commands #ifdef USE_FTDI_UART if (HAL_UART_Receive(&huart1, (uint8_t*)&ch, 1, 0) == HAL_OK) { #else if(usbcommRead(&ch, 1)) { #endif handleInput(ch); } } } /* Function required to use "printf" to print on serial console */ int _write (int fd, const void *buf, size_t count) { // stdout if (fd == 1) { #ifdef USE_FTDI_UART HAL_UART_Transmit(&huart1, (uint8_t *)buf, count, HAL_MAX_DELAY); #else usbcommWrite(buf, count); #endif } // stderr if (fd == 2) { HAL_UART_Transmit(&huart1, (uint8_t *)buf, count, HAL_MAX_DELAY); } return count; } static void handleInput(char ch) { bool configChanged = true; static enum menu_e {mainMenu, modeMenu} currentMenu = mainMenu; switch (currentMenu) { case mainMenu: switch (ch) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': changeAddress(ch - '0'); break; case 'a': changeMode(MODE_ANCHOR); break; case 't': changeMode(MODE_TAG); break; case 's': changeMode(MODE_SNIFFER); break; case 'm': printModeList(); printf("Type 0-9 to choose new mode...\r\n"); currentMenu = modeMenu; configChanged = false; break; case 'd': restConfig(); break; case 'h': help(); configChanged = false; break; case '#': productionTestsRun(); printf("System halted, reset to continue\r\n"); while(true){} break; default: configChanged = false; break; } break; case modeMenu: switch(ch) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': changeMode(ch - '0'); currentMenu = mainMenu; break; default: printf("Incorrect mode '%c'\r\n", ch); currentMenu = mainMenu; configChanged = false; break; } break; } if (configChanged) { printf("EEPROM configuration changed, restart for it to take effect!\r\n"); } }