void eui64_get(uint8_t* addressToWrite){ uint32_t aux=0; IAP_return_t iap_return; iap_return = iapReadSerialNumber(); memset(addressToWrite,0,8); if (iap_return.ReturnCode == 0) { *addressToWrite=OPENWSN_EUI_B0; addressToWrite++; *addressToWrite=OPENWSN_EUI_B1; addressToWrite++; *addressToWrite=OPENWSN_EUI_B2; addressToWrite++; aux=iap_return.Result[0]; *addressToWrite=(uint8_t)((aux>>24) & 0x000000FF); addressToWrite++; *addressToWrite=(uint8_t)((aux>>16) & 0x000000FF); addressToWrite++; *addressToWrite=(uint8_t)((aux>>8) & 0x000000FF); addressToWrite++; *addressToWrite=(uint8_t)((aux>>0) & 0x000000FF); addressToWrite++; aux=iap_return.Result[1]; *addressToWrite=(uint8_t)((aux>>24) & 0x000000FF); }
int main(void) { uint8_t* eui; uint8_t addr_64b[8]; eui=&addr_64b; IAP_return_t iap_return; iap_return = iapReadSerialNumber(); if (iap_return.ReturnCode == 0) { printf("Serial Number: %08X %08X %08X %08X %s", iap_return.Result[0], iap_return.Result[1], iap_return.Result[2], iap_return.Result[3], "\n"); } eui64_get(eui); printf("EUI64: %02X %02X %02X %02X %02X %02X %02X %02X %s", eui[0],eui[1],eui[2],eui[3],eui[4],eui[5],eui[6],eui[7],"\n"); return 0; }
void init_banner() { IAP_return_t iap_return; iap_return = iapReadSerialNumber(); //const unsigned portBASE_TYPE uxQueueSize = 10; //const unsigned portBASE_TYPE uxQueueLength = 30; //xPrintQueue = xQueueCreate( uxQueueSize, ( unsigned portBASE_TYPE ) sizeof( char * ) ); //xPrintQueue = xQueueCreate( uxQueueSize, uxQueueLength ); //strcpy(s, "percobaan queue init_banner ...\r\n"); //xQueueSend( xPrintQueue, ( void * ) s, ( portTickType ) 10 ); //uprintf("xPrintQueue hasil queue: %d\r\n", xPrintQueue); uprintf("\r\n\r\nDaun Biru Engineering, Maret 2013\r\n"); uprintf("==================================\r\n"); uprintf("monita %s %s\r\n", BOARD_SANTER, BOARD_SANTER_versi); uprintf("CPU %s, %d MHz", uC, configCPU_CLOCK_HZ/1000000); if (iap_return.ReturnCode == 0) uprintf(", P/N 0x%08X", iap_return.Result[0]); iap_return = iapReadBootVersion(); if (iap_return.ReturnCode == 0) uprintf(", BootV0x%04X\r\n", (unsigned short) iap_return.Result[0]); else { uprintf("-------\r\n"); } uprintf("FreeRTOS %s by Richard Barry\r\n", tskKERNEL_VERSION_NUMBER); // oleh Richard Barry uprintf("ARM-GCC %s : %s : %s\r\n", __VERSION__, __DATE__, __TIME__); }
void cmd_sysinfo(uint8_t argc, char **argv) { IAP_return_t iap_return; printf("%-25s : %d.%d MHz %s", "System Clock", CFG_CPU_CCLK / 1000000, CFG_CPU_CCLK % 1000000, CFG_PRINTF_NEWLINE); printf("%-25s : v%d.%d.%d %s", "Firmware", CFG_FIRMWARE_VERSION_MAJOR, CFG_FIRMWARE_VERSION_MINOR, CFG_FIRMWARE_VERSION_REVISION, CFG_PRINTF_NEWLINE); // 128-bit MCU Serial Number iap_return = iapReadSerialNumber(); if(iap_return.ReturnCode == 0) { printf("%-25s : %08X %08X %08X %08X %s", "Serial Number", iap_return.Result[0],iap_return.Result[1],iap_return.Result[2],iap_return.Result[3], CFG_PRINTF_NEWLINE); } // CLI and buffer Settings #ifdef CFG_INTERFACE printf("%-25s : %d bytes %s", "Max CLI Command", CFG_INTERFACE_MAXMSGSIZE, CFG_PRINTF_NEWLINE); #endif #ifdef CFG_PRINTF_UART uart_pcb_t *pcb = uartGetPCB(); printf("%-25s : %d %s", "UART Baud Rate", pcb->baudrate, CFG_PRINTF_NEWLINE); #endif // TFT LCD Settings (if CFG_TFTLCD enabled) #ifdef CFG_TFTLCD printf("%-25s : %d %s", "LCD Width", (int)lcdGetWidth(), CFG_PRINTF_NEWLINE); printf("%-25s : %d %s", "LCD Height", (int)lcdGetHeight(), CFG_PRINTF_NEWLINE); #endif // Wireless Settings (if CFG_CHIBI enabled) #ifdef CFG_CHIBI chb_pcb_t *pcb = chb_get_pcb(); printf("%-25s : %s %s", "Wireless", "AT86RF212", CFG_PRINTF_NEWLINE); printf("%-25s : 0x%04X %s", "802.15.4 PAN ID", CFG_CHIBI_PANID, CFG_PRINTF_NEWLINE); printf("%-25s : 0x%04X %s", "802.15.4 Node Address", pcb->src_addr, CFG_PRINTF_NEWLINE); printf("%-25s : %d %s", "802.15.4 Channel", CFG_CHIBI_CHANNEL, CFG_PRINTF_NEWLINE); #endif // System Uptime (based on systick timer) printf("%-25s : %u s %s", "System Uptime", (unsigned int)systickGetSecondsActive(), CFG_PRINTF_NEWLINE); // System Temperature (if LM75B Present) #ifdef CFG_LM75B int32_t temp = 0; lm75bGetTemperature(&temp); temp *= 125; printf("%-25s : %d.%d C %s", "Temperature", temp / 1000, temp % 1000, CFG_PRINTF_NEWLINE); #endif #ifdef CFG_SDCARD printf("%-25s : %s %s", "SD Card Present", gpioGetValue(CFG_SDCARD_CDPORT, CFG_SDCARD_CDPIN) ? "True" : "False", CFG_PRINTF_NEWLINE); #endif }
void cmd_sysinfo(uint8_t argc, char **argv) { IAP_return_t iap_return; /* Note: Certain values are only reported if CFG_INTERFACE_LONGSYSINFO is set to 1 in projectconfig.h. These extra values are more useful for debugging than real-world use, so there's no point wasiting flash space storing the code for them */ printf("%-25s : %d.%d.%d %s", "Firmware", CFG_FIRMWARE_VERSION_MAJOR, CFG_FIRMWARE_VERSION_MINOR, CFG_FIRMWARE_VERSION_REVISION, CFG_PRINTF_NEWLINE); printf("%-25s : %d.%d MHz %s", "System Clock", CFG_CPU_CCLK / 1000000, CFG_CPU_CCLK % 1000000, CFG_PRINTF_NEWLINE); // System Uptime (based on systick timer) printf("%-25s : %u s %s", "System Uptime", (unsigned int)systickGetSecondsActive(), CFG_PRINTF_NEWLINE); // 128-bit MCU Serial Number iap_return = iapReadSerialNumber(); if(iap_return.ReturnCode == 0) { printf("%-25s : %08X %08X %08X %08X %s", "Serial Number", iap_return.Result[0],iap_return.Result[1],iap_return.Result[2],iap_return.Result[3], CFG_PRINTF_NEWLINE); } #if CFG_INTERFACE_LONGSYSINFO #ifdef CFG_USBCDC printf("%-25s : %d ms %s", "USB Init Timeout", CFG_USBCDC_INITTIMEOUT, CFG_PRINTF_NEWLINE); #endif #endif // CLI and buffer Settings #if CFG_INTERFACE_LONGSYSINFO printf("%-25s : %d bytes %s", "CLI Max Command Size", CFG_INTERFACE_MAXMSGSIZE, CFG_PRINTF_NEWLINE); printf("%-25s : %s %s", "CLI IRQ Enabled", CFG_INTERFACE_ENABLEIRQ ? "True" : "False", CFG_PRINTF_NEWLINE); #if CFG_INTERFACE_ENABLEIRQ printf("%-25s : %d.%d %s", "CLI IRQ Location", CFG_INTERFACE_IRQPORT, CFG_INTERFACE_IRQPIN, CFG_PRINTF_NEWLINE); #endif #endif #if CFG_INTERFACE_LONGSYSINFO #ifdef CFG_I2CEEPROM printf("%-25s : %d bytes %s", "EEPROM Size", CFG_I2CEEPROM_SIZE, CFG_PRINTF_NEWLINE); #endif #endif #ifdef CFG_SDCARD printf("%-25s : %s %s", "SD Card Present", gpioGetValue(CFG_SDCARD_CDPORT, CFG_SDCARD_CDPIN) ? "True" : "False", CFG_PRINTF_NEWLINE); #if CFG_INTERFACE_LONGSYSINFO printf("%-25s : %s %s", "FAT File System", CFG_SDCARD_READONLY ? "Read Only" : "Read/Write", CFG_PRINTF_NEWLINE); #endif #endif #ifdef CFG_PRINTF_UART uart_pcb_t *pcb = uartGetPCB(); printf("%-25s : %u %s", "UART Baud Rate", (unsigned int)(pcb->baudrate), CFG_PRINTF_NEWLINE); #endif // TFT LCD Settings (if CFG_TFTLCD enabled) #ifdef CFG_TFTLCD printf("%-25s : %d %s", "LCD Width", (int)lcdGetWidth(), CFG_PRINTF_NEWLINE); printf("%-25s : %d %s", "LCD Height", (int)lcdGetHeight(), CFG_PRINTF_NEWLINE); #if CFG_INTERFACE_LONGSYSINFO printf("%-25s : %04X %s", "LCD Controller ID", (unsigned short)lcdGetControllerID(), CFG_PRINTF_NEWLINE); printf("%-25s : %s %s", "LCD Small Fonts", CFG_TFTLCD_INCLUDESMALLFONTS == 1 ? "True" : "False", CFG_PRINTF_NEWLINE); printf("%-25s : %s %s", "LCD AA Fonts", CFG_TFTLCD_USEAAFONTS == 1 ? "True" : "False", CFG_PRINTF_NEWLINE); lcdProperties_t lcdprops = lcdGetProperties(); printf("%-25s : %s %s", "Touch Screen", lcdprops.touchscreen ? "True" : "False", CFG_PRINTF_NEWLINE); if (lcdprops.touchscreen) { printf("%-25s : %s %s", "Touch Screen Calibrated", eepromReadU8(CFG_EEPROM_TOUCHSCREEN_CALIBRATED) == 1 ? "True" : "False", CFG_PRINTF_NEWLINE); printf("%-25s : %d %s", "Touch Screen Threshold", CFG_TFTLCD_TS_DEFAULTTHRESHOLD, CFG_PRINTF_NEWLINE); } #endif #endif // Wireless Settings (if CFG_CHIBI enabled) #ifdef CFG_CHIBI chb_pcb_t *pcb = chb_get_pcb(); printf("%-25s : %s %s", "Wireless", "AT86RF212", CFG_PRINTF_NEWLINE); printf("%-25s : 0x%04X %s", "802.15.4 PAN ID", CFG_CHIBI_PANID, CFG_PRINTF_NEWLINE); printf("%-25s : 0x%04X %s", "802.15.4 Node Address", pcb->src_addr, CFG_PRINTF_NEWLINE); printf("%-25s : %d %s", "802.15.4 Channel", CFG_CHIBI_CHANNEL, CFG_PRINTF_NEWLINE); #endif // System Temperature (if LM75B Present) #ifdef CFG_LM75B int32_t temp = 0; lm75bGetTemperature(&temp); temp *= 125; printf("%-25s : %d.%d C %s", "Temperature", temp / 1000, temp % 1000, CFG_PRINTF_NEWLINE); #endif // ADC Averaging #if CFG_INTERFACE_LONGSYSINFO printf("%-25s : %s %s", "ADC Averaging", ADC_AVERAGING_ENABLE ? "True" : "False", CFG_PRINTF_NEWLINE); #if ADC_AVERAGING_ENABLE printf("%-25s : %d %s", "ADC Averaging Samples", ADC_AVERAGING_SAMPLES, CFG_PRINTF_NEWLINE); #endif #endif // Debug LED #if CFG_INTERFACE_LONGSYSINFO printf("%-25s : %d.%d %s", "LED Location", CFG_LED_PORT, CFG_LED_PIN, CFG_PRINTF_NEWLINE); #endif }
void cmd_sysinfo(uint8_t argc, char **argv) { printf("%-25s : %d.%d MHz %s", "System Clock", CFG_CPU_CCLK / 1000000, CFG_CPU_CCLK % 1000000, CFG_PRINTF_NEWLINE); printf("%-25s : %d.%d.%d %s", "Firmware", CFG_FIRMWARE_VERSION_MAJOR, CFG_FIRMWARE_VERSION_MINOR, CFG_FIRMWARE_VERSION_REVISION, CFG_PRINTF_NEWLINE); // 128-bit MCU Serial Number IAP_return_t iap_return; iap_return = iapReadSerialNumber(); if(iap_return.ReturnCode == 0) { printf("%-25s : %08X %08X %08X %08X %s", "Serial Number", iap_return.Result[0],iap_return.Result[1],iap_return.Result[2],iap_return.Result[3], CFG_PRINTF_NEWLINE); } // Check the battery voltage #ifdef CFG_BAT uint32_t c; gpioSetDir(CFG_BAT_ENPORT, CFG_BAT_ENPIN, gpioDirection_Output ); gpioSetValue(CFG_BAT_ENPORT, CFG_BAT_ENPIN, 1 ); // Enable the voltage divider systickDelay(5); c = adcRead(CFG_BAT_ADC); // Pre-read ADC to warm it up systickDelay(10); c = adcRead(CFG_BAT_ADC); c = (c * CFG_VREG_VCC_MAIN) / 1000; // Value in millivolts relative to supply voltage c = (c * CFG_BAT_MULTIPLIER) / 1000; // Battery voltage in millivolts (depends on resistor values) gpioSetValue(CFG_BAT_ENPORT, CFG_BAT_ENPIN, 0 ); // Turn the voltage divider back off to save power printf("%-25s : %u.%u V %s", "Supply Voltage", (unsigned int)(c / 1000), (unsigned int)(c % 1000), CFG_PRINTF_NEWLINE); #endif // Wireless Settings (if CFG_CHIBI enabled) #ifdef CFG_CHIBI chb_pcb_t *pcb = chb_get_pcb(); printf("%-25s : %s %s", "RF Transceiver", "AT86RF212", CFG_PRINTF_NEWLINE); #if CFG_CHIBI_PROMISCUOUS == 1 printf("%-25s : %s %s", "RF Receive Mode", "Promiscuous", CFG_PRINTF_NEWLINE); #else printf("%-25s : %s %s", "RF Receive Mode", "Normal", CFG_PRINTF_NEWLINE); #endif printf("%-25s : 0x%04X (%d) %s", "802.15.4 PAN ID", CFG_CHIBI_PANID, CFG_CHIBI_PANID, CFG_PRINTF_NEWLINE); printf("%-25s : 0x%04X (%d) %s", "802.15.4 Node Address", pcb->src_addr, pcb->src_addr, CFG_PRINTF_NEWLINE); printf("%-25s : %d %s", "802.15.4 Channel", CFG_CHIBI_CHANNEL, CFG_PRINTF_NEWLINE); #endif // CLI and buffer Settings #ifdef CFG_INTERFACE printf("%-25s : %d bytes %s", "Max CLI Command", CFG_INTERFACE_MAXMSGSIZE, CFG_PRINTF_NEWLINE); #endif // System Uptime (based on systick timer) printf("%-25s : %u s %s", "System Uptime", (unsigned int)systickGetSecondsActive(), CFG_PRINTF_NEWLINE); // System Temperature (if LM75B Present) #ifdef CFG_LM75B int32_t temp = 0; lm75bGetTemperature(&temp); temp *= 125; printf("%-25s : %d.%d C %s", "Temperature", (int)(temp / 1000), (int)(temp % 1000), CFG_PRINTF_NEWLINE); #endif #ifdef CFG_SDCARD printf("%-25s : %s %s", "SD Card Present", gpioGetValue(CFG_SDCARD_CDPORT, CFG_SDCARD_CDPIN) ? "True" : "False", CFG_PRINTF_NEWLINE); #endif }