├── .gitignore ├── README.md ├── scripts └── CMakeLists.txt ├── src ├── apps │ ├── nodes.h │ ├── nodes │ │ ├── imu_sensor │ │ │ ├── imu_sensor.cpp │ │ │ └── imu_sensor.h │ │ ├── listener │ │ │ ├── listener.cpp │ │ │ └── listener.h │ │ ├── logger │ │ │ ├── logger.cpp │ │ │ └── logger.h │ │ ├── new_task │ │ │ ├── new_task.cpp │ │ │ └── new_task.h │ │ ├── speed_setter │ │ │ ├── speed_setter.cpp │ │ │ └── speed_setter.h │ │ └── ultrasonic_sensor │ │ │ ├── ultrasonic_sensor.cpp │ │ │ └── ultrasonic_sensor.h │ └── readme.md ├── board │ ├── Shell │ │ ├── DMA_Setup.c │ │ ├── DMA_Setup.h │ │ ├── Shell.c │ │ ├── Shell.h │ │ ├── USART_Setup.c │ │ ├── USART_Setup.h │ │ ├── printf-stdarg.c │ │ └── printf-stdarg.h │ ├── stm32f1xx │ │ ├── CPU │ │ │ ├── CMSIS │ │ │ │ ├── Core │ │ │ │ │ ├── CM3 │ │ │ │ │ │ ├── core_cm3.c │ │ │ │ │ │ ├── core_cm3.h │ │ │ │ │ │ ├── startup │ │ │ │ │ │ │ ├── arm │ │ │ │ │ │ │ │ ├── startup_stm32f10x_cl.s │ │ │ │ │ │ │ │ ├── startup_stm32f10x_hd.s │ │ │ │ │ │ │ │ ├── startup_stm32f10x_ld.s │ │ │ │ │ │ │ │ └── startup_stm32f10x_md.s │ │ │ │ │ │ │ ├── gcc │ │ │ │ │ │ │ │ ├── startup_stm32f10x_cl.s │ │ │ │ │ │ │ │ ├── startup_stm32f10x_hd.s │ │ │ │ │ │ │ │ ├── startup_stm32f10x_ld.s │ │ │ │ │ │ │ │ └── startup_stm32f10x_md.s │ │ │ │ │ │ │ └── iar │ │ │ │ │ │ │ │ ├── startup_stm32f10x_cl.s │ │ │ │ │ │ │ │ ├── startup_stm32f10x_hd.s │ │ │ │ │ │ │ │ ├── startup_stm32f10x_ld.s │ │ │ │ │ │ │ │ └── startup_stm32f10x_md.s │ │ │ │ │ │ ├── stm32f10x.h │ │ │ │ │ │ ├── system_stm32f10x.c │ │ │ │ │ │ └── system_stm32f10x.h │ │ │ │ │ └── Documentation │ │ │ │ │ │ └── CMSIS_Core.htm │ │ │ │ └── License.doc │ │ │ └── StartUp │ │ │ │ ├── STM32F103T6U6_flash.ld │ │ │ │ ├── STM32F103VB_flash.ld │ │ │ │ ├── fault_handlers.c │ │ │ │ ├── startup_stm32f10x.c │ │ │ │ ├── startup_stm32f10x_ld.c │ │ │ │ └── startup_stm32f10x_md.c │ │ ├── STM32F10x_StdPeriph_Driver │ │ │ ├── inc │ │ │ │ ├── misc.h │ │ │ │ ├── stm32f10x_adc.h │ │ │ │ ├── stm32f10x_bkp.h │ │ │ │ ├── stm32f10x_can.h │ │ │ │ ├── stm32f10x_crc.h │ │ │ │ ├── stm32f10x_dac.h │ │ │ │ ├── stm32f10x_dbgmcu.h │ │ │ │ ├── stm32f10x_dma.h │ │ │ │ ├── stm32f10x_exti.h │ │ │ │ ├── stm32f10x_flash.h │ │ │ │ ├── stm32f10x_fsmc.h │ │ │ │ ├── stm32f10x_gpio.h │ │ │ │ ├── stm32f10x_i2c.h │ │ │ │ ├── stm32f10x_iwdg.h │ │ │ │ ├── stm32f10x_pwr.h │ │ │ │ ├── stm32f10x_rcc.h │ │ │ │ ├── stm32f10x_rtc.h │ │ │ │ ├── stm32f10x_sdio.h │ │ │ │ ├── stm32f10x_spi.h │ │ │ │ ├── stm32f10x_tim.h │ │ │ │ ├── stm32f10x_usart.h │ │ │ │ └── stm32f10x_wwdg.h │ │ │ └── src │ │ │ │ ├── misc.c │ │ │ │ ├── stm32f10x_adc.c │ │ │ │ ├── stm32f10x_bkp.c │ │ │ │ ├── stm32f10x_can.c │ │ │ │ ├── stm32f10x_crc.c │ │ │ │ ├── stm32f10x_dac.c │ │ │ │ ├── stm32f10x_dbgmcu.c │ │ │ │ ├── stm32f10x_dma.c │ │ │ │ ├── stm32f10x_exti.c │ │ │ │ ├── stm32f10x_flash.c │ │ │ │ ├── stm32f10x_fsmc.c │ │ │ │ ├── stm32f10x_gpio.c │ │ │ │ ├── stm32f10x_i2c.c │ │ │ │ ├── stm32f10x_iwdg.c │ │ │ │ ├── stm32f10x_pwr.c │ │ │ │ ├── stm32f10x_rcc.c │ │ │ │ ├── stm32f10x_rtc.c │ │ │ │ ├── stm32f10x_sdio.c │ │ │ │ ├── stm32f10x_spi.c │ │ │ │ ├── stm32f10x_tim.c │ │ │ │ ├── stm32f10x_usart.c │ │ │ │ └── stm32f10x_wwdg.c │ │ └── net │ │ │ ├── Ethernet │ │ │ ├── Delay.c │ │ │ ├── Delay.h │ │ │ ├── enc28j60.c │ │ │ └── enc28j60.h │ │ │ └── net │ │ │ ├── netconf.c │ │ │ └── netconf.h │ └── stm32f4xx │ │ ├── CPU │ │ ├── core_cm4.h │ │ ├── core_cm4_simd.h │ │ ├── core_cmFunc.h │ │ ├── core_cmInstr.h │ │ └── startup │ │ │ ├── startup │ │ │ └── startup_stm32f4xx.c │ │ │ ├── stm32f4xx.h │ │ │ ├── stm32f4xx_conf.h │ │ │ ├── system_stm32f4xx.c │ │ │ └── system_stm32f4xx.h │ │ ├── drivers │ │ ├── Release_Notes.html │ │ ├── STM32F4x7_ETH_Driver │ │ │ ├── Release_Notes.html │ │ │ ├── inc │ │ │ │ ├── stm32f4x7_eth.h │ │ │ │ └── stm32f4x7_eth_conf_template.h │ │ │ └── src │ │ │ │ └── stm32f4x7_eth.c │ │ ├── inc │ │ │ ├── misc.h │ │ │ ├── stm32f4_discovery.h │ │ │ ├── stm32f4xx_adc.h │ │ │ ├── stm32f4xx_can.h │ │ │ ├── stm32f4xx_crc.h │ │ │ ├── stm32f4xx_cryp.h │ │ │ ├── stm32f4xx_dac.h │ │ │ ├── stm32f4xx_dbgmcu.h │ │ │ ├── stm32f4xx_dcmi.h │ │ │ ├── stm32f4xx_dma.h │ │ │ ├── stm32f4xx_exti.h │ │ │ ├── stm32f4xx_flash.h │ │ │ ├── stm32f4xx_fsmc.h │ │ │ ├── stm32f4xx_gpio.h │ │ │ ├── stm32f4xx_hash.h │ │ │ ├── stm32f4xx_i2c.h │ │ │ ├── stm32f4xx_iwdg.h │ │ │ ├── stm32f4xx_pwr.h │ │ │ ├── stm32f4xx_rcc.h │ │ │ ├── stm32f4xx_rng.h │ │ │ ├── stm32f4xx_rtc.h │ │ │ ├── stm32f4xx_sdio.h │ │ │ ├── stm32f4xx_spi.h │ │ │ ├── stm32f4xx_syscfg.h │ │ │ ├── stm32f4xx_tim.h │ │ │ ├── stm32f4xx_usart.h │ │ │ └── stm32f4xx_wwdg.h │ │ └── src │ │ │ ├── misc.c │ │ │ ├── stm32f4_discovery.c │ │ │ ├── stm32f4xx_adc.c │ │ │ ├── stm32f4xx_can.c │ │ │ ├── stm32f4xx_crc.c │ │ │ ├── stm32f4xx_cryp.c │ │ │ ├── stm32f4xx_cryp_aes.c │ │ │ ├── stm32f4xx_cryp_des.c │ │ │ ├── stm32f4xx_cryp_tdes.c │ │ │ ├── stm32f4xx_dac.c │ │ │ ├── stm32f4xx_dbgmcu.c │ │ │ ├── stm32f4xx_dcmi.c │ │ │ ├── stm32f4xx_dma.c │ │ │ ├── stm32f4xx_exti.c │ │ │ ├── stm32f4xx_flash.c │ │ │ ├── stm32f4xx_fsmc.c │ │ │ ├── stm32f4xx_gpio.c │ │ │ ├── stm32f4xx_hash.c │ │ │ ├── stm32f4xx_hash_md5.c │ │ │ ├── stm32f4xx_hash_sha1.c │ │ │ ├── stm32f4xx_i2c.c │ │ │ ├── stm32f4xx_iwdg.c │ │ │ ├── stm32f4xx_pwr.c │ │ │ ├── stm32f4xx_rcc.c │ │ │ ├── stm32f4xx_rng.c │ │ │ ├── stm32f4xx_rtc.c │ │ │ ├── stm32f4xx_sdio.c │ │ │ ├── stm32f4xx_spi.c │ │ │ ├── stm32f4xx_syscfg.c │ │ │ ├── stm32f4xx_tim.c │ │ │ ├── stm32f4xx_usart.c │ │ │ └── stm32f4xx_wwdg.c │ │ ├── ldscripts │ │ ├── libs.ld │ │ ├── mem.ld │ │ └── sections.ld │ │ ├── net │ │ ├── Ethernet │ │ │ ├── stm32f4x7_eth_bsp.c │ │ │ ├── stm32f4x7_eth_bsp.h │ │ │ └── stm32f4x7_eth_conf.h │ │ └── net │ │ │ ├── netconf.c │ │ │ └── netconf.h │ │ └── stm32f4xx_it.c ├── core │ ├── lwip-1.4.0 │ │ ├── CHANGELOG │ │ ├── COPYING │ │ ├── FILES │ │ ├── README │ │ ├── UPGRADING │ │ ├── doc │ │ │ ├── FILES │ │ │ ├── contrib.txt │ │ │ ├── rawapi.txt │ │ │ ├── savannah.txt │ │ │ ├── snmp_agent.txt │ │ │ └── sys_arch.txt │ │ ├── ports │ │ │ ├── MicroBlaze-Ethernet-Lite │ │ │ │ ├── SP605_PHY.c │ │ │ │ ├── ethernetif.c │ │ │ │ ├── include │ │ │ │ │ └── arch │ │ │ │ │ │ ├── bpstruct.h │ │ │ │ │ │ ├── cc.h │ │ │ │ │ │ ├── epstruct.h │ │ │ │ │ │ ├── perf.h │ │ │ │ │ │ └── sys_arch.h │ │ │ │ └── sys_arch.c │ │ │ ├── STM32F4x7 │ │ │ │ ├── FreeRTOS │ │ │ │ │ ├── ethernetif.c │ │ │ │ │ ├── ethernetif.h │ │ │ │ │ ├── sys_arch.c │ │ │ │ │ └── sys_arch.h │ │ │ │ └── arch │ │ │ │ │ ├── bpstruct.h │ │ │ │ │ ├── cc.h │ │ │ │ │ ├── cpu.h │ │ │ │ │ ├── epstruct.h │ │ │ │ │ ├── init.h │ │ │ │ │ ├── lib.h │ │ │ │ │ ├── perf.h │ │ │ │ │ └── sys_arch.h │ │ │ └── win32 │ │ │ │ ├── WinPCap │ │ │ │ ├── Packet32.h │ │ │ │ ├── PacketData.h │ │ │ │ ├── Win32-Extensions.h │ │ │ │ ├── arch.c │ │ │ │ ├── bittypes.h │ │ │ │ ├── ip6_misc.h │ │ │ │ ├── netif.h │ │ │ │ ├── pcap-bpf.h │ │ │ │ ├── pcap-namedb.h │ │ │ │ ├── pcap-stdinc.h │ │ │ │ ├── pcap.h │ │ │ │ ├── pcap │ │ │ │ │ ├── bluetooth.h │ │ │ │ │ ├── bpf.h │ │ │ │ │ ├── namedb.h │ │ │ │ │ ├── sll.h │ │ │ │ │ ├── usb.h │ │ │ │ │ └── vlan.h │ │ │ │ ├── remote-ext.h │ │ │ │ └── wpcap.lib │ │ │ │ ├── ethernetif.c │ │ │ │ ├── include │ │ │ │ └── arch │ │ │ │ │ ├── bpstruct.h │ │ │ │ │ ├── cc.h │ │ │ │ │ ├── epstruct.h │ │ │ │ │ ├── perf.h │ │ │ │ │ └── sys_arch.h │ │ │ │ ├── lwipcfg_msvc.h │ │ │ │ └── sys_arch.c │ │ └── src │ │ │ ├── .hgignore │ │ │ ├── FILES │ │ │ ├── api │ │ │ ├── api_lib.c │ │ │ ├── api_msg.c │ │ │ ├── err.c │ │ │ ├── netbuf.c │ │ │ ├── netdb.c │ │ │ ├── netifapi.c │ │ │ ├── sockets.c │ │ │ └── tcpip.c │ │ │ ├── core │ │ │ ├── def.c │ │ │ ├── dhcp.c │ │ │ ├── dns.c │ │ │ ├── init.c │ │ │ ├── ipv4 │ │ │ │ ├── autoip.c │ │ │ │ ├── icmp.c │ │ │ │ ├── igmp.c │ │ │ │ ├── inet.c │ │ │ │ ├── inet_chksum.c │ │ │ │ ├── ip.c │ │ │ │ ├── ip_addr.c │ │ │ │ └── ip_frag.c │ │ │ ├── ipv6 │ │ │ │ ├── README │ │ │ │ ├── icmp6.c │ │ │ │ ├── inet6.c │ │ │ │ ├── ip6.c │ │ │ │ └── ip6_addr.c │ │ │ ├── lwip_timers.c │ │ │ ├── mem.c │ │ │ ├── memp.c │ │ │ ├── netif.c │ │ │ ├── pbuf.c │ │ │ ├── raw.c │ │ │ ├── snmp │ │ │ │ ├── asn1_dec.c │ │ │ │ ├── asn1_enc.c │ │ │ │ ├── mib2.c │ │ │ │ ├── mib_structs.c │ │ │ │ ├── msg_in.c │ │ │ │ └── msg_out.c │ │ │ ├── stats.c │ │ │ ├── sys.c │ │ │ ├── tcp.c │ │ │ ├── tcp_in.c │ │ │ ├── tcp_out.c │ │ │ └── udp.c │ │ │ ├── include │ │ │ ├── ipv4 │ │ │ │ └── lwip │ │ │ │ │ ├── autoip.h │ │ │ │ │ ├── icmp.h │ │ │ │ │ ├── igmp.h │ │ │ │ │ ├── inet.h │ │ │ │ │ ├── inet_chksum.h │ │ │ │ │ ├── ip.h │ │ │ │ │ ├── ip_addr.h │ │ │ │ │ └── ip_frag.h │ │ │ ├── ipv6 │ │ │ │ └── lwip │ │ │ │ │ ├── icmp.h │ │ │ │ │ ├── inet.h │ │ │ │ │ ├── ip.h │ │ │ │ │ └── ip_addr.h │ │ │ ├── lwip │ │ │ │ ├── api.h │ │ │ │ ├── api_msg.h │ │ │ │ ├── arch.h │ │ │ │ ├── debug.h │ │ │ │ ├── def.h │ │ │ │ ├── dhcp.h │ │ │ │ ├── dns.h │ │ │ │ ├── err.h │ │ │ │ ├── init.h │ │ │ │ ├── mem.h │ │ │ │ ├── memp.h │ │ │ │ ├── memp_std.h │ │ │ │ ├── netbuf.h │ │ │ │ ├── netdb.h │ │ │ │ ├── netif.h │ │ │ │ ├── netifapi.h │ │ │ │ ├── opt.h │ │ │ │ ├── pbuf.h │ │ │ │ ├── raw.h │ │ │ │ ├── sio.h │ │ │ │ ├── snmp.h │ │ │ │ ├── snmp_asn1.h │ │ │ │ ├── snmp_msg.h │ │ │ │ ├── snmp_structs.h │ │ │ │ ├── sockets.h │ │ │ │ ├── stats.h │ │ │ │ ├── sys.h │ │ │ │ ├── tcp.h │ │ │ │ ├── tcp_impl.h │ │ │ │ ├── tcpip.h │ │ │ │ ├── timers.h │ │ │ │ └── udp.h │ │ │ └── netif │ │ │ │ ├── etharp.h │ │ │ │ ├── ppp_oe.h │ │ │ │ └── slipif.h │ │ │ └── netif │ │ │ ├── FILES │ │ │ ├── etharp.c │ │ │ ├── ethernetif.c │ │ │ ├── ppp │ │ │ ├── auth.c │ │ │ ├── auth.h │ │ │ ├── chap.c │ │ │ ├── chap.h │ │ │ ├── chpms.c │ │ │ ├── chpms.h │ │ │ ├── fsm.c │ │ │ ├── fsm.h │ │ │ ├── ipcp.c │ │ │ ├── ipcp.h │ │ │ ├── lcp.c │ │ │ ├── lcp.h │ │ │ ├── magic.c │ │ │ ├── magic.h │ │ │ ├── md5.c │ │ │ ├── md5.h │ │ │ ├── pap.c │ │ │ ├── pap.h │ │ │ ├── ppp.c │ │ │ ├── ppp.h │ │ │ ├── ppp_oe.c │ │ │ ├── pppdebug.h │ │ │ ├── randm.c │ │ │ ├── randm.h │ │ │ ├── vj.c │ │ │ └── vj.h │ │ │ └── slipif.c │ ├── os │ │ ├── freertos-9.0.0 │ │ │ ├── croutine.c │ │ │ ├── event_groups.c │ │ │ ├── include │ │ │ │ ├── FreeRTOS.h │ │ │ │ ├── StackMacros.h │ │ │ │ ├── croutine.h │ │ │ │ ├── deprecated_definitions.h │ │ │ │ ├── event_groups.h │ │ │ │ ├── list.h │ │ │ │ ├── mpu_prototypes.h │ │ │ │ ├── mpu_wrappers.h │ │ │ │ ├── portable.h │ │ │ │ ├── projdefs.h │ │ │ │ ├── queue.h │ │ │ │ ├── semphr.h │ │ │ │ ├── stdint.readme │ │ │ │ ├── task.h │ │ │ │ └── timers.h │ │ │ ├── license.txt │ │ │ ├── list.c │ │ │ ├── portable │ │ │ │ ├── Common │ │ │ │ │ └── mpu_wrappers.c │ │ │ │ ├── GCC │ │ │ │ │ ├── ARM7_AT91FR40008 │ │ │ │ │ │ ├── port.c │ │ │ │ │ │ ├── portISR.c │ │ │ │ │ │ └── portmacro.h │ │ │ │ │ ├── ARM7_AT91SAM7S │ │ │ │ │ │ ├── AT91SAM7X256.h │ │ │ │ │ │ ├── ioat91sam7x256.h │ │ │ │ │ │ ├── lib_AT91SAM7X256.c │ │ │ │ │ │ ├── lib_AT91SAM7X256.h │ │ │ │ │ │ ├── port.c │ │ │ │ │ │ ├── portISR.c │ │ │ │ │ │ └── portmacro.h │ │ │ │ │ ├── ARM7_LPC2000 │ │ │ │ │ │ ├── port.c │ │ │ │ │ │ ├── portISR.c │ │ │ │ │ │ └── portmacro.h │ │ │ │ │ ├── ARM7_LPC23xx │ │ │ │ │ │ ├── port.c │ │ │ │ │ │ ├── portISR.c │ │ │ │ │ │ └── portmacro.h │ │ │ │ │ ├── ARM_CA53_64_BIT │ │ │ │ │ │ ├── port.c │ │ │ │ │ │ ├── portASM.S │ │ │ │ │ │ └── portmacro.h │ │ │ │ │ ├── ARM_CA9 │ │ │ │ │ │ ├── port.c │ │ │ │ │ │ ├── portASM.S │ │ │ │ │ │ └── portmacro.h │ │ │ │ │ ├── ARM_CM0 │ │ │ │ │ │ ├── port.c │ │ │ │ │ │ └── portmacro.h │ │ │ │ │ ├── ARM_CM3 │ │ │ │ │ │ ├── port.c │ │ │ │ │ │ └── portmacro.h │ │ │ │ │ ├── ARM_CM3_MPU │ │ │ │ │ │ ├── port.c │ │ │ │ │ │ └── portmacro.h │ │ │ │ │ ├── ARM_CM4F │ │ │ │ │ │ ├── port.c │ │ │ │ │ │ └── portmacro.h │ │ │ │ │ ├── ARM_CM4_MPU │ │ │ │ │ │ ├── port.c │ │ │ │ │ │ └── portmacro.h │ │ │ │ │ ├── ARM_CM7 │ │ │ │ │ │ ├── ReadMe.txt │ │ │ │ │ │ └── r0p1 │ │ │ │ │ │ │ ├── port.c │ │ │ │ │ │ │ └── portmacro.h │ │ │ │ │ ├── ARM_CR5 │ │ │ │ │ │ ├── port.c │ │ │ │ │ │ ├── portASM.S │ │ │ │ │ │ └── portmacro.h │ │ │ │ │ ├── ARM_CRx_No_GIC │ │ │ │ │ │ ├── port.c │ │ │ │ │ │ ├── portASM.S │ │ │ │ │ │ └── portmacro.h │ │ │ │ │ ├── ATMega323 │ │ │ │ │ │ ├── port.c │ │ │ │ │ │ └── portmacro.h │ │ │ │ │ ├── AVR32_UC3 │ │ │ │ │ │ ├── exception.S │ │ │ │ │ │ ├── port.c │ │ │ │ │ │ └── portmacro.h │ │ │ │ │ ├── CORTUS_APS3 │ │ │ │ │ │ ├── port.c │ │ │ │ │ │ └── portmacro.h │ │ │ │ │ ├── ColdFire_V2 │ │ │ │ │ │ ├── port.c │ │ │ │ │ │ ├── portasm.S │ │ │ │ │ │ └── portmacro.h │ │ │ │ │ ├── H8S2329 │ │ │ │ │ │ ├── port.c │ │ │ │ │ │ └── portmacro.h │ │ │ │ │ ├── HCS12 │ │ │ │ │ │ ├── port.c │ │ │ │ │ │ └── portmacro.h │ │ │ │ │ ├── IA32_flat │ │ │ │ │ │ ├── ISR_Support.h │ │ │ │ │ │ ├── port.c │ │ │ │ │ │ ├── portASM.S │ │ │ │ │ │ └── portmacro.h │ │ │ │ │ ├── MCF5235 │ │ │ │ │ │ ├── port.c │ │ │ │ │ │ └── portmacro.h │ │ │ │ │ ├── MSP430F449 │ │ │ │ │ │ ├── port.c │ │ │ │ │ │ └── portmacro.h │ │ │ │ │ ├── MicroBlaze │ │ │ │ │ │ ├── port.c │ │ │ │ │ │ ├── portasm.s │ │ │ │ │ │ └── portmacro.h │ │ │ │ │ ├── MicroBlazeV8 │ │ │ │ │ │ ├── port.c │ │ │ │ │ │ ├── port_exceptions.c │ │ │ │ │ │ ├── portasm.S │ │ │ │ │ │ └── portmacro.h │ │ │ │ │ ├── MicroBlazeV9 │ │ │ │ │ │ ├── port.c │ │ │ │ │ │ ├── port_exceptions.c │ │ │ │ │ │ ├── portasm.S │ │ │ │ │ │ └── portmacro.h │ │ │ │ │ ├── NiosII │ │ │ │ │ │ ├── port.c │ │ │ │ │ │ ├── port_asm.S │ │ │ │ │ │ └── portmacro.h │ │ │ │ │ ├── PPC405_Xilinx │ │ │ │ │ │ ├── FPU_Macros.h │ │ │ │ │ │ ├── port.c │ │ │ │ │ │ ├── portasm.S │ │ │ │ │ │ └── portmacro.h │ │ │ │ │ ├── PPC440_Xilinx │ │ │ │ │ │ ├── FPU_Macros.h │ │ │ │ │ │ ├── port.c │ │ │ │ │ │ ├── portasm.S │ │ │ │ │ │ └── portmacro.h │ │ │ │ │ ├── RL78 │ │ │ │ │ │ ├── isr_support.h │ │ │ │ │ │ ├── port.c │ │ │ │ │ │ ├── portasm.S │ │ │ │ │ │ └── portmacro.h │ │ │ │ │ ├── RX100 │ │ │ │ │ │ ├── port.c │ │ │ │ │ │ └── portmacro.h │ │ │ │ │ ├── RX600 │ │ │ │ │ │ ├── port.c │ │ │ │ │ │ └── portmacro.h │ │ │ │ │ ├── RX600v2 │ │ │ │ │ │ ├── port.c │ │ │ │ │ │ └── portmacro.h │ │ │ │ │ ├── STR75x │ │ │ │ │ │ ├── port.c │ │ │ │ │ │ ├── portISR.c │ │ │ │ │ │ └── portmacro.h │ │ │ │ │ └── TriCore_1782 │ │ │ │ │ │ ├── port.c │ │ │ │ │ │ ├── portmacro.h │ │ │ │ │ │ └── porttrap.c │ │ │ │ └── MemMang │ │ │ │ │ ├── ReadMe.url │ │ │ │ │ ├── heap_1.c │ │ │ │ │ ├── heap_2.c │ │ │ │ │ ├── heap_3.c │ │ │ │ │ ├── heap_4.c │ │ │ │ │ └── heap_5.c │ │ │ ├── queue.c │ │ │ ├── readme.txt │ │ │ ├── tasks.c │ │ │ ├── timers.c │ │ │ └── utils │ │ │ │ ├── Minimal │ │ │ │ ├── AbortDelay.c │ │ │ │ ├── BlockQ.c │ │ │ │ ├── EventGroupsDemo.c │ │ │ │ ├── GenQTest.c │ │ │ │ ├── IntQueue.c │ │ │ │ ├── IntSemTest.c │ │ │ │ ├── PollQ.c │ │ │ │ ├── QPeek.c │ │ │ │ ├── QueueOverwrite.c │ │ │ │ ├── QueueSet.c │ │ │ │ ├── QueueSetPolling.c │ │ │ │ ├── StaticAllocation.c │ │ │ │ ├── TaskNotify.c │ │ │ │ ├── TimerDemo.c │ │ │ │ ├── blocktim.c │ │ │ │ ├── comtest.c │ │ │ │ ├── comtest_strings.c │ │ │ │ ├── countsem.c │ │ │ │ ├── crflash.c │ │ │ │ ├── crhook.c │ │ │ │ ├── death.c │ │ │ │ ├── dynamic.c │ │ │ │ ├── flash.c │ │ │ │ ├── flash_timer.c │ │ │ │ ├── flop.c │ │ │ │ ├── integer.c │ │ │ │ ├── readme.txt │ │ │ │ ├── recmutex.c │ │ │ │ ├── semtest.c │ │ │ │ └── sp_flop.c │ │ │ │ └── include │ │ │ │ ├── AbortDelay.h │ │ │ │ ├── BlockQ.h │ │ │ │ ├── EventGroupsDemo.h │ │ │ │ ├── GenQTest.h │ │ │ │ ├── IntQueue.h │ │ │ │ ├── IntSemTest.h │ │ │ │ ├── PollQ.h │ │ │ │ ├── QPeek.h │ │ │ │ ├── QueueOverwrite.h │ │ │ │ ├── QueueSet.h │ │ │ │ ├── QueueSetPolling.h │ │ │ │ ├── StaticAllocation.h │ │ │ │ ├── TaskNotify.h │ │ │ │ ├── TimerDemo.h │ │ │ │ ├── blocktim.h │ │ │ │ ├── comtest.h │ │ │ │ ├── comtest2.h │ │ │ │ ├── comtest_strings.h │ │ │ │ ├── countsem.h │ │ │ │ ├── crflash.h │ │ │ │ ├── crhook.h │ │ │ │ ├── death.h │ │ │ │ ├── dynamic.h │ │ │ │ ├── fileIO.h │ │ │ │ ├── flash.h │ │ │ │ ├── flash_timer.h │ │ │ │ ├── flop.h │ │ │ │ ├── integer.h │ │ │ │ ├── mevents.h │ │ │ │ ├── partest.h │ │ │ │ ├── print.h │ │ │ │ ├── recmutex.h │ │ │ │ ├── semtest.h │ │ │ │ └── serial.h │ │ └── syslibs │ │ │ ├── math │ │ │ ├── Include │ │ │ │ ├── arm_common_tables.h │ │ │ │ ├── arm_math.h │ │ │ │ ├── core_cm0.h │ │ │ │ ├── core_cm3.h │ │ │ │ ├── core_cm4.h │ │ │ │ ├── core_cm4_simd.h │ │ │ │ ├── core_cmFunc.h │ │ │ │ └── core_cmInstr.h │ │ │ └── Source │ │ │ │ ├── ARM │ │ │ │ ├── arm_cortexM0x_math.uvopt │ │ │ │ ├── arm_cortexM0x_math.uvproj │ │ │ │ ├── arm_cortexM3x_math.uvopt │ │ │ │ ├── arm_cortexM3x_math.uvproj │ │ │ │ ├── arm_cortexM4x_math.uvopt │ │ │ │ ├── arm_cortexM4x_math.uvproj │ │ │ │ └── arm_cortexMx_math_Build.bat │ │ │ │ ├── BasicMathFunctions │ │ │ │ ├── arm_abs_f32.c │ │ │ │ ├── arm_abs_q15.c │ │ │ │ ├── arm_abs_q31.c │ │ │ │ ├── arm_abs_q7.c │ │ │ │ ├── arm_add_f32.c │ │ │ │ ├── arm_add_q15.c │ │ │ │ ├── arm_add_q31.c │ │ │ │ ├── arm_add_q7.c │ │ │ │ ├── arm_dot_prod_f32.c │ │ │ │ ├── arm_dot_prod_q15.c │ │ │ │ ├── arm_dot_prod_q31.c │ │ │ │ ├── arm_dot_prod_q7.c │ │ │ │ ├── arm_mult_f32.c │ │ │ │ ├── arm_mult_q15.c │ │ │ │ ├── arm_mult_q31.c │ │ │ │ ├── arm_mult_q7.c │ │ │ │ ├── arm_negate_f32.c │ │ │ │ ├── arm_negate_q15.c │ │ │ │ ├── arm_negate_q31.c │ │ │ │ ├── arm_negate_q7.c │ │ │ │ ├── arm_offset_f32.c │ │ │ │ ├── arm_offset_q15.c │ │ │ │ ├── arm_offset_q31.c │ │ │ │ ├── arm_offset_q7.c │ │ │ │ ├── arm_scale_f32.c │ │ │ │ ├── arm_scale_q15.c │ │ │ │ ├── arm_scale_q31.c │ │ │ │ ├── arm_scale_q7.c │ │ │ │ ├── arm_shift_q15.c │ │ │ │ ├── arm_shift_q31.c │ │ │ │ ├── arm_shift_q7.c │ │ │ │ ├── arm_sub_f32.c │ │ │ │ ├── arm_sub_q15.c │ │ │ │ ├── arm_sub_q31.c │ │ │ │ └── arm_sub_q7.c │ │ │ │ ├── CommonTables │ │ │ │ └── arm_common_tables.c │ │ │ │ ├── ComplexMathFunctions │ │ │ │ ├── arm_cmplx_conj_f32.c │ │ │ │ ├── arm_cmplx_conj_q15.c │ │ │ │ ├── arm_cmplx_conj_q31.c │ │ │ │ ├── arm_cmplx_dot_prod_f32.c │ │ │ │ ├── arm_cmplx_dot_prod_q15.c │ │ │ │ ├── arm_cmplx_dot_prod_q31.c │ │ │ │ ├── arm_cmplx_mag_f32.c │ │ │ │ ├── arm_cmplx_mag_q15.c │ │ │ │ ├── arm_cmplx_mag_q31.c │ │ │ │ ├── arm_cmplx_mag_squared_f32.c │ │ │ │ ├── arm_cmplx_mag_squared_q15.c │ │ │ │ ├── arm_cmplx_mag_squared_q31.c │ │ │ │ ├── arm_cmplx_mult_cmplx_f32.c │ │ │ │ ├── arm_cmplx_mult_cmplx_q15.c │ │ │ │ ├── arm_cmplx_mult_cmplx_q31.c │ │ │ │ ├── arm_cmplx_mult_real_f32.c │ │ │ │ ├── arm_cmplx_mult_real_q15.c │ │ │ │ └── arm_cmplx_mult_real_q31.c │ │ │ │ ├── ControllerFunctions │ │ │ │ ├── arm_pid_init_f32.c │ │ │ │ ├── arm_pid_init_q15.c │ │ │ │ ├── arm_pid_init_q31.c │ │ │ │ ├── arm_pid_reset_f32.c │ │ │ │ ├── arm_pid_reset_q15.c │ │ │ │ ├── arm_pid_reset_q31.c │ │ │ │ ├── arm_sin_cos_f32.c │ │ │ │ └── arm_sin_cos_q31.c │ │ │ │ ├── FastMathFunctions │ │ │ │ ├── arm_cos_f32.c │ │ │ │ ├── arm_cos_q15.c │ │ │ │ ├── arm_cos_q31.c │ │ │ │ ├── arm_sin_f32.c │ │ │ │ ├── arm_sin_q15.c │ │ │ │ ├── arm_sin_q31.c │ │ │ │ ├── arm_sqrt_q15.c │ │ │ │ └── arm_sqrt_q31.c │ │ │ │ ├── FilteringFunctions │ │ │ │ ├── arm_biquad_cascade_df1_32x64_init_q31.c │ │ │ │ ├── arm_biquad_cascade_df1_32x64_q31.c │ │ │ │ ├── arm_biquad_cascade_df1_f32.c │ │ │ │ ├── arm_biquad_cascade_df1_fast_q15.c │ │ │ │ ├── arm_biquad_cascade_df1_fast_q31.c │ │ │ │ ├── arm_biquad_cascade_df1_init_f32.c │ │ │ │ ├── arm_biquad_cascade_df1_init_q15.c │ │ │ │ ├── arm_biquad_cascade_df1_init_q31.c │ │ │ │ ├── arm_biquad_cascade_df1_q15.c │ │ │ │ ├── arm_biquad_cascade_df1_q31.c │ │ │ │ ├── arm_biquad_cascade_df2T_f32.c │ │ │ │ ├── arm_biquad_cascade_df2T_init_f32.c │ │ │ │ ├── arm_conv_f32.c │ │ │ │ ├── arm_conv_fast_q15.c │ │ │ │ ├── arm_conv_fast_q31.c │ │ │ │ ├── arm_conv_partial_f32.c │ │ │ │ ├── arm_conv_partial_fast_q15.c │ │ │ │ ├── arm_conv_partial_fast_q31.c │ │ │ │ ├── arm_conv_partial_q15.c │ │ │ │ ├── arm_conv_partial_q31.c │ │ │ │ ├── arm_conv_partial_q7.c │ │ │ │ ├── arm_conv_q15.c │ │ │ │ ├── arm_conv_q31.c │ │ │ │ ├── arm_conv_q7.c │ │ │ │ ├── arm_correlate_f32.c │ │ │ │ ├── arm_correlate_fast_q15.c │ │ │ │ ├── arm_correlate_fast_q31.c │ │ │ │ ├── arm_correlate_q15.c │ │ │ │ ├── arm_correlate_q31.c │ │ │ │ ├── arm_correlate_q7.c │ │ │ │ ├── arm_fir_decimate_f32.c │ │ │ │ ├── arm_fir_decimate_fast_q15.c │ │ │ │ ├── arm_fir_decimate_fast_q31.c │ │ │ │ ├── arm_fir_decimate_init_f32.c │ │ │ │ ├── arm_fir_decimate_init_q15.c │ │ │ │ ├── arm_fir_decimate_init_q31.c │ │ │ │ ├── arm_fir_decimate_q15.c │ │ │ │ ├── arm_fir_decimate_q31.c │ │ │ │ ├── arm_fir_f32.c │ │ │ │ ├── arm_fir_fast_q15.c │ │ │ │ ├── arm_fir_fast_q31.c │ │ │ │ ├── arm_fir_init_f32.c │ │ │ │ ├── arm_fir_init_q15.c │ │ │ │ ├── arm_fir_init_q31.c │ │ │ │ ├── arm_fir_init_q7.c │ │ │ │ ├── arm_fir_interpolate_f32.c │ │ │ │ ├── arm_fir_interpolate_init_f32.c │ │ │ │ ├── arm_fir_interpolate_init_q15.c │ │ │ │ ├── arm_fir_interpolate_init_q31.c │ │ │ │ ├── arm_fir_interpolate_q15.c │ │ │ │ ├── arm_fir_interpolate_q31.c │ │ │ │ ├── arm_fir_lattice_f32.c │ │ │ │ ├── arm_fir_lattice_init_f32.c │ │ │ │ ├── arm_fir_lattice_init_q15.c │ │ │ │ ├── arm_fir_lattice_init_q31.c │ │ │ │ ├── arm_fir_lattice_q15.c │ │ │ │ ├── arm_fir_lattice_q31.c │ │ │ │ ├── arm_fir_q15.c │ │ │ │ ├── arm_fir_q31.c │ │ │ │ ├── arm_fir_q7.c │ │ │ │ ├── arm_fir_sparse_f32.c │ │ │ │ ├── arm_fir_sparse_init_f32.c │ │ │ │ ├── arm_fir_sparse_init_q15.c │ │ │ │ ├── arm_fir_sparse_init_q31.c │ │ │ │ ├── arm_fir_sparse_init_q7.c │ │ │ │ ├── arm_fir_sparse_q15.c │ │ │ │ ├── arm_fir_sparse_q31.c │ │ │ │ ├── arm_fir_sparse_q7.c │ │ │ │ ├── arm_iir_lattice_f32.c │ │ │ │ ├── arm_iir_lattice_init_f32.c │ │ │ │ ├── arm_iir_lattice_init_q15.c │ │ │ │ ├── arm_iir_lattice_init_q31.c │ │ │ │ ├── arm_iir_lattice_q15.c │ │ │ │ ├── arm_iir_lattice_q31.c │ │ │ │ ├── arm_lms_f32.c │ │ │ │ ├── arm_lms_init_f32.c │ │ │ │ ├── arm_lms_init_q15.c │ │ │ │ ├── arm_lms_init_q31.c │ │ │ │ ├── arm_lms_norm_f32.c │ │ │ │ ├── arm_lms_norm_init_f32.c │ │ │ │ ├── arm_lms_norm_init_q15.c │ │ │ │ ├── arm_lms_norm_init_q31.c │ │ │ │ ├── arm_lms_norm_q15.c │ │ │ │ ├── arm_lms_norm_q31.c │ │ │ │ ├── arm_lms_q15.c │ │ │ │ └── arm_lms_q31.c │ │ │ │ ├── GCC │ │ │ │ ├── arm_cortexM0x_math.uvopt │ │ │ │ ├── arm_cortexM0x_math.uvproj │ │ │ │ ├── arm_cortexM3x_math.uvopt │ │ │ │ ├── arm_cortexM3x_math.uvproj │ │ │ │ ├── arm_cortexM4x_math.uvopt │ │ │ │ ├── arm_cortexM4x_math.uvproj │ │ │ │ └── arm_cortexMx_math_Build.bat │ │ │ │ ├── MatrixFunctions │ │ │ │ ├── arm_mat_add_f32.c │ │ │ │ ├── arm_mat_add_q15.c │ │ │ │ ├── arm_mat_add_q31.c │ │ │ │ ├── arm_mat_init_f32.c │ │ │ │ ├── arm_mat_init_q15.c │ │ │ │ ├── arm_mat_init_q31.c │ │ │ │ ├── arm_mat_inverse_f32.c │ │ │ │ ├── arm_mat_mult_f32.c │ │ │ │ ├── arm_mat_mult_fast_q15.c │ │ │ │ ├── arm_mat_mult_fast_q31.c │ │ │ │ ├── arm_mat_mult_q15.c │ │ │ │ ├── arm_mat_mult_q31.c │ │ │ │ ├── arm_mat_scale_f32.c │ │ │ │ ├── arm_mat_scale_q15.c │ │ │ │ ├── arm_mat_scale_q31.c │ │ │ │ ├── arm_mat_sub_f32.c │ │ │ │ ├── arm_mat_sub_q15.c │ │ │ │ ├── arm_mat_sub_q31.c │ │ │ │ ├── arm_mat_trans_f32.c │ │ │ │ ├── arm_mat_trans_q15.c │ │ │ │ └── arm_mat_trans_q31.c │ │ │ │ ├── StatisticsFunctions │ │ │ │ ├── arm_max_f32.c │ │ │ │ ├── arm_max_q15.c │ │ │ │ ├── arm_max_q31.c │ │ │ │ ├── arm_max_q7.c │ │ │ │ ├── arm_mean_f32.c │ │ │ │ ├── arm_mean_q15.c │ │ │ │ ├── arm_mean_q31.c │ │ │ │ ├── arm_mean_q7.c │ │ │ │ ├── arm_min_f32.c │ │ │ │ ├── arm_min_q15.c │ │ │ │ ├── arm_min_q31.c │ │ │ │ ├── arm_min_q7.c │ │ │ │ ├── arm_power_f32.c │ │ │ │ ├── arm_power_q15.c │ │ │ │ ├── arm_power_q31.c │ │ │ │ ├── arm_power_q7.c │ │ │ │ ├── arm_rms_f32.c │ │ │ │ ├── arm_rms_q15.c │ │ │ │ ├── arm_rms_q31.c │ │ │ │ ├── arm_std_f32.c │ │ │ │ ├── arm_std_q15.c │ │ │ │ ├── arm_std_q31.c │ │ │ │ ├── arm_var_f32.c │ │ │ │ ├── arm_var_q15.c │ │ │ │ └── arm_var_q31.c │ │ │ │ ├── SupportFunctions │ │ │ │ ├── arm_copy_f32.c │ │ │ │ ├── arm_copy_q15.c │ │ │ │ ├── arm_copy_q31.c │ │ │ │ ├── arm_copy_q7.c │ │ │ │ ├── arm_fill_f32.c │ │ │ │ ├── arm_fill_q15.c │ │ │ │ ├── arm_fill_q31.c │ │ │ │ ├── arm_fill_q7.c │ │ │ │ ├── arm_float_to_q15.c │ │ │ │ ├── arm_float_to_q31.c │ │ │ │ ├── arm_float_to_q7.c │ │ │ │ ├── arm_q15_to_float.c │ │ │ │ ├── arm_q15_to_q31.c │ │ │ │ ├── arm_q15_to_q7.c │ │ │ │ ├── arm_q31_to_float.c │ │ │ │ ├── arm_q31_to_q15.c │ │ │ │ ├── arm_q31_to_q7.c │ │ │ │ ├── arm_q7_to_float.c │ │ │ │ ├── arm_q7_to_q15.c │ │ │ │ └── arm_q7_to_q31.c │ │ │ │ └── TransformFunctions │ │ │ │ ├── arm_cfft_radix4_f32.c │ │ │ │ ├── arm_cfft_radix4_init_f32.c │ │ │ │ ├── arm_cfft_radix4_init_q15.c │ │ │ │ ├── arm_cfft_radix4_init_q31.c │ │ │ │ ├── arm_cfft_radix4_q15.c │ │ │ │ ├── arm_cfft_radix4_q31.c │ │ │ │ ├── arm_dct4_f32.c │ │ │ │ ├── arm_dct4_init_f32.c │ │ │ │ ├── arm_dct4_init_q15.c │ │ │ │ ├── arm_dct4_init_q31.c │ │ │ │ ├── arm_dct4_q15.c │ │ │ │ ├── arm_dct4_q31.c │ │ │ │ ├── arm_rfft_f32.c │ │ │ │ ├── arm_rfft_init_f32.c │ │ │ │ ├── arm_rfft_init_q15.c │ │ │ │ ├── arm_rfft_init_q31.c │ │ │ │ ├── arm_rfft_q15.c │ │ │ │ └── arm_rfft_q31.c │ │ │ ├── stdio │ │ │ └── printf.c │ │ │ └── syscalls │ │ │ └── syscalls.c │ ├── rcl │ │ ├── Node.cpp │ │ ├── Node.h │ │ ├── Publisher.cpp │ │ ├── Publisher.h │ │ ├── Subscriber.cpp │ │ ├── Subscriber.h │ │ ├── geometry_msgs │ │ │ ├── Accel.h │ │ │ ├── AccelStamped.h │ │ │ ├── AccelWithCovariance.h │ │ │ ├── AccelWithCovarianceStamped.h │ │ │ ├── Point.h │ │ │ ├── Point32.h │ │ │ ├── PointStamped.h │ │ │ ├── Polygon.h │ │ │ ├── PolygonStamped.h │ │ │ ├── Pose.h │ │ │ ├── Pose2D.h │ │ │ ├── PoseArray.h │ │ │ ├── PoseStamped.h │ │ │ ├── PoseWithCovariance.h │ │ │ ├── PoseWithCovarianceStamped.h │ │ │ ├── Quaternion.h │ │ │ ├── QuaternionStamped.h │ │ │ ├── Transform.h │ │ │ ├── TransformStamped.h │ │ │ ├── Twist.h │ │ │ ├── TwistStamped.h │ │ │ ├── TwistWithCovariance.h │ │ │ ├── TwistWithCovarianceStamped.h │ │ │ ├── Vector3.h │ │ │ ├── Vector3Stamped.h │ │ │ ├── Wrench.h │ │ │ └── WrenchStamped.h │ │ ├── msg.h │ │ ├── rcl.cpp │ │ ├── rcl.h │ │ ├── ros │ │ │ ├── duration.h │ │ │ └── time.h │ │ ├── sensor_msgs │ │ │ ├── CameraInfo.h │ │ │ ├── ChannelFloat32.h │ │ │ ├── CompressedImage.h │ │ │ ├── FluidPressure.h │ │ │ ├── Illuminance.h │ │ │ ├── Image.h │ │ │ ├── Imu.h │ │ │ ├── JointState.h │ │ │ ├── Joy.h │ │ │ ├── JoyFeedback.h │ │ │ ├── JoyFeedbackArray.h │ │ │ ├── LaserEcho.h │ │ │ ├── LaserScan.h │ │ │ ├── MagneticField.h │ │ │ ├── MultiDOFJointState.h │ │ │ ├── MultiEchoLaserScan.h │ │ │ ├── NavSatFix.h │ │ │ ├── NavSatStatus.h │ │ │ ├── PointCloud.h │ │ │ ├── PointCloud2.h │ │ │ ├── PointField.h │ │ │ ├── Range.h │ │ │ ├── RegionOfInterest.h │ │ │ ├── RelativeHumidity.h │ │ │ ├── SetCameraInfo.h │ │ │ ├── Temperature.h │ │ │ └── TimeReference.h │ │ └── std_msgs │ │ │ ├── Bool.h │ │ │ ├── Byte.h │ │ │ ├── ByteMultiArray.h │ │ │ ├── Char.h │ │ │ ├── ColorRGBA.h │ │ │ ├── Duration.h │ │ │ ├── Empty.h │ │ │ ├── Float32.h │ │ │ ├── Float32MultiArray.h │ │ │ ├── Float64.h │ │ │ ├── Float64MultiArray.h │ │ │ ├── Header.h │ │ │ ├── Int16.h │ │ │ ├── Int16MultiArray.h │ │ │ ├── Int32.h │ │ │ ├── Int32MultiArray.h │ │ │ ├── Int64.h │ │ │ ├── Int64MultiArray.h │ │ │ ├── Int8.h │ │ │ ├── Int8MultiArray.h │ │ │ ├── MultiArrayDimension.h │ │ │ ├── MultiArrayLayout.h │ │ │ ├── String.h │ │ │ ├── Time.h │ │ │ ├── UInt16.h │ │ │ ├── UInt16MultiArray.h │ │ │ ├── UInt32.h │ │ │ ├── UInt32MultiArray.h │ │ │ ├── UInt64.h │ │ │ ├── UInt64MultiArray.h │ │ │ ├── UInt8.h │ │ │ └── UInt8MultiArray.h │ └── rmw │ │ ├── TopicReader.cpp │ │ ├── TopicReader.h │ │ ├── TopicWriter.cpp │ │ ├── TopicWriter.h │ │ ├── XMLRPCServer.cpp │ │ ├── XMLRPCServer.h │ │ ├── XMLRequest.cpp │ │ └── XMLRequest.h ├── device │ ├── HCSR04Sensor │ │ ├── HCSR04.cpp │ │ └── HCSR04.h │ ├── I2C │ │ ├── i2c.cpp │ │ └── i2c.h │ ├── MPU6050 │ │ ├── MPU6050.cpp │ │ └── MPU6050.h │ └── PID │ │ ├── PID.cpp │ │ └── PID.h ├── device_config.h └── main │ ├── Queue.cpp │ ├── Queue.h │ ├── USARTHandler.c │ ├── USARTHandler.h │ ├── include │ ├── FreeRTOS.h │ ├── FreeRTOSConfig.h │ ├── StackMacros.h │ ├── croutine.h │ ├── list.h │ ├── lwipopts.h │ ├── mpu_wrappers.h │ ├── portable.h │ ├── projdefs.h │ ├── queue.h │ ├── semphr.h │ ├── stm32f4xx_it.h │ ├── task.h │ └── timers.h │ ├── main.cpp │ ├── main.h │ ├── ros.c │ ├── ros.h │ ├── ros_main.cpp │ ├── wiring.cpp │ └── wiring.h └── tutorials ├── CMakeLists.txt ├── package.xml └── src ├── imu_listener.cpp ├── logger_listener.cpp ├── talker.cpp └── ultrasonic_listener.cpp /.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Real-Time ROS Nodes on STM32F4 2 | 3 | ## description 4 | An embedded system supporting multiple ROS nodes that are able to communicate with one another using inter-process communication and with other ROS-compatible devices over a network. 5 | consists of an STM32F4Discovery board, the FreeRTOS os, embedded ROS middleware, embedded ROS client library, ROS nodes and sensor libraries application layer. 6 | 7 | 8 | With this software, ROS developers do not have to know the complexities of the real-time operating system. 9 | ROS Client Library allows ROS developers to create Nodes, Publishers, Subscribers, and define ROS messages. 10 | This is why they can program their nodes as if they were writing code on a general-purpose computer. 11 | 12 | 13 | The software includes two different scheduling schemes: priority and deadline. 14 | If deadline scheduling is enabled, application developers can assign deadlines to periodic tasks in order to make sure that they are completed before this deadline as long as the system is not overloaded. 15 | 16 | 17 | ## contents 18 | 19 | * src/main : project main source code tree 20 | * src/apps : freertos tasks for each ros nodes and node drivers 21 | * src/board : bsp and device drivers for stm32f4discovery board 22 | * src/device : device driver support 23 | * src/core/os/kernel : freertos source code tree 24 | * src/core/os/syslibs : math and io support librarys 25 | * src/core/rcl : middleware for ros runable in embedded environment 26 | * src/core/rmw : xml rpc server and client built on lwip udp 27 | * src/core/lwip : lwip and port files for stm32f4 28 | * scripts : cmake script file to generate the project makefile 29 | * tutorials : ros node tutorials can be executed in embedded environment 30 | 31 | 32 | ## warning: 33 | This project is a experimental software, a fork of [stm32](https://github.com/bosch-ros-pkg/stm32) 34 | 35 | ## license 36 | Much of the code and documentation enclosed is copyright by the Free Software Foundation, Inc. 37 | See the file copyright/license in the various directories 38 | -------------------------------------------------------------------------------- /src/apps/nodes.h: -------------------------------------------------------------------------------- 1 | #ifndef ASW_APPS_APPLICATION_TASKS_H_ 2 | #define ASW_APPS_APPLICATION_TASKS_H_ 3 | 4 | #include "nodes/ultrasonic_sensor/ultrasonic_sensor.h" 5 | #include "nodes/imu_sensor/imu_sensor.h" 6 | #include "nodes/new_task/new_task.h" 7 | #include "nodes/logger/logger.h" 8 | #include "nodes/listener/listener.h" 9 | #include "nodes/speed_setter/speed_setter.h" 10 | 11 | typedef struct node_descriptor { 12 | char name[32]; 13 | void (*function)(void* params); 14 | unsigned long deadline; 15 | 16 | } node_decriptor; 17 | 18 | node_decriptor nodes[] = { 19 | {"ultrasonic_sensor", ultrasonic_sensor, 50}, 20 | {"imu_sensor", imu_sensor, 100}, 21 | {"new_task", new_task, 15}, 22 | {"speed_setter", speed_setter, 40} 23 | }; 24 | 25 | #endif /* ASW_APPS_APPLICATION_TASKS_H_ */ 26 | -------------------------------------------------------------------------------- /src/apps/nodes/imu_sensor/imu_sensor.cpp: -------------------------------------------------------------------------------- 1 | #include "device_config.h" 2 | #include "imu_sensor.h" 3 | #include "rcl.h" 4 | #include "Node.h" 5 | #include "Publisher.h" 6 | #include "Subscriber.h" 7 | #include "MPU6050/MPU6050.h" 8 | #include "sensor_msgs/Imu.h" 9 | 10 | // Period in milliseconds 11 | #define PUBLISH_PERIOD 100 12 | 13 | using namespace sensor_msgs; 14 | using namespace ros; 15 | Publisher* imu_pub; 16 | 17 | void imuLoop() 18 | { 19 | // Read IMU data from sensor. 20 | MPU6050::IMU data; 21 | MPU6050::readIMU(&data); 22 | 23 | Imu msg; 24 | 25 | msg.linear_acceleration.x = data.x_accel; 26 | msg.linear_acceleration.y = data.y_accel; 27 | msg.linear_acceleration.z = data.z_accel; 28 | 29 | msg.angular_velocity.x = data.x_gyro; 30 | msg.angular_velocity.y = data.y_gyro; 31 | msg.angular_velocity.z = data.z_gyro; 32 | 33 | imu_pub->publish(msg); 34 | } 35 | 36 | void imu_sensor(void* p) 37 | { 38 | // Register node in the ROS system and create a publisher with imu topic. 39 | Node* n = new Node("imu_sensor_"ROS_NODE_UNIQUE_ID); 40 | imu_pub = new Publisher; 41 | imu_pub->advertise(n, "imu"); 42 | 43 | // Initialize sensor. 44 | MPU6050::init(); 45 | 46 | // Begin periodic loop with PUBLISH_PERIOD in milliseconds. 47 | spinLoop(imuLoop, PUBLISH_PERIOD); 48 | 49 | // Code never reaches here, deleting allocated memory is not necessary. 50 | } 51 | -------------------------------------------------------------------------------- /src/apps/nodes/imu_sensor/imu_sensor.h: -------------------------------------------------------------------------------- 1 | void imu_sensor(void* p); 2 | -------------------------------------------------------------------------------- /src/apps/nodes/listener/listener.cpp: -------------------------------------------------------------------------------- 1 | #include "device_config.h" 2 | #include 3 | #include "rcl.h" 4 | #include "Node.h" 5 | #include "Publisher.h" 6 | #include "Subscriber.h" 7 | #include "std_msgs/String.h" 8 | 9 | using namespace std_msgs; 10 | 11 | void chatterCallback(const String& msg) 12 | { 13 | // Print message 14 | //LOG("Listener: %s\n", msg.data); 15 | os_printf("Listener: %s\n", msg.data); 16 | } 17 | 18 | void voidLoop() 19 | { 20 | 21 | } 22 | 23 | void listener(void* params) 24 | { 25 | // Register node in the ROS system 26 | ros::Node* n = new ros::Node("listener_"ROS_NODE_UNIQUE_ID); // TODO: Unique ID may need to be added later in case multiple STM32s will be connected to the same bus. 27 | 28 | // Subscribe to "chatter" topic. 29 | ros::Subscriber* sub = new ros::Subscriber(n, "chatter", chatterCallback); 30 | 31 | spinLoop(voidLoop, 10000); 32 | // Code never reaches here, deleting allocated memory is not necessary. 33 | } 34 | -------------------------------------------------------------------------------- /src/apps/nodes/listener/listener.h: -------------------------------------------------------------------------------- 1 | void listener(void* params); 2 | -------------------------------------------------------------------------------- /src/apps/nodes/logger/logger.cpp: -------------------------------------------------------------------------------- 1 | #include "device_config.h" 2 | #include "logger.h" 3 | #include "rcl.h" 4 | #include "Node.h" 5 | #include "Publisher.h" 6 | #include "Subscriber.h" 7 | #include "std_msgs/String.h" 8 | 9 | using namespace std_msgs; 10 | 11 | extern "C" xQueueHandle terminalQueue; 12 | #define MAX_CHARS 128 13 | #define TERMINAL_QUEUE_LEN 10 14 | #define TERMINAL_QUEUE_TIMEOUT 10 15 | 16 | ros::Publisher* logger_pub; 17 | 18 | void loggerLoop() 19 | { 20 | 21 | } 22 | #include 23 | 24 | void LOG(const char* fmt, ...) 25 | { 26 | if (logger_pub) 27 | { 28 | va_list ap; 29 | char string[MAX_CHARS]; 30 | 31 | va_start(ap, fmt); 32 | vsprintf(string, fmt, ap); 33 | va_end(ap); 34 | 35 | String msg; 36 | msg.data = string; 37 | logger_pub->publish(msg); 38 | } 39 | } 40 | 41 | void logger(void* params) 42 | { 43 | // Register node in the ROS system. 44 | ros::Node* n = new ros::Node("stm32_logger_"ROS_NODE_UNIQUE_ID); // TODO: Unique ID may need to be added later in case multiple STM32s will be connected to the same bus. 45 | logger_pub = new ros::Publisher; 46 | logger_pub->advertise(n, "logger"); 47 | 48 | spinLoop(loggerLoop, 10000); 49 | // Code never reaches here, deleting allocated memory is not necessary. 50 | } 51 | -------------------------------------------------------------------------------- /src/apps/nodes/logger/logger.h: -------------------------------------------------------------------------------- 1 | void logger(void* params); 2 | -------------------------------------------------------------------------------- /src/apps/nodes/new_task/new_task.cpp: -------------------------------------------------------------------------------- 1 | #include "new_task.h" 2 | #include "rcl.h" 3 | #include "Node.h" 4 | #include "Publisher.h" 5 | #include "Subscriber.h" 6 | #include "std_msgs/Int32.h" 7 | 8 | // Period in milliseconds 9 | #define PUBLISH_PERIOD 15 10 | 11 | using namespace std_msgs; 12 | using namespace ros; 13 | Publisher* new_pub; 14 | 15 | void newLoop() 16 | { 17 | static int counter=0; 18 | for (volatile int i = 0; i< 30000; i++); 19 | Int32 msg; 20 | msg.data = counter++; 21 | new_pub->publish(msg); 22 | } 23 | 24 | void new_task(void* p) 25 | { 26 | // Register node in the ROS system and create a publisher with imu topic. 27 | Node* n = new Node("new_task"); 28 | new_pub = new Publisher; 29 | new_pub->advertise(n, "new_task"); 30 | 31 | // Begin periodic loop with PUBLISH_PERIOD in milliseconds. 32 | spinLoop(newLoop, PUBLISH_PERIOD); 33 | 34 | // Code never reaches here, deleting allocated memory is not necessary. 35 | } 36 | -------------------------------------------------------------------------------- /src/apps/nodes/new_task/new_task.h: -------------------------------------------------------------------------------- 1 | void new_task(void* p); 2 | -------------------------------------------------------------------------------- /src/apps/nodes/speed_setter/speed_setter.h: -------------------------------------------------------------------------------- 1 | void speed_setter(void* p); 2 | -------------------------------------------------------------------------------- /src/apps/nodes/ultrasonic_sensor/ultrasonic_sensor.cpp: -------------------------------------------------------------------------------- 1 | #include "device_config.h" 2 | #include "ultrasonic_sensor.h" 3 | #include "rcl.h" 4 | #include "Node.h" 5 | #include "Publisher.h" 6 | #include "Subscriber.h" 7 | #include "sensor_msgs/Range.h" 8 | #include "HCSR04Sensor/HCSR04.h" 9 | 10 | // Period in milliseconds 11 | #define PUBLISH_PERIOD 300 12 | 13 | using namespace sensor_msgs; 14 | 15 | ros::Publisher* ultrasonic_pub; 16 | 17 | void ultrasonicLoop() 18 | { 19 | Range msg; 20 | msg.radiation_type = Range::ULTRASOUND; 21 | msg.min_range = 0.03f; 22 | msg.max_range = 2.0f; 23 | 24 | // Get distance value acquired by ultrasonic sensor in meters. 25 | float distance_m = HCSR04::pingMedian(5)/100.0f; 26 | 27 | if (distance_m > NO_ECHO) 28 | { 29 | msg.range = distance_m; 30 | ultrasonic_pub->publish(msg); 31 | } 32 | LOG("Publish"); 33 | } 34 | 35 | void ultrasonic_sensor(void* params) 36 | { 37 | // Register node in the ROS system and create a publisher with ultrasound topic. 38 | ros::Node* n = new ros::Node("ultrasonic_sensor_"ROS_NODE_UNIQUE_ID); 39 | ultrasonic_pub = new ros::Publisher; 40 | ultrasonic_pub->advertise(n, "ultrasound"); 41 | 42 | // Initialize sensor. 43 | HCSR04::init(); 44 | 45 | // Begin periodic loop with PUBLISH_PERIOD in milliseconds. 46 | spinLoop(ultrasonicLoop, PUBLISH_PERIOD); 47 | 48 | // Code never reaches here, deleting allocated memory is not necessary. 49 | } 50 | -------------------------------------------------------------------------------- /src/apps/nodes/ultrasonic_sensor/ultrasonic_sensor.h: -------------------------------------------------------------------------------- 1 | void ultrasonic_sensor(void* params); 2 | -------------------------------------------------------------------------------- /src/apps/readme.md: -------------------------------------------------------------------------------- 1 | 2 | ## notes 3 | 4 | In order to add a node to the system, the node needs to be registered in apps/nodes.h. 5 | 6 | ``` cpp 7 | #ifndef ASW_APPS_APPLICATION_TASKS_H_ 8 | #define ASW_APPS_APPLICATION_TASKS_H_ 9 | 10 | #include "nodes/ultrasonic_sensor/ultrasonic_sensor.h" 11 | #include "nodes/imu_sensor/imu_sensor.h" 12 | #include "nodes/my_node/my_node.h" 13 | 14 | typedef struct node_descriptor { 15 | char name[32]; 16 | void (*function)(void* params); 17 | int deadline; // if deadline scheduling is enabled 18 | 19 | } node_decriptor; 20 | 21 | node_decriptor nodes[] = { 22 | {"ultrasonic_sensor", ultrasonic_sensor, 50}, 23 | {"imu_sensor", imu_sensor, 30}, 24 | {"my_node", my_node_function, NO_DEADLINE}, 25 | }; 26 | 27 | 28 | #endif /* ASW_APPS_APPLICATION_TASKS_H_ */ 29 | ``` 30 | 31 | For each function registered in nodes.h (i.e. ultrasonic_sensor, imu_sensor, and my_node_function), 32 | a function has to be declared and defined, which has an argument of type void*. 33 | Here is an example code for ultrasonic_sensor node function. 34 | 35 | 36 | ``` cpp 37 | #include "ultrasonic_sensor.h" 38 | #include "rcl.h" 39 | #include "Node.h" 40 | #include "Publisher.h" 41 | #include "Subscriber.h" 42 | #include "sensor_msgs/Range.h" 43 | #include "HCSR04Sensor/HCSR04.h" 44 | 45 | // Period in milliseconds 46 | #define PUBLISH_PERIOD 300 47 | 48 | using namespace sensor_msgs; 49 | 50 | ros::Publisher* ultrasonic_pub; 51 | 52 | void ultrasonicLoop() 53 | { 54 | Range msg; 55 | msg.radiation_type = Range::ULTRASOUND; 56 | msg.min_range = 0.03f; 57 | msg.max_range = 2.0f; 58 | 59 | // Get distance value acquired by ultrasonic sensor in meters. 60 | float distance_m = HCSR04::pingMedian(5)/100.0f; 61 | 62 | if (distance_m > -1) 63 | { 64 | msg.range = distance_m; 65 | ultrasonic_pub->publish(msg); 66 | } 67 | } 68 | 69 | void ultrasonic_sensor(void* params) 70 | { 71 | // Register node in the ROS system and create a publisher with ultrasound topic. 72 | ros::Node* n = new ros::Node("ultrasonic_sensor"); 73 | ultrasonic_pub = new ros::Publisher; 74 | ultrasonic_pub->advertise(n, "ultrasound"); 75 | 76 | // Initialize sensor. 77 | HCSR04::init(); 78 | 79 | // Begin periodic loop with PUBLISH_PERIOD in milliseconds. 80 | spinLoop(ultrasonicLoop, PUBLISH_PERIOD); 81 | 82 | // Code never reaches here, deleting allocated memory is not necessary. 83 | } 84 | ``` 85 | 86 | -------------------------------------------------------------------------------- /src/board/Shell/DMA_Setup.h: -------------------------------------------------------------------------------- 1 | /*! ************************************************************************************************* 2 | * 3 | * \file 4 | * 5 | * (C) All rights reserved by Institute of Automatic Control, Leibniz University Hannover 6 | * 7 | * ************************************************************************************************** 8 | * 9 | * File: DMA_Setup.h 10 | * 11 | * Purpose: DMA setup of the Shell for input and output. 12 | * 13 | * Author Date Comments 14 | * Super Mario 04-Sep-12 Initial Creation 15 | * 16 | ***************************************************************************************************** 17 | */ 18 | #ifndef DMA_SETUP_H_ 19 | #define DMA_SETUP_H_ 20 | /* 21 | *************************************************************************************************** 22 | * Defines 23 | *************************************************************************************************** 24 | */ 25 | #define USART1_DR_ADDRESS ((uint32_t)0x40013804) 26 | #define USART2_DR_ADDRESS ((uint32_t)0x40004404) 27 | #define USART3_DR_ADDRESS ((uint32_t)0x40004804) 28 | 29 | #define BUFFERSIZEDMARX 256 30 | #define BUFFERSIZEDMATX 2048 31 | /* 32 | * ************************************************************************************************* 33 | * Function prototypes 34 | * ************************************************************************************************* 35 | */ 36 | void USART3_DMA_Config(void); 37 | void DMATxInit(void); 38 | 39 | #endif 40 | 41 | -------------------------------------------------------------------------------- /src/board/Shell/USART_Setup.h: -------------------------------------------------------------------------------- 1 | /** @defgroup USART_BaudRate 2 | * @{ 3 | */ 4 | #define USART_BaudRate_9600 9600 5 | #define USART_BaudRate_115200 115200 6 | 7 | 8 | 9 | #define size_DMA_Buffer_Shell ( 256 ) 10 | -------------------------------------------------------------------------------- /src/board/stm32f1xx/CPU/CMSIS/Core/Documentation/CMSIS_Core.htm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lembed/ROS-FreeRTOS-STM32/b152c169a812bc1139ed90ba7897bfc41e7f4893/src/board/stm32f1xx/CPU/CMSIS/Core/Documentation/CMSIS_Core.htm -------------------------------------------------------------------------------- /src/board/stm32f1xx/CPU/CMSIS/License.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lembed/ROS-FreeRTOS-STM32/b152c169a812bc1139ed90ba7897bfc41e7f4893/src/board/stm32f1xx/CPU/CMSIS/License.doc -------------------------------------------------------------------------------- /src/board/stm32f1xx/CPU/StartUp/fault_handlers.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Fault handlers, stolen from FreeRTOS web (www.FreeRTOS.org) 3 | * 4 | * 2009-2010 Michal Demin 5 | * 6 | */ 7 | #include 8 | 9 | void MemManage_Handler(void) __attribute__((naked)); 10 | void BusFault_Handler(void) __attribute__ ((naked)); 11 | void UsageFault_Handler(void) __attribute__ ((naked)); 12 | 13 | struct stack_t { 14 | uint32_t r0; 15 | uint32_t r1; 16 | uint32_t r2; 17 | uint32_t r3; 18 | uint32_t r12; 19 | uint32_t lr; 20 | uint32_t pc; 21 | uint32_t psr; 22 | }; 23 | 24 | void halt_faulty(struct stack_t *faulty_stack) { 25 | (void)faulty_stack; 26 | /* Inspect faulty_stack->pc to locate the offending instruction. */ 27 | while(1); 28 | } 29 | 30 | 31 | void MemManage_Handler(void) { 32 | __asm volatile 33 | ( 34 | " tst lr, #4 \n" 35 | " ite eq \n" 36 | " mrseq r0, msp \n" 37 | " mrsne r0, psp \n" 38 | " ldr r1, [r0, #24] \n" 39 | " ldr r2, mem_handler_const \n" 40 | " bx r2 \n" 41 | " mem_handler_const: .word halt_faulty\n" 42 | ); 43 | } 44 | 45 | void BusFault_Handler(void) { 46 | __asm volatile 47 | ( 48 | " tst lr, #4 \n" 49 | " ite eq \n" 50 | " mrseq r0, msp \n" 51 | " mrsne r0, psp \n" 52 | " ldr r1, [r0, #24] \n" 53 | " ldr r2, bus_handler_const \n" 54 | " bx r2 \n" 55 | " bus_handler_const: .word halt_faulty\n" 56 | ); 57 | } 58 | 59 | void UsageFault_Handler(void) { 60 | __asm volatile 61 | ( 62 | " tst lr, #4 \n" 63 | " ite eq \n" 64 | " mrseq r0, msp \n" 65 | " mrsne r0, psp \n" 66 | " ldr r1, [r0, #24] \n" 67 | " ldr r2, usage_handler_const \n" 68 | " bx r2 \n" 69 | " usage_handler_const: .word halt_faulty\n" 70 | ); 71 | } 72 | 73 | -------------------------------------------------------------------------------- /src/board/stm32f1xx/STM32F10x_StdPeriph_Driver/inc/stm32f10x_crc.h: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * @file stm32f10x_crc.h 4 | * @author MCD Application Team 5 | * @version V3.1.2 6 | * @date 09/28/2009 7 | * @brief This file contains all the functions prototypes for the CRC firmware 8 | * library. 9 | ****************************************************************************** 10 | * @copy 11 | * 12 | * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS 13 | * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE 14 | * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY 15 | * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING 16 | * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE 17 | * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. 18 | * 19 | *

© COPYRIGHT 2009 STMicroelectronics

20 | */ 21 | 22 | /* Define to prevent recursive inclusion -------------------------------------*/ 23 | #ifndef __STM32F10x_CRC_H 24 | #define __STM32F10x_CRC_H 25 | 26 | #ifdef __cplusplus 27 | extern "C" { 28 | #endif 29 | 30 | /* Includes ------------------------------------------------------------------*/ 31 | #include "stm32f10x.h" 32 | 33 | /** @addtogroup STM32F10x_StdPeriph_Driver 34 | * @{ 35 | */ 36 | 37 | /** @addtogroup CRC 38 | * @{ 39 | */ 40 | 41 | /** @defgroup CRC_Exported_Types 42 | * @{ 43 | */ 44 | 45 | /** 46 | * @} 47 | */ 48 | 49 | /** @defgroup CRC_Exported_Constants 50 | * @{ 51 | */ 52 | 53 | /** 54 | * @} 55 | */ 56 | 57 | /** @defgroup CRC_Exported_Macros 58 | * @{ 59 | */ 60 | 61 | /** 62 | * @} 63 | */ 64 | 65 | /** @defgroup CRC_Exported_Functions 66 | * @{ 67 | */ 68 | 69 | void CRC_ResetDR(void); 70 | uint32_t CRC_CalcCRC(uint32_t Data); 71 | uint32_t CRC_CalcBlockCRC(uint32_t pBuffer[], uint32_t BufferLength); 72 | uint32_t CRC_GetCRC(void); 73 | void CRC_SetIDRegister(uint8_t IDValue); 74 | uint8_t CRC_GetIDRegister(void); 75 | 76 | #ifdef __cplusplus 77 | } 78 | #endif 79 | 80 | #endif /* __STM32F10x_CRC_H */ 81 | /** 82 | * @} 83 | */ 84 | 85 | /** 86 | * @} 87 | */ 88 | 89 | /** 90 | * @} 91 | */ 92 | 93 | /******************* (C) COPYRIGHT 2009 STMicroelectronics *****END OF FILE****/ 94 | -------------------------------------------------------------------------------- /src/board/stm32f1xx/STM32F10x_StdPeriph_Driver/inc/stm32f10x_fsmc.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lembed/ROS-FreeRTOS-STM32/b152c169a812bc1139ed90ba7897bfc41e7f4893/src/board/stm32f1xx/STM32F10x_StdPeriph_Driver/inc/stm32f10x_fsmc.h -------------------------------------------------------------------------------- /src/board/stm32f1xx/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lembed/ROS-FreeRTOS-STM32/b152c169a812bc1139ed90ba7897bfc41e7f4893/src/board/stm32f1xx/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c -------------------------------------------------------------------------------- /src/board/stm32f1xx/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lembed/ROS-FreeRTOS-STM32/b152c169a812bc1139ed90ba7897bfc41e7f4893/src/board/stm32f1xx/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c -------------------------------------------------------------------------------- /src/board/stm32f1xx/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lembed/ROS-FreeRTOS-STM32/b152c169a812bc1139ed90ba7897bfc41e7f4893/src/board/stm32f1xx/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c -------------------------------------------------------------------------------- /src/board/stm32f1xx/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lembed/ROS-FreeRTOS-STM32/b152c169a812bc1139ed90ba7897bfc41e7f4893/src/board/stm32f1xx/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c -------------------------------------------------------------------------------- /src/board/stm32f1xx/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lembed/ROS-FreeRTOS-STM32/b152c169a812bc1139ed90ba7897bfc41e7f4893/src/board/stm32f1xx/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c -------------------------------------------------------------------------------- /src/board/stm32f1xx/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lembed/ROS-FreeRTOS-STM32/b152c169a812bc1139ed90ba7897bfc41e7f4893/src/board/stm32f1xx/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c -------------------------------------------------------------------------------- /src/board/stm32f1xx/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lembed/ROS-FreeRTOS-STM32/b152c169a812bc1139ed90ba7897bfc41e7f4893/src/board/stm32f1xx/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c -------------------------------------------------------------------------------- /src/board/stm32f1xx/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lembed/ROS-FreeRTOS-STM32/b152c169a812bc1139ed90ba7897bfc41e7f4893/src/board/stm32f1xx/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c -------------------------------------------------------------------------------- /src/board/stm32f1xx/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lembed/ROS-FreeRTOS-STM32/b152c169a812bc1139ed90ba7897bfc41e7f4893/src/board/stm32f1xx/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c -------------------------------------------------------------------------------- /src/board/stm32f1xx/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lembed/ROS-FreeRTOS-STM32/b152c169a812bc1139ed90ba7897bfc41e7f4893/src/board/stm32f1xx/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c -------------------------------------------------------------------------------- /src/board/stm32f1xx/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lembed/ROS-FreeRTOS-STM32/b152c169a812bc1139ed90ba7897bfc41e7f4893/src/board/stm32f1xx/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c -------------------------------------------------------------------------------- /src/board/stm32f1xx/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lembed/ROS-FreeRTOS-STM32/b152c169a812bc1139ed90ba7897bfc41e7f4893/src/board/stm32f1xx/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c -------------------------------------------------------------------------------- /src/board/stm32f1xx/net/Ethernet/Delay.c: -------------------------------------------------------------------------------- 1 | /* Includes ------------------------------------------------------------------*/ 2 | #include "stm32f10x.h" 3 | #include "Delay.h" 4 | 5 | __IO uint32_t TimingDelay; 6 | uint32_t MillisCounter = 0; 7 | 8 | /** 9 | * @brief Decrements the TimingDelay variable. 10 | * @param None 11 | * @retval None 12 | */ 13 | void TimingDelay_Decrement(void) 14 | { 15 | if (TimingDelay != 0x00) 16 | { 17 | TimingDelay--; 18 | } 19 | } 20 | 21 | void Delay_Ms(__IO uint32_t nTime) 22 | { 23 | int i; 24 | //TimingDelay = nTime; 25 | 26 | //while(TimingDelay != 0); 27 | for ( i = 0; i < nTime * 1000; i++); 28 | } 29 | 30 | void Delay_us(__IO uint32_t nTime) 31 | { 32 | nTime = nTime * 50; 33 | while (nTime > 0) 34 | { 35 | nTime--; 36 | } 37 | } 38 | 39 | void IncreaseMillis(void) 40 | { 41 | MillisCounter++; 42 | } 43 | 44 | uint32_t Millis(void) 45 | { 46 | return MillisCounter; 47 | } 48 | -------------------------------------------------------------------------------- /src/board/stm32f1xx/net/Ethernet/Delay.h: -------------------------------------------------------------------------------- 1 | #ifndef __DELAY_H__ 2 | #define __DELAY_H__ 3 | 4 | #include "stm32f10x.h" 5 | 6 | extern __IO uint32_t TimingDelay; 7 | extern uint32_t MillisCounter; 8 | 9 | void TimingDelay_Decrement(void); 10 | 11 | void Delay_Ms(__IO uint32_t nTime); 12 | void Delay_us(__IO uint32_t nTime); 13 | 14 | void IncreaseMillis(void); 15 | uint32_t Millis(void); 16 | 17 | #endif /* __DELAY_H__ */ 18 | -------------------------------------------------------------------------------- /src/board/stm32f4xx/CPU/startup/stm32f4xx.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lembed/ROS-FreeRTOS-STM32/b152c169a812bc1139ed90ba7897bfc41e7f4893/src/board/stm32f4xx/CPU/startup/stm32f4xx.h -------------------------------------------------------------------------------- /src/board/stm32f4xx/CPU/startup/system_stm32f4xx.h: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * @file system_stm32f4xx.h 4 | * @author MCD Application Team 5 | * @version V1.0.0 6 | * @date 30-September-2011 7 | * @brief CMSIS Cortex-M4 Device System Source File for STM32F4xx devices. 8 | ****************************************************************************** 9 | * @attention 10 | * 11 | * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS 12 | * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE 13 | * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY 14 | * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING 15 | * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE 16 | * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. 17 | * 18 | *

© COPYRIGHT 2011 STMicroelectronics

19 | ****************************************************************************** 20 | */ 21 | 22 | /** @addtogroup CMSIS 23 | * @{ 24 | */ 25 | 26 | /** @addtogroup stm32f4xx_system 27 | * @{ 28 | */ 29 | 30 | /** 31 | * @brief Define to prevent recursive inclusion 32 | */ 33 | #ifndef __SYSTEM_STM32F4XX_H 34 | #define __SYSTEM_STM32F4XX_H 35 | 36 | #ifdef __cplusplus 37 | extern "C" { 38 | #endif 39 | 40 | /** @addtogroup STM32F4xx_System_Includes 41 | * @{ 42 | */ 43 | 44 | /** 45 | * @} 46 | */ 47 | 48 | 49 | /** @addtogroup STM32F4xx_System_Exported_types 50 | * @{ 51 | */ 52 | 53 | extern uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */ 54 | 55 | 56 | /** 57 | * @} 58 | */ 59 | 60 | /** @addtogroup STM32F4xx_System_Exported_Constants 61 | * @{ 62 | */ 63 | 64 | /** 65 | * @} 66 | */ 67 | 68 | /** @addtogroup STM32F4xx_System_Exported_Macros 69 | * @{ 70 | */ 71 | 72 | /** 73 | * @} 74 | */ 75 | 76 | /** @addtogroup STM32F4xx_System_Exported_Functions 77 | * @{ 78 | */ 79 | 80 | extern void SystemInit(void); 81 | extern void SystemCoreClockUpdate(void); 82 | /** 83 | * @} 84 | */ 85 | 86 | #ifdef __cplusplus 87 | } 88 | #endif 89 | 90 | #endif /*__SYSTEM_STM32F4XX_H */ 91 | 92 | /** 93 | * @} 94 | */ 95 | 96 | /** 97 | * @} 98 | */ 99 | /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ 100 | -------------------------------------------------------------------------------- /src/board/stm32f4xx/drivers/STM32F4x7_ETH_Driver/inc/stm32f4x7_eth.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lembed/ROS-FreeRTOS-STM32/b152c169a812bc1139ed90ba7897bfc41e7f4893/src/board/stm32f4xx/drivers/STM32F4x7_ETH_Driver/inc/stm32f4x7_eth.h -------------------------------------------------------------------------------- /src/board/stm32f4xx/drivers/STM32F4x7_ETH_Driver/src/stm32f4x7_eth.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lembed/ROS-FreeRTOS-STM32/b152c169a812bc1139ed90ba7897bfc41e7f4893/src/board/stm32f4xx/drivers/STM32F4x7_ETH_Driver/src/stm32f4x7_eth.c -------------------------------------------------------------------------------- /src/board/stm32f4xx/drivers/inc/stm32f4xx_crc.h: -------------------------------------------------------------------------------- 1 | /** 2 | ****************************************************************************** 3 | * @file stm32f4xx_crc.h 4 | * @author MCD Application Team 5 | * @version V1.0.0 6 | * @date 30-September-2011 7 | * @brief This file contains all the functions prototypes for the CRC firmware 8 | * library. 9 | ****************************************************************************** 10 | * @attention 11 | * 12 | * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS 13 | * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE 14 | * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY 15 | * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING 16 | * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE 17 | * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. 18 | * 19 | *

© COPYRIGHT 2011 STMicroelectronics

20 | ****************************************************************************** 21 | */ 22 | 23 | /* Define to prevent recursive inclusion -------------------------------------*/ 24 | #ifndef __STM32F4xx_CRC_H 25 | #define __STM32F4xx_CRC_H 26 | 27 | #ifdef __cplusplus 28 | extern "C" { 29 | #endif 30 | 31 | /* Includes ------------------------------------------------------------------*/ 32 | #include "stm32f4xx.h" 33 | 34 | /** @addtogroup STM32F4xx_StdPeriph_Driver 35 | * @{ 36 | */ 37 | 38 | /** @addtogroup CRC 39 | * @{ 40 | */ 41 | 42 | /* Exported types ------------------------------------------------------------*/ 43 | /* Exported constants --------------------------------------------------------*/ 44 | 45 | /** @defgroup CRC_Exported_Constants 46 | * @{ 47 | */ 48 | 49 | /** 50 | * @} 51 | */ 52 | 53 | /* Exported macro ------------------------------------------------------------*/ 54 | /* Exported functions --------------------------------------------------------*/ 55 | 56 | void CRC_ResetDR(void); 57 | uint32_t CRC_CalcCRC(uint32_t Data); 58 | uint32_t CRC_CalcBlockCRC(uint32_t pBuffer[], uint32_t BufferLength); 59 | uint32_t CRC_GetCRC(void); 60 | void CRC_SetIDRegister(uint8_t IDValue); 61 | uint8_t CRC_GetIDRegister(void); 62 | 63 | #ifdef __cplusplus 64 | } 65 | #endif 66 | 67 | #endif /* __STM32F4xx_CRC_H */ 68 | 69 | /** 70 | * @} 71 | */ 72 | 73 | /** 74 | * @} 75 | */ 76 | 77 | /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ 78 | -------------------------------------------------------------------------------- /src/board/stm32f4xx/drivers/src/stm32f4xx_flash.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lembed/ROS-FreeRTOS-STM32/b152c169a812bc1139ed90ba7897bfc41e7f4893/src/board/stm32f4xx/drivers/src/stm32f4xx_flash.c -------------------------------------------------------------------------------- /src/board/stm32f4xx/drivers/src/stm32f4xx_rcc.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lembed/ROS-FreeRTOS-STM32/b152c169a812bc1139ed90ba7897bfc41e7f4893/src/board/stm32f4xx/drivers/src/stm32f4xx_rcc.c -------------------------------------------------------------------------------- /src/board/stm32f4xx/ldscripts/libs.ld: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Placeholder to list other libraries required by the application. 4 | 5 | GROUP( 6 | ) 7 | 8 | */ 9 | -------------------------------------------------------------------------------- /src/board/stm32f4xx/ldscripts/mem.ld: -------------------------------------------------------------------------------- 1 | /* 2 | * Memory Spaces Definitions. 3 | * 4 | * Need modifying for a specific board. 5 | * FLASH.ORIGIN: starting address of flash 6 | * FLASH.LENGTH: length of flash 7 | * RAM.ORIGIN: starting address of RAM bank 0 8 | * RAM.LENGTH: length of RAM bank 0 9 | * 10 | * The values below can be addressed in further linker scripts 11 | * using functions like 'ORIGIN(RAM)' or 'LENGTH(RAM)'. 12 | */ 13 | 14 | MEMORY 15 | { 16 | RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 128K 17 | CCMRAM (xrw) : ORIGIN = 0x10000000, LENGTH = 64K 18 | FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 1024K 19 | FLASHB1 (rx) : ORIGIN = 0x00000000, LENGTH = 0 20 | EXTMEMB0 (rx) : ORIGIN = 0x00000000, LENGTH = 0 21 | EXTMEMB1 (rx) : ORIGIN = 0x00000000, LENGTH = 0 22 | EXTMEMB2 (rx) : ORIGIN = 0x00000000, LENGTH = 0 23 | EXTMEMB3 (rx) : ORIGIN = 0x00000000, LENGTH = 0 24 | MEMORY_ARRAY (xrw) : ORIGIN = 0x20002000, LENGTH = 32 25 | } 26 | 27 | /* 28 | * For external ram use something like: 29 | 30 | RAM (xrw) : ORIGIN = 0x64000000, LENGTH = 2048K 31 | 32 | */ 33 | -------------------------------------------------------------------------------- /src/core/lwip-1.4.0/CHANGELOG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lembed/ROS-FreeRTOS-STM32/b152c169a812bc1139ed90ba7897bfc41e7f4893/src/core/lwip-1.4.0/CHANGELOG -------------------------------------------------------------------------------- /src/core/lwip-1.4.0/COPYING: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2001, 2002 Swedish Institute of Computer Science. 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without modification, 6 | * are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, 9 | * this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 3. The name of the author may not be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 17 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 19 | * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 20 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 21 | * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 22 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 23 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 24 | * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 25 | * OF SUCH DAMAGE. 26 | * 27 | * This file is part of the lwIP TCP/IP stack. 28 | * 29 | * Author: Adam Dunkels 30 | * 31 | */ 32 | 33 | 34 | -------------------------------------------------------------------------------- /src/core/lwip-1.4.0/FILES: -------------------------------------------------------------------------------- 1 | src/ - The source code for the lwIP TCP/IP stack. 2 | doc/ - The documentation for lwIP. 3 | 4 | See also the FILES file in each subdirectory. 5 | -------------------------------------------------------------------------------- /src/core/lwip-1.4.0/doc/FILES: -------------------------------------------------------------------------------- 1 | savannah.txt - How to obtain the current development source code. 2 | contrib.txt - How to contribute to lwIP as a developer. 3 | rawapi.txt - The documentation for the core API of lwIP. 4 | Also provides an overview about the other APIs and multithreading. 5 | snmp_agent.txt - The documentation for the lwIP SNMP agent. 6 | sys_arch.txt - The documentation for a system abstraction layer of lwIP. 7 | -------------------------------------------------------------------------------- /src/core/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/include/arch/bpstruct.h: -------------------------------------------------------------------------------- 1 | #pragma pack(push,1) 2 | -------------------------------------------------------------------------------- /src/core/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/include/arch/epstruct.h: -------------------------------------------------------------------------------- 1 | #pragma pack(pop) 2 | -------------------------------------------------------------------------------- /src/core/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/include/arch/perf.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2001, Swedish Institute of Computer Science. 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions 7 | * are met: 8 | * 1. Redistributions of source code must retain the above copyright 9 | * notice, this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright 11 | * notice, this list of conditions and the following disclaimer in the 12 | * documentation and/or other materials provided with the distribution. 13 | * 3. Neither the name of the Institute nor the names of its contributors 14 | * may be used to endorse or promote products derived from this software 15 | * without specific prior written permission. 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 | * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE 21 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 23 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 24 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 25 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27 | * SUCH DAMAGE. 28 | * 29 | * This file is part of the lwIP TCP/IP stack. 30 | * 31 | * Author: Adam Dunkels 32 | * 33 | */ 34 | #ifndef __PERF_H__ 35 | #define __PERF_H__ 36 | 37 | #define PERF_START /* null definition */ 38 | #define PERF_STOP(x) /* null definition */ 39 | 40 | #endif /* __PERF_H__ */ 41 | -------------------------------------------------------------------------------- /src/core/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/include/arch/sys_arch.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2001-2003 Swedish Institute of Computer Science. 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without modification, 6 | * are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, 9 | * this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 3. The name of the author may not be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 17 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 19 | * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 20 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 21 | * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 22 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 23 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 24 | * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 25 | * OF SUCH DAMAGE. 26 | * 27 | * This file is part of the lwIP TCP/IP stack. 28 | * 29 | * Author: Adam Dunkels 30 | * 31 | */ 32 | #ifndef __ARCH_SYS_ARCH_H__ 33 | #define __ARCH_SYS_ARCH_H__ 34 | 35 | #include "FreeRTOS.h" 36 | #include "task.h" 37 | #include "queue.h" 38 | #include "semphr.h" 39 | 40 | #define SYS_MBOX_NULL ( ( QueueHandle_t ) NULL ) 41 | #define SYS_SEM_NULL ( ( SemaphoreHandle_t ) NULL ) 42 | #define SYS_DEFAULT_THREAD_STACK_DEPTH configMINIMAL_STACK_SIZE 43 | 44 | typedef SemaphoreHandle_t sys_sem_t; 45 | typedef SemaphoreHandle_t sys_mutex_t; 46 | typedef QueueHandle_t sys_mbox_t; 47 | typedef TaskHandle_t sys_thread_t; 48 | 49 | #define sys_mbox_valid( x ) ( ( ( *x ) == NULL) ? pdFALSE : pdTRUE ) 50 | #define sys_mbox_set_invalid( x ) ( ( *x ) = NULL ) 51 | #define sys_sem_valid( x ) ( ( ( *x ) == NULL) ? pdFALSE : pdTRUE ) 52 | #define sys_sem_set_invalid( x ) ( ( *x ) = NULL ) 53 | 54 | 55 | #endif /* __ARCH_SYS_ARCH_H__ */ 56 | 57 | -------------------------------------------------------------------------------- /src/core/lwip-1.4.0/ports/STM32F4x7/FreeRTOS/ethernetif.h: -------------------------------------------------------------------------------- 1 | #ifndef __ETHERNETIF_H__ 2 | #define __ETHERNETIF_H__ 3 | 4 | 5 | #include "lwip/err.h" 6 | #include "lwip/netif.h" 7 | 8 | err_t ethernetif_init(struct netif *netif); 9 | 10 | 11 | 12 | #endif 13 | -------------------------------------------------------------------------------- /src/core/lwip-1.4.0/ports/STM32F4x7/arch/bpstruct.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2001-2003 Swedish Institute of Computer Science. 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without modification, 6 | * are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, 9 | * this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 3. The name of the author may not be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 17 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 19 | * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 20 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 21 | * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 22 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 23 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 24 | * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 25 | * OF SUCH DAMAGE. 26 | * 27 | * This file is part of the lwIP TCP/IP stack. 28 | * 29 | * Author: Adam Dunkels 30 | * 31 | */ 32 | 33 | #if defined(__IAR_SYSTEMS_ICC__) 34 | #pragma pack(1) 35 | #endif 36 | 37 | -------------------------------------------------------------------------------- /src/core/lwip-1.4.0/ports/STM32F4x7/arch/cpu.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2001-2003 Swedish Institute of Computer Science. 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without modification, 6 | * are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, 9 | * this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 3. The name of the author may not be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 17 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 19 | * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 20 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 21 | * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 22 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 23 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 24 | * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 25 | * OF SUCH DAMAGE. 26 | * 27 | * This file is part of the lwIP TCP/IP stack. 28 | * 29 | * Author: Adam Dunkels 30 | * 31 | */ 32 | #ifndef __CPU_H__ 33 | #define __CPU_H__ 34 | 35 | #define BYTE_ORDER LITTLE_ENDIAN 36 | 37 | #endif /* __CPU_H__ */ 38 | -------------------------------------------------------------------------------- /src/core/lwip-1.4.0/ports/STM32F4x7/arch/epstruct.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2001-2003 Swedish Institute of Computer Science. 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without modification, 6 | * are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, 9 | * this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 3. The name of the author may not be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 17 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 19 | * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 20 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 21 | * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 22 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 23 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 24 | * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 25 | * OF SUCH DAMAGE. 26 | * 27 | * This file is part of the lwIP TCP/IP stack. 28 | * 29 | * Author: Adam Dunkels 30 | * 31 | */ 32 | 33 | #if defined(__IAR_SYSTEMS_ICC__) 34 | #pragma pack() 35 | #endif 36 | 37 | -------------------------------------------------------------------------------- /src/core/lwip-1.4.0/ports/STM32F4x7/arch/init.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2001-2003 Swedish Institute of Computer Science. 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without modification, 6 | * are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, 9 | * this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 3. The name of the author may not be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 17 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 19 | * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 20 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 21 | * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 22 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 23 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 24 | * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 25 | * OF SUCH DAMAGE. 26 | * 27 | * This file is part of the lwIP TCP/IP stack. 28 | * 29 | * Author: Adam Dunkels 30 | * 31 | */ 32 | #ifndef __ARCH_INIT_H__ 33 | #define __ARCH_INIT_H__ 34 | 35 | #define TCPIP_INIT_DONE(arg) tcpip_init_done(arg) 36 | 37 | void tcpip_init_done(void *); 38 | int wait_for_tcpip_init(void); 39 | 40 | #endif /* __ARCH_INIT_H__ */ 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /src/core/lwip-1.4.0/ports/STM32F4x7/arch/lib.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2001-2003 Swedish Institute of Computer Science. 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without modification, 6 | * are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, 9 | * this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 3. The name of the author may not be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 17 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 19 | * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 20 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 21 | * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 22 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 23 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 24 | * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 25 | * OF SUCH DAMAGE. 26 | * 27 | * This file is part of the lwIP TCP/IP stack. 28 | * 29 | * Author: Adam Dunkels 30 | * 31 | */ 32 | #ifndef __LIB_H__ 33 | #define __LIB_H__ 34 | 35 | #include 36 | 37 | 38 | #endif /* __LIB_H__ */ 39 | -------------------------------------------------------------------------------- /src/core/lwip-1.4.0/ports/STM32F4x7/arch/perf.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2001-2003 Swedish Institute of Computer Science. 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without modification, 6 | * are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, 9 | * this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 3. The name of the author may not be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 17 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 19 | * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 20 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 21 | * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 22 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 23 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 24 | * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 25 | * OF SUCH DAMAGE. 26 | * 27 | * This file is part of the lwIP TCP/IP stack. 28 | * 29 | * Author: Adam Dunkels 30 | * 31 | */ 32 | #ifndef __PERF_H__ 33 | #define __PERF_H__ 34 | 35 | #define PERF_START /* null definition */ 36 | #define PERF_STOP(x) /* null definition */ 37 | 38 | #endif /* __PERF_H__ */ 39 | -------------------------------------------------------------------------------- /src/core/lwip-1.4.0/ports/win32/WinPCap/pcap-bpf.h: -------------------------------------------------------------------------------- 1 | /*- 2 | * Copyright (c) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997 3 | * The Regents of the University of California. All rights reserved. 4 | * 5 | * This code is derived from the Stanford/CMU enet packet filter, 6 | * (net/enet.c) distributed as part of 4.3BSD, and code contributed 7 | * to Berkeley by Steven McCanne and Van Jacobson both of Lawrence 8 | * Berkeley Laboratory. 9 | * 10 | * Redistribution and use in source and binary forms, with or without 11 | * modification, are permitted provided that the following conditions 12 | * are met: 13 | * 1. Redistributions of source code must retain the above copyright 14 | * notice, this list of conditions and the following disclaimer. 15 | * 2. Redistributions in binary form must reproduce the above copyright 16 | * notice, this list of conditions and the following disclaimer in the 17 | * documentation and/or other materials provided with the distribution. 18 | * 3. All advertising materials mentioning features or use of this software 19 | * must display the following acknowledgement: 20 | * This product includes software developed by the University of 21 | * California, Berkeley and its contributors. 22 | * 4. Neither the name of the University nor the names of its contributors 23 | * may be used to endorse or promote products derived from this software 24 | * without specific prior written permission. 25 | * 26 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 27 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 28 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 29 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 30 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 31 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 32 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 33 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 34 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 35 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 36 | * SUCH DAMAGE. 37 | * 38 | * @(#) $Header: /tcpdump/master/libpcap/pcap-bpf.h,v 1.50 2007/04/01 21:43:55 guy Exp $ (LBL) 39 | */ 40 | 41 | /* 42 | * For backwards compatibility. 43 | * 44 | * Note to OS vendors: do NOT get rid of this file! Some applications 45 | * might expect to be able to include . 46 | */ 47 | #include 48 | -------------------------------------------------------------------------------- /src/core/lwip-1.4.0/ports/win32/WinPCap/pcap-namedb.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 1994, 1996 3 | * The Regents of the University of California. All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions 7 | * are met: 8 | * 1. Redistributions of source code must retain the above copyright 9 | * notice, this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright 11 | * notice, this list of conditions and the following disclaimer in the 12 | * documentation and/or other materials provided with the distribution. 13 | * 3. All advertising materials mentioning features or use of this software 14 | * must display the following acknowledgement: 15 | * This product includes software developed by the Computer Systems 16 | * Engineering Group at Lawrence Berkeley Laboratory. 17 | * 4. Neither the name of the University nor of the Laboratory may be used 18 | * to endorse or promote products derived from this software without 19 | * specific prior written permission. 20 | * 21 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 22 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 25 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 | * SUCH DAMAGE. 32 | * 33 | * @(#) $Header: /tcpdump/master/libpcap/pcap-namedb.h,v 1.13 2006/10/04 18:13:32 guy Exp $ (LBL) 34 | */ 35 | 36 | /* 37 | * For backwards compatibility. 38 | * 39 | * Note to OS vendors: do NOT get rid of this file! Some applications 40 | * might expect to be able to include . 41 | */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/core/lwip-1.4.0/ports/win32/WinPCap/pcap/bluetooth.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2006 Paolo Abeni (Italy) 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions 7 | * are met: 8 | * 9 | * 1. Redistributions of source code must retain the above copyright 10 | * notice, this list of conditions and the following disclaimer. 11 | * 2. Redistributions in binary form must reproduce the above copyright 12 | * notice, this list of conditions and the following disclaimer in the 13 | * documentation and/or other materials provided with the distribution. 14 | * 3. The name of the author may not be used to endorse or promote 15 | * products derived from this software without specific prior written 16 | * permission. 17 | * 18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | * 30 | * bluetooth data struct 31 | * By Paolo Abeni 32 | * 33 | * @(#) $Header: /tcpdump/master/libpcap/pcap/bluetooth.h,v 1.1 2007/09/22 02:10:17 guy Exp $ 34 | */ 35 | 36 | #ifndef _PCAP_BLUETOOTH_STRUCTS_H__ 37 | #define _PCAP_BLUETOOTH_STRUCTS_H__ 38 | 39 | /* 40 | * Header prepended libpcap to each bluetooth h:4 frame. 41 | * fields are in network byte order 42 | */ 43 | typedef struct _pcap_bluetooth_h4_header { 44 | u_int32_t direction; /* if first bit is set direction is incoming */ 45 | } pcap_bluetooth_h4_header; 46 | 47 | 48 | #endif 49 | -------------------------------------------------------------------------------- /src/core/lwip-1.4.0/ports/win32/WinPCap/pcap/vlan.h: -------------------------------------------------------------------------------- 1 | /*- 2 | * Copyright (c) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997 3 | * The Regents of the University of California. All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions 7 | * are met: 8 | * 1. Redistributions of source code must retain the above copyright 9 | * notice, this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright 11 | * notice, this list of conditions and the following disclaimer in the 12 | * documentation and/or other materials provided with the distribution. 13 | * 3. All advertising materials mentioning features or use of this software 14 | * must display the following acknowledgement: 15 | * This product includes software developed by the University of 16 | * California, Berkeley and its contributors. 17 | * 4. Neither the name of the University nor the names of its contributors 18 | * may be used to endorse or promote products derived from this software 19 | * without specific prior written permission. 20 | * 21 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 22 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 25 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 | * SUCH DAMAGE. 32 | * 33 | * @(#) $Header: /tcpdump/master/libpcap/pcap/vlan.h,v 1.1.2.2 2008-08-06 07:45:59 guy Exp $ 34 | */ 35 | 36 | #ifndef lib_pcap_vlan_h 37 | #define lib_pcap_vlan_h 38 | 39 | struct vlan_tag { 40 | u_int16_t vlan_tpid; /* ETH_P_8021Q */ 41 | u_int16_t vlan_tci; /* VLAN TCI */ 42 | }; 43 | 44 | #define VLAN_TAG_LEN 4 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /src/core/lwip-1.4.0/ports/win32/WinPCap/wpcap.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lembed/ROS-FreeRTOS-STM32/b152c169a812bc1139ed90ba7897bfc41e7f4893/src/core/lwip-1.4.0/ports/win32/WinPCap/wpcap.lib -------------------------------------------------------------------------------- /src/core/lwip-1.4.0/ports/win32/include/arch/bpstruct.h: -------------------------------------------------------------------------------- 1 | #pragma pack(push,1) 2 | -------------------------------------------------------------------------------- /src/core/lwip-1.4.0/ports/win32/include/arch/epstruct.h: -------------------------------------------------------------------------------- 1 | #pragma pack(pop) 2 | -------------------------------------------------------------------------------- /src/core/lwip-1.4.0/ports/win32/include/arch/perf.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2001, Swedish Institute of Computer Science. 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions 7 | * are met: 8 | * 1. Redistributions of source code must retain the above copyright 9 | * notice, this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright 11 | * notice, this list of conditions and the following disclaimer in the 12 | * documentation and/or other materials provided with the distribution. 13 | * 3. Neither the name of the Institute nor the names of its contributors 14 | * may be used to endorse or promote products derived from this software 15 | * without specific prior written permission. 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 | * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE 21 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 23 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 24 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 25 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27 | * SUCH DAMAGE. 28 | * 29 | * This file is part of the lwIP TCP/IP stack. 30 | * 31 | * Author: Adam Dunkels 32 | * 33 | */ 34 | #ifndef __PERF_H__ 35 | #define __PERF_H__ 36 | 37 | #define PERF_START /* null definition */ 38 | #define PERF_STOP(x) /* null definition */ 39 | 40 | #endif /* __PERF_H__ */ 41 | -------------------------------------------------------------------------------- /src/core/lwip-1.4.0/ports/win32/lwipcfg_msvc.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Additional settings for the win32 port. 3 | * Copy this to lwipcfg_msvc.h and make the config changes you need. 4 | */ 5 | 6 | /* configuration for this port */ 7 | #define PPP_USERNAME "Admin" 8 | #define PPP_PASSWORD "pass" 9 | 10 | /** Define this to the index of the windows network adapter to use */ 11 | #define PACKET_LIB_ADAPTER_NR 2 12 | /** Define this to the GUID of the windows network adapter to use 13 | * or NOT define this if you want PACKET_LIB_ADAPTER_NR to be used */ 14 | /*#define PACKET_LIB_ADAPTER_GUID "00000000-0000-0000-0000-000000000000"*/ 15 | /*#define PACKET_LIB_GET_ADAPTER_NETADDRESS(addr) IP4_ADDR((addr), 192,168,1,0)*/ 16 | /*#define PACKET_LIB_QUIET*/ 17 | 18 | #define LWIP_PORT_INIT_IPADDR(addr) IP4_ADDR((addr), 192,168,0,200) 19 | #define LWIP_PORT_INIT_GW(addr) IP4_ADDR((addr), 192,168,0,3) 20 | #define LWIP_PORT_INIT_NETMASK(addr) IP4_ADDR((addr), 255,255,255,0) 21 | 22 | /* remember to change this MAC address to suit your needs! 23 | the last octet will be increased by netif->num for each netif */ 24 | #define LWIP_MAC_ADDR_BASE {0x00,0x01,0x02,0x03,0x04,0x05} 25 | 26 | /* configuration for applications */ 27 | 28 | #define LWIP_CHARGEN_APP 0 29 | #define LWIP_DNS_APP 0 30 | #define LWIP_HTTPD_APP 1 31 | /* Set this to 1 to use the netconn http server, 32 | * otherwise the raw api server will be used. */ 33 | /*#define LWIP_HTTPD_APP_NETCONN */ 34 | #define LWIP_NETBIOS_APP 0 35 | #define LWIP_NETIO_APP 0 36 | #define LWIP_PING_APP 0 37 | #define LWIP_RTP_APP 0 38 | #define LWIP_SHELL_APP 0 39 | #define LWIP_SNTP_APP 0 40 | #define LWIP_SOCKET_EXAMPLES_APP 0 41 | #define LWIP_TCPECHO_APP 0 42 | /* Set this to 1 to use the netconn tcpecho server, 43 | * otherwise the raw api server will be used. */ 44 | /*#define LWIP_TCPECHO_APP_NETCONN */ 45 | #define LWIP_UDPECHO_APP 0 46 | -------------------------------------------------------------------------------- /src/core/lwip-1.4.0/src/.hgignore: -------------------------------------------------------------------------------- 1 | syntax: glob 2 | 3 | *.pyc 4 | *.orig 5 | *.rej 6 | *~ 7 | TAGS 8 | Module.symvers 9 | *.ncb 10 | *.suo 11 | *.bak 12 | *.orig 13 | *.rej 14 | 15 | syntax: regexp 16 | \.\#.+ 17 | [\\/]CVS$ 18 | ^CVS$ 19 | ^build$ 20 | ^install$ 21 | ^logs.build_tree$ 22 | [\\/]bin$ 23 | ^bin$ 24 | [\\/]obj$ 25 | ^obj$ 26 | \.cvsignore 27 | -------------------------------------------------------------------------------- /src/core/lwip-1.4.0/src/FILES: -------------------------------------------------------------------------------- 1 | api/ - The code for the high-level wrapper API. Not needed if 2 | you use the lowel-level call-back/raw API. 3 | 4 | core/ - The core of the TPC/IP stack; protocol implementations, 5 | memory and buffer management, and the low-level raw API. 6 | 7 | include/ - lwIP include files. 8 | 9 | netif/ - Generic network interface device drivers are kept here, 10 | as well as the ARP module. 11 | 12 | For more information on the various subdirectories, check the FILES 13 | file in each directory. 14 | -------------------------------------------------------------------------------- /src/core/lwip-1.4.0/src/core/ipv4/inet.c: -------------------------------------------------------------------------------- 1 | /** 2 | * @file 3 | * Functions common to all TCP/IPv4 modules, such as the byte order functions. 4 | * 5 | */ 6 | 7 | /* 8 | * Copyright (c) 2001-2004 Swedish Institute of Computer Science. 9 | * All rights reserved. 10 | * 11 | * Redistribution and use in source and binary forms, with or without modification, 12 | * are permitted provided that the following conditions are met: 13 | * 14 | * 1. Redistributions of source code must retain the above copyright notice, 15 | * this list of conditions and the following disclaimer. 16 | * 2. Redistributions in binary form must reproduce the above copyright notice, 17 | * this list of conditions and the following disclaimer in the documentation 18 | * and/or other materials provided with the distribution. 19 | * 3. The name of the author may not be used to endorse or promote products 20 | * derived from this software without specific prior written permission. 21 | * 22 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 23 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 24 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 25 | * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 26 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 27 | * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 28 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 29 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 30 | * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 31 | * OF SUCH DAMAGE. 32 | * 33 | * This file is part of the lwIP TCP/IP stack. 34 | * 35 | * Author: Adam Dunkels 36 | * 37 | */ 38 | 39 | #include "lwip/opt.h" 40 | 41 | #include "lwip/inet.h" 42 | 43 | -------------------------------------------------------------------------------- /src/core/lwip-1.4.0/src/core/ipv6/README: -------------------------------------------------------------------------------- 1 | IPv6 support in lwIP is very experimental. 2 | -------------------------------------------------------------------------------- /src/core/lwip-1.4.0/src/core/sys.c: -------------------------------------------------------------------------------- 1 | /** 2 | * @file 3 | * lwIP Operating System abstraction 4 | * 5 | */ 6 | 7 | /* 8 | * Copyright (c) 2001-2004 Swedish Institute of Computer Science. 9 | * All rights reserved. 10 | * 11 | * Redistribution and use in source and binary forms, with or without modification, 12 | * are permitted provided that the following conditions are met: 13 | * 14 | * 1. Redistributions of source code must retain the above copyright notice, 15 | * this list of conditions and the following disclaimer. 16 | * 2. Redistributions in binary form must reproduce the above copyright notice, 17 | * this list of conditions and the following disclaimer in the documentation 18 | * and/or other materials provided with the distribution. 19 | * 3. The name of the author may not be used to endorse or promote products 20 | * derived from this software without specific prior written permission. 21 | * 22 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 23 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 24 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 25 | * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 26 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 27 | * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 28 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 29 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 30 | * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 31 | * OF SUCH DAMAGE. 32 | * 33 | * This file is part of the lwIP TCP/IP stack. 34 | * 35 | * Author: Adam Dunkels 36 | * 37 | */ 38 | 39 | #include "lwip/opt.h" 40 | 41 | #include "lwip/sys.h" 42 | 43 | /* Most of the functions defined in sys.h must be implemented in the 44 | * architecture-dependent file sys_arch.c */ 45 | 46 | #if !NO_SYS 47 | 48 | /** 49 | * Sleep for some ms. Timeouts are NOT processed while sleeping. 50 | * 51 | * @param ms number of milliseconds to sleep 52 | */ 53 | void 54 | sys_msleep(u32_t ms) 55 | { 56 | if (ms > 0) { 57 | sys_sem_t delaysem; 58 | err_t err = sys_sem_new(&delaysem, 0); 59 | if (err == ERR_OK) { 60 | sys_arch_sem_wait(&delaysem, ms); 61 | sys_sem_free(&delaysem); 62 | } 63 | } 64 | } 65 | 66 | #endif /* !NO_SYS */ 67 | -------------------------------------------------------------------------------- /src/core/lwip-1.4.0/src/include/netif/slipif.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2001, Swedish Institute of Computer Science. 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions 7 | * are met: 8 | * 1. Redistributions of source code must retain the above copyright 9 | * notice, this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright 11 | * notice, this list of conditions and the following disclaimer in the 12 | * documentation and/or other materials provided with the distribution. 13 | * 3. Neither the name of the Institute nor the names of its contributors 14 | * may be used to endorse or promote products derived from this software 15 | * without specific prior written permission. 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 | * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE 21 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 23 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 24 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 25 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27 | * SUCH DAMAGE. 28 | * 29 | * This file is part of the lwIP TCP/IP stack. 30 | * 31 | * Author: Adam Dunkels 32 | * 33 | */ 34 | #ifndef __NETIF_SLIPIF_H__ 35 | #define __NETIF_SLIPIF_H__ 36 | 37 | #include "lwip/netif.h" 38 | 39 | #ifdef __cplusplus 40 | extern "C" { 41 | #endif 42 | 43 | err_t slipif_init(struct netif * netif); 44 | void slipif_poll(struct netif *netif); 45 | 46 | #ifdef __cplusplus 47 | } 48 | #endif 49 | 50 | #endif 51 | 52 | -------------------------------------------------------------------------------- /src/core/lwip-1.4.0/src/netif/FILES: -------------------------------------------------------------------------------- 1 | This directory contains generic network interface device drivers that 2 | do not contain any hardware or architecture specific code. The files 3 | are: 4 | 5 | etharp.c 6 | Implements the ARP (Address Resolution Protocol) over 7 | Ethernet. The code in this file should be used together with 8 | Ethernet device drivers. Note that this module has been 9 | largely made Ethernet independent so you should be able to 10 | adapt this for other link layers (such as Firewire). 11 | 12 | ethernetif.c 13 | An example of how an Ethernet device driver could look. This 14 | file can be used as a "skeleton" for developing new Ethernet 15 | network device drivers. It uses the etharp.c ARP code. 16 | 17 | loopif.c 18 | A "loopback" network interface driver. It requires configuration 19 | through the define LWIP_LOOPIF_MULTITHREADING (see opt.h). 20 | 21 | slipif.c 22 | A generic implementation of the SLIP (Serial Line IP) 23 | protocol. It requires a sio (serial I/O) module to work. 24 | 25 | ppp/ Point-to-Point Protocol stack 26 | The PPP stack has been ported from ucip (http://ucip.sourceforge.net). 27 | It matches quite well to pppd 2.3.1 (http://ppp.samba.org), although 28 | compared to that, it has some modifications for embedded systems and 29 | the source code has been reordered a bit. -------------------------------------------------------------------------------- /src/core/os/freertos-9.0.0/include/stdint.readme: -------------------------------------------------------------------------------- 1 | 2 | #ifndef FREERTOS_STDINT 3 | #define FREERTOS_STDINT 4 | 5 | /******************************************************************************* 6 | * THIS IS NOT A FULL stdint.h IMPLEMENTATION - It only contains the definitions 7 | * necessary to build the FreeRTOS code. It is provided to allow FreeRTOS to be 8 | * built using compilers that do not provide their own stdint.h definition. 9 | * 10 | * To use this file: 11 | * 12 | * 1) Copy this file into the directory that contains your FreeRTOSConfig.h 13 | * header file, as that directory will already be in the compilers include 14 | * path. 15 | * 16 | * 2) Rename the copied file stdint.h. 17 | * 18 | */ 19 | 20 | typedef signed char int8_t; 21 | typedef unsigned char uint8_t; 22 | typedef short int16_t; 23 | typedef unsigned short uint16_t; 24 | typedef long int32_t; 25 | typedef unsigned long uint32_t; 26 | 27 | #endif /* FREERTOS_STDINT */ 28 | -------------------------------------------------------------------------------- /src/core/os/freertos-9.0.0/portable/GCC/ARM7_AT91SAM7S/lib_AT91SAM7X256.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lembed/ROS-FreeRTOS-STM32/b152c169a812bc1139ed90ba7897bfc41e7f4893/src/core/os/freertos-9.0.0/portable/GCC/ARM7_AT91SAM7S/lib_AT91SAM7X256.h -------------------------------------------------------------------------------- /src/core/os/freertos-9.0.0/portable/GCC/ARM_CM7/ReadMe.txt: -------------------------------------------------------------------------------- 1 | There are two options for running FreeRTOS on ARM Cortex-M7 microcontrollers. 2 | The best option depends on the revision of the ARM Cortex-M7 core in use. The 3 | revision is specified by an 'r' number, and a 'p' number, so will look something 4 | like 'r0p1'. Check the documentation for the microcontroller in use to find the 5 | revision of the Cortex-M7 core used in that microcontroller. If in doubt, use 6 | the FreeRTOS port provided specifically for r0p1 revisions, as that can be used 7 | with all core revisions. 8 | 9 | The first option is to use the ARM Cortex-M4F port, and the second option is to 10 | use the Cortex-M7 r0p1 port - the latter containing a minor errata workaround. 11 | 12 | If the revision of the ARM Cortex-M7 core is not r0p1 then either option can be 13 | used, but it is recommended to use the FreeRTOS ARM Cortex-M4F port located in 14 | the /FreeRTOS/Source/portable/GCC/ARM_CM4F directory. 15 | 16 | If the revision of the ARM Cortex-M7 core is r0p1 then use the FreeRTOS ARM 17 | Cortex-M7 r0p1 port located in the /FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1 18 | directory. -------------------------------------------------------------------------------- /src/core/os/freertos-9.0.0/portable/MemMang/ReadMe.url: -------------------------------------------------------------------------------- 1 | [{000214A0-0000-0000-C000-000000000046}] 2 | Prop3=19,2 3 | [InternetShortcut] 4 | URL=http://www.freertos.org/a00111.html 5 | IDList= 6 | -------------------------------------------------------------------------------- /src/core/os/freertos-9.0.0/readme.txt: -------------------------------------------------------------------------------- 1 | Each real time kernel port consists of three files that contain the core kernel 2 | components and are common to every port, and one or more files that are 3 | specific to a particular microcontroller and or compiler. 4 | 5 | + The FreeRTOS/Source directory contains the three files that are common to 6 | every port - list.c, queue.c and tasks.c. The kernel is contained within these 7 | three files. croutine.c implements the optional co-routine functionality - which 8 | is normally only used on very memory limited systems. 9 | 10 | + The FreeRTOS/Source/Portable directory contains the files that are specific to 11 | a particular microcontroller and or compiler. 12 | 13 | + The FreeRTOS/Source/include directory contains the real time kernel header 14 | files. 15 | 16 | See the readme file in the FreeRTOS/Source/Portable directory for more 17 | information. -------------------------------------------------------------------------------- /src/core/os/freertos-9.0.0/utils/Minimal/readme.txt: -------------------------------------------------------------------------------- 1 | This directory contains the implementation of the "common demo tasks". These 2 | are test tasks and demo tasks that are used by nearly all the demo applications. -------------------------------------------------------------------------------- /src/core/os/syslibs/math/Include/arm_common_tables.h: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------- 2 | * Copyright (C) 2010 ARM Limited. All rights reserved. 3 | * 4 | * $Date: 11. November 2010 5 | * $Revision: V1.0.2 6 | * 7 | * Project: CMSIS DSP Library 8 | * Title: arm_common_tables.h 9 | * 10 | * Description: This file has extern declaration for common tables like Bitreverse, reciprocal etc which are used across different functions 11 | * 12 | * Target Processor: Cortex-M4/Cortex-M3 13 | * 14 | * Version 1.0.2 2010/11/11 15 | * Documentation updated. 16 | * 17 | * Version 1.0.1 2010/10/05 18 | * Production release and review comments incorporated. 19 | * 20 | * Version 1.0.0 2010/09/20 21 | * Production release and review comments incorporated. 22 | * -------------------------------------------------------------------- */ 23 | 24 | #ifndef _ARM_COMMON_TABLES_H 25 | #define _ARM_COMMON_TABLES_H 26 | 27 | #include "arm_math.h" 28 | 29 | extern uint16_t armBitRevTable[256]; 30 | extern q15_t armRecipTableQ15[64]; 31 | extern q31_t armRecipTableQ31[64]; 32 | extern const q31_t realCoefAQ31[1024]; 33 | extern const q31_t realCoefBQ31[1024]; 34 | 35 | #endif /* ARM_COMMON_TABLES_H */ 36 | -------------------------------------------------------------------------------- /src/core/os/syslibs/math/Source/ARM/arm_cortexMx_math_Build.bat: -------------------------------------------------------------------------------- 1 | 2 | SET TMP=C:\Temp 3 | SET TEMP=C:\Temp 4 | 5 | SET UVEXE=C:\Keil\UV4\UV4.EXE 6 | 7 | %UVEXE% -rb arm_cortexM0x_math.uvproj -t"DSP_Lib CM0 LE" -o"DSP_Lib CM0 LE.txt" 8 | %UVEXE% -rb arm_cortexM0x_math.uvproj -t"DSP_Lib CM0 BE" -o"DSP_Lib CM0 BE.txt" 9 | %UVEXE% -rb arm_cortexM3x_math.uvproj -t"DSP_Lib CM3 LE" -o"DSP_Lib CM3 LE.txt" 10 | %UVEXE% -rb arm_cortexM3x_math.uvproj -t"DSP_Lib CM3 BE" -o"DSP_Lib CM3 BE.txt" 11 | %UVEXE% -rb arm_cortexM4x_math.uvproj -t"DSP_Lib CM4 LE" -o"DSP_Lib CM4 LE.txt" 12 | %UVEXE% -rb arm_cortexM4x_math.uvproj -t"DSP_Lib CM4 BE" -o"DSP_Lib CM4 BE.txt" 13 | %UVEXE% -rb arm_cortexM4x_math.uvproj -t"DSP_Lib CM4 LE FPU" -o"DSP_Lib CM4 LE FPU.txt" 14 | %UVEXE% -rb arm_cortexM4x_math.uvproj -t"DSP_Lib CM4 BE FPU" -o"DSP_Lib CM4 BE FPU.txt" -------------------------------------------------------------------------------- /src/core/os/syslibs/math/Source/ControllerFunctions/arm_pid_init_f32.c: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------- 2 | * Copyright (C) 2010 ARM Limited. All rights reserved. 3 | * 4 | * $Date: 15. July 2011 5 | * $Revision: V1.0.10 6 | * 7 | * Project: CMSIS DSP Library 8 | * Title: arm_pid_init_f32.c 9 | * 10 | * Description: Floating-point PID Control initialization function 11 | * 12 | * 13 | * Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 14 | * 15 | * Version 1.0.10 2011/7/15 16 | * Big Endian support added and Merged M0 and M3/M4 Source code. 17 | * 18 | * Version 1.0.3 2010/11/29 19 | * Re-organized the CMSIS folders and updated documentation. 20 | * 21 | * Version 1.0.2 2010/11/11 22 | * Documentation updated. 23 | * 24 | * Version 1.0.1 2010/10/05 25 | * Production release and review comments incorporated. 26 | * 27 | * Version 1.0.0 2010/09/20 28 | * Production release and review comments incorporated. 29 | * ------------------------------------------------------------------- */ 30 | 31 | #include "arm_math.h" 32 | 33 | /** 34 | * @addtogroup PID 35 | * @{ 36 | */ 37 | 38 | /** 39 | * @brief Initialization function for the floating-point PID Control. 40 | * @param[in,out] *S points to an instance of the PID structure. 41 | * @param[in] resetStateFlag flag to reset the state. 0 = no change in state & 1 = reset the state. 42 | * @return none. 43 | * \par Description: 44 | * \par 45 | * The resetStateFlag specifies whether to set state to zero or not. \n 46 | * The function computes the structure fields: A0, A1 A2 47 | * using the proportional gain( \c Kp), integral gain( \c Ki) and derivative gain( \c Kd) 48 | * also sets the state variables to all zeros. 49 | */ 50 | 51 | void arm_pid_init_f32( 52 | arm_pid_instance_f32 * S, 53 | int32_t resetStateFlag) 54 | { 55 | 56 | /* Derived coefficient A0 */ 57 | S->A0 = S->Kp + S->Ki + S->Kd; 58 | 59 | /* Derived coefficient A1 */ 60 | S->A1 = (-S->Kp) - ((float32_t) 2.0 * S->Kd); 61 | 62 | /* Derived coefficient A2 */ 63 | S->A2 = S->Kd; 64 | 65 | /* Check whether state needs reset or not */ 66 | if(resetStateFlag) 67 | { 68 | /* Clear the state buffer. The size will be always 3 samples */ 69 | memset(S->state, 0, 3u * sizeof(float32_t)); 70 | } 71 | 72 | } 73 | 74 | /** 75 | * @} end of PID group 76 | */ 77 | -------------------------------------------------------------------------------- /src/core/os/syslibs/math/Source/ControllerFunctions/arm_pid_reset_f32.c: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------- 2 | * Copyright (C) 2010 ARM Limited. All rights reserved. 3 | * 4 | * $Date: 15. July 2011 5 | * $Revision: V1.0.10 6 | * 7 | * Project: CMSIS DSP Library 8 | * Title: arm_pid_reset_f32.c 9 | * 10 | * Description: Floating-point PID Control reset function 11 | * 12 | * Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 13 | * 14 | * Version 1.0.10 2011/7/15 15 | * Big Endian support added and Merged M0 and M3/M4 Source code. 16 | * 17 | * Version 1.0.3 2010/11/29 18 | * Re-organized the CMSIS folders and updated documentation. 19 | * 20 | * Version 1.0.2 2010/11/11 21 | * Documentation updated. 22 | * 23 | * Version 1.0.1 2010/10/05 24 | * Production release and review comments incorporated. 25 | * 26 | * Version 1.0.0 2010/09/20 27 | * Production release and review comments incorporated. 28 | * ------------------------------------------------------------------- */ 29 | 30 | #include "arm_math.h" 31 | 32 | /** 33 | * @addtogroup PID 34 | * @{ 35 | */ 36 | 37 | /** 38 | * @brief Reset function for the floating-point PID Control. 39 | * @param[in] *S Instance pointer of PID control data structure. 40 | * @return none. 41 | * \par Description: 42 | * The function resets the state buffer to zeros. 43 | */ 44 | void arm_pid_reset_f32( 45 | arm_pid_instance_f32 * S) 46 | { 47 | 48 | /* Clear the state buffer. The size will be always 3 samples */ 49 | memset(S->state, 0, 3u * sizeof(float32_t)); 50 | } 51 | 52 | /** 53 | * @} end of PID group 54 | */ 55 | -------------------------------------------------------------------------------- /src/core/os/syslibs/math/Source/ControllerFunctions/arm_pid_reset_q15.c: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------- 2 | * Copyright (C) 2010 ARM Limited. All rights reserved. 3 | * 4 | * $Date: 15. July 2011 5 | * $Revision: V1.0.10 6 | * 7 | * Project: CMSIS DSP Library 8 | * Title: arm_pid_reset_q15.c 9 | * 10 | * Description: Q15 PID Control reset function 11 | * 12 | * Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 13 | * 14 | * Version 1.0.10 2011/7/15 15 | * Big Endian support added and Merged M0 and M3/M4 Source code. 16 | * 17 | * Version 1.0.3 2010/11/29 18 | * Re-organized the CMSIS folders and updated documentation. 19 | * 20 | * Version 1.0.2 2010/11/11 21 | * Documentation updated. 22 | * 23 | * Version 1.0.1 2010/10/05 24 | * Production release and review comments incorporated. 25 | * 26 | * Version 1.0.0 2010/09/20 27 | * Production release and review comments incorporated. 28 | * -------------------------------------------------------------------- */ 29 | 30 | #include "arm_math.h" 31 | 32 | /** 33 | * @addtogroup PID 34 | * @{ 35 | */ 36 | 37 | /** 38 | * @brief Reset function for the Q15 PID Control. 39 | * @param[in] *S Instance pointer of PID control data structure. 40 | * @return none. 41 | * \par Description: 42 | * The function resets the state buffer to zeros. 43 | */ 44 | void arm_pid_reset_q15( 45 | arm_pid_instance_q15 * S) 46 | { 47 | /* Reset state to zero, The size will be always 3 samples */ 48 | memset(S->state, 0, 3u * sizeof(q15_t)); 49 | } 50 | 51 | /** 52 | * @} end of PID group 53 | */ 54 | -------------------------------------------------------------------------------- /src/core/os/syslibs/math/Source/ControllerFunctions/arm_pid_reset_q31.c: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------- 2 | * Copyright (C) 2010 ARM Limited. All rights reserved. 3 | * 4 | * $Date: 15. July 2011 5 | * $Revision: V1.0.10 6 | * 7 | * Project: CMSIS DSP Library 8 | * Title: arm_pid_reset_q31.c 9 | * 10 | * Description: Q31 PID Control reset function 11 | * 12 | * Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 13 | * 14 | * Version 1.0.10 2011/7/15 15 | * Big Endian support added and Merged M0 and M3/M4 Source code. 16 | * 17 | * Version 1.0.3 2010/11/29 18 | * Re-organized the CMSIS folders and updated documentation. 19 | * 20 | * Version 1.0.2 2010/11/11 21 | * Documentation updated. 22 | * 23 | * Version 1.0.1 2010/10/05 24 | * Production release and review comments incorporated. 25 | * 26 | * Version 1.0.0 2010/09/20 27 | * Production release and review comments incorporated. 28 | * ------------------------------------------------------------------- */ 29 | 30 | #include "arm_math.h" 31 | 32 | /** 33 | * @addtogroup PID 34 | * @{ 35 | */ 36 | 37 | /** 38 | * @brief Reset function for the Q31 PID Control. 39 | * @param[in] *S Instance pointer of PID control data structure. 40 | * @return none. 41 | * \par Description: 42 | * The function resets the state buffer to zeros. 43 | */ 44 | void arm_pid_reset_q31( 45 | arm_pid_instance_q31 * S) 46 | { 47 | 48 | /* Clear the state buffer. The size will be always 3 samples */ 49 | memset(S->state, 0, 3u * sizeof(q31_t)); 50 | } 51 | 52 | /** 53 | * @} end of PID group 54 | */ 55 | -------------------------------------------------------------------------------- /src/core/os/syslibs/math/Source/FilteringFunctions/arm_fir_lattice_init_f32.c: -------------------------------------------------------------------------------- 1 | /*----------------------------------------------------------------------------- 2 | * Copyright (C) 2010 ARM Limited. All rights reserved. 3 | * 4 | * $Date: 15. July 2011 5 | * $Revision: V1.0.10 6 | * 7 | * Project: CMSIS DSP Library 8 | * Title: arm_fir_lattice_init_f32.c 9 | * 10 | * Description: Floating-point FIR Lattice filter initialization function. 11 | * 12 | * Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 13 | * 14 | * Version 1.0.10 2011/7/15 15 | * Big Endian support added and Merged M0 and M3/M4 Source code. 16 | * 17 | * Version 1.0.3 2010/11/29 18 | * Re-organized the CMSIS folders and updated documentation. 19 | * 20 | * Version 1.0.2 2010/11/11 21 | * Documentation updated. 22 | * 23 | * Version 1.0.1 2010/10/05 24 | * Production release and review comments incorporated. 25 | * 26 | * Version 1.0.0 2010/09/20 27 | * Production release and review comments incorporated 28 | * 29 | * Version 0.0.7 2010/06/10 30 | * Misra-C changes done 31 | * ---------------------------------------------------------------------------*/ 32 | 33 | #include "arm_math.h" 34 | 35 | /** 36 | * @ingroup groupFilters 37 | */ 38 | 39 | /** 40 | * @addtogroup FIR_Lattice 41 | * @{ 42 | */ 43 | 44 | /** 45 | * @brief Initialization function for the floating-point FIR lattice filter. 46 | * @param[in] *S points to an instance of the floating-point FIR lattice structure. 47 | * @param[in] numStages number of filter stages. 48 | * @param[in] *pCoeffs points to the coefficient buffer. The array is of length numStages. 49 | * @param[in] *pState points to the state buffer. The array is of length numStages. 50 | * @return none. 51 | */ 52 | 53 | void arm_fir_lattice_init_f32( 54 | arm_fir_lattice_instance_f32 * S, 55 | uint16_t numStages, 56 | float32_t * pCoeffs, 57 | float32_t * pState) 58 | { 59 | /* Assign filter taps */ 60 | S->numStages = numStages; 61 | 62 | /* Assign coefficient pointer */ 63 | S->pCoeffs = pCoeffs; 64 | 65 | /* Clear state buffer and size is always numStages */ 66 | memset(pState, 0, (numStages) * sizeof(float32_t)); 67 | 68 | /* Assign state pointer */ 69 | S->pState = pState; 70 | 71 | } 72 | 73 | /** 74 | * @} end of FIR_Lattice group 75 | */ 76 | -------------------------------------------------------------------------------- /src/core/os/syslibs/math/Source/FilteringFunctions/arm_fir_lattice_init_q15.c: -------------------------------------------------------------------------------- 1 | /*----------------------------------------------------------------------------- 2 | * Copyright (C) 2010 ARM Limited. All rights reserved. 3 | * 4 | * $Date: 15. July 2011 5 | * $Revision: V1.0.10 6 | * 7 | * Project: CMSIS DSP Library 8 | * Title: arm_fir_lattice_init_q15.c 9 | * 10 | * Description: Q15 FIR Lattice filter initialization function. 11 | * 12 | * Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 13 | * 14 | * Version 1.0.10 2011/7/15 15 | * Big Endian support added and Merged M0 and M3/M4 Source code. 16 | * 17 | * Version 1.0.3 2010/11/29 18 | * Re-organized the CMSIS folders and updated documentation. 19 | * 20 | * Version 1.0.2 2010/11/11 21 | * Documentation updated. 22 | * 23 | * Version 1.0.1 2010/10/05 24 | * Production release and review comments incorporated. 25 | * 26 | * Version 1.0.0 2010/09/20 27 | * Production release and review comments incorporated 28 | * 29 | * Version 0.0.7 2010/06/10 30 | * Misra-C changes done 31 | * ---------------------------------------------------------------------------*/ 32 | 33 | #include "arm_math.h" 34 | 35 | /** 36 | * @ingroup groupFilters 37 | */ 38 | 39 | /** 40 | * @addtogroup FIR_Lattice 41 | * @{ 42 | */ 43 | 44 | /** 45 | * @brief Initialization function for the Q15 FIR lattice filter. 46 | * @param[in] *S points to an instance of the Q15 FIR lattice structure. 47 | * @param[in] numStages number of filter stages. 48 | * @param[in] *pCoeffs points to the coefficient buffer. The array is of length numStages. 49 | * @param[in] *pState points to the state buffer. The array is of length numStages. 50 | * @return none. 51 | */ 52 | 53 | void arm_fir_lattice_init_q15( 54 | arm_fir_lattice_instance_q15 * S, 55 | uint16_t numStages, 56 | q15_t * pCoeffs, 57 | q15_t * pState) 58 | { 59 | /* Assign filter taps */ 60 | S->numStages = numStages; 61 | 62 | /* Assign coefficient pointer */ 63 | S->pCoeffs = pCoeffs; 64 | 65 | /* Clear state buffer and size is always numStages */ 66 | memset(pState, 0, (numStages) * sizeof(q15_t)); 67 | 68 | /* Assign state pointer */ 69 | S->pState = pState; 70 | 71 | } 72 | 73 | /** 74 | * @} end of FIR_Lattice group 75 | */ 76 | -------------------------------------------------------------------------------- /src/core/os/syslibs/math/Source/FilteringFunctions/arm_fir_lattice_init_q31.c: -------------------------------------------------------------------------------- 1 | /*----------------------------------------------------------------------------- 2 | * Copyright (C) 2010 ARM Limited. All rights reserved. 3 | * 4 | * $Date: 15. July 2011 5 | * $Revision: V1.0.10 6 | * 7 | * Project: CMSIS DSP Library 8 | * Title: arm_fir_lattice_init_q31.c 9 | * 10 | * Description: Q31 FIR lattice filter initialization function. 11 | * 12 | * Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 13 | * 14 | * Version 1.0.10 2011/7/15 15 | * Big Endian support added and Merged M0 and M3/M4 Source code. 16 | * 17 | * Version 1.0.3 2010/11/29 18 | * Re-organized the CMSIS folders and updated documentation. 19 | * 20 | * Version 1.0.2 2010/11/11 21 | * Documentation updated. 22 | * 23 | * Version 1.0.1 2010/10/05 24 | * Production release and review comments incorporated. 25 | * 26 | * Version 1.0.0 2010/09/20 27 | * Production release and review comments incorporated 28 | * 29 | * Version 0.0.7 2010/06/10 30 | * Misra-C changes done 31 | * ---------------------------------------------------------------------------*/ 32 | 33 | #include "arm_math.h" 34 | 35 | /** 36 | * @ingroup groupFilters 37 | */ 38 | 39 | /** 40 | * @addtogroup FIR_Lattice 41 | * @{ 42 | */ 43 | 44 | /** 45 | * @brief Initialization function for the Q31 FIR lattice filter. 46 | * @param[in] *S points to an instance of the Q31 FIR lattice structure. 47 | * @param[in] numStages number of filter stages. 48 | * @param[in] *pCoeffs points to the coefficient buffer. The array is of length numStages. 49 | * @param[in] *pState points to the state buffer. The array is of length numStages. 50 | * @return none. 51 | */ 52 | 53 | void arm_fir_lattice_init_q31( 54 | arm_fir_lattice_instance_q31 * S, 55 | uint16_t numStages, 56 | q31_t * pCoeffs, 57 | q31_t * pState) 58 | { 59 | /* Assign filter taps */ 60 | S->numStages = numStages; 61 | 62 | /* Assign coefficient pointer */ 63 | S->pCoeffs = pCoeffs; 64 | 65 | /* Clear state buffer and size is always numStages */ 66 | memset(pState, 0, (numStages) * sizeof(q31_t)); 67 | 68 | /* Assign state pointer */ 69 | S->pState = pState; 70 | 71 | } 72 | 73 | /** 74 | * @} end of FIR_Lattice group 75 | */ 76 | -------------------------------------------------------------------------------- /src/core/os/syslibs/math/Source/GCC/arm_cortexMx_math_Build.bat: -------------------------------------------------------------------------------- 1 | 2 | SET TMP=C:\Temp 3 | SET TEMP=C:\Temp 4 | 5 | SET UVEXE=C:\Keil\UV4\UV4.EXE 6 | 7 | %UVEXE% -rb arm_cortexM0x_math.uvproj -t"DSP_Lib CM0 LE" -o"DSP_Lib CM0 LE.txt" 8 | %UVEXE% -rb arm_cortexM3x_math.uvproj -t"DSP_Lib CM3 LE" -o"DSP_Lib CM3 LE.txt" 9 | %UVEXE% -rb arm_cortexM4x_math.uvproj -t"DSP_Lib CM4 LE" -o"DSP_Lib CM4 LE.txt" 10 | %UVEXE% -rb arm_cortexM4x_math.uvproj -t"DSP_Lib CM4 LE FPU" -o"DSP_Lib CM4 LE FPU.txt" 11 | -------------------------------------------------------------------------------- /src/core/os/syslibs/math/Source/MatrixFunctions/arm_mat_init_q15.c: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------- 2 | * Copyright (C) 2010 ARM Limited. All rights reserved. 3 | * 4 | * $Date: 15. July 2011 5 | * $Revision: V1.0.10 6 | * 7 | * Project: CMSIS DSP Library 8 | * Title: arm_mat_init_q15.c 9 | * 10 | * Description: Q15 matrix initialization. 11 | * 12 | * Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 13 | * 14 | * Version 1.0.10 2011/7/15 15 | * Big Endian support added and Merged M0 and M3/M4 Source code. 16 | * 17 | * Version 1.0.3 2010/11/29 18 | * Re-organized the CMSIS folders and updated documentation. 19 | * 20 | * Version 1.0.2 2010/11/11 21 | * Documentation updated. 22 | * 23 | * Version 1.0.1 2010/10/05 24 | * Production release and review comments incorporated. 25 | * 26 | * Version 1.0.0 2010/09/20 27 | * Production release and review comments incorporated. 28 | * 29 | * Version 0.0.5 2010/04/26 30 | * incorporated review comments and updated with latest CMSIS layer 31 | * 32 | * Version 0.0.3 2010/03/10 33 | * Initial version 34 | * -------------------------------------------------------------------------- */ 35 | 36 | 37 | #include "arm_math.h" 38 | 39 | /** 40 | * @ingroup groupMatrix 41 | */ 42 | 43 | /** 44 | * @addtogroup MatrixInit 45 | * @{ 46 | */ 47 | 48 | /** 49 | * @brief Q15 matrix initialization. 50 | * @param[in,out] *S points to an instance of the floating-point matrix structure. 51 | * @param[in] nRows number of rows in the matrix. 52 | * @param[in] nColumns number of columns in the matrix. 53 | * @param[in] *pData points to the matrix data array. 54 | * @return none 55 | */ 56 | 57 | void arm_mat_init_q15( 58 | arm_matrix_instance_q15 * S, 59 | uint16_t nRows, 60 | uint16_t nColumns, 61 | q15_t * pData) 62 | { 63 | /* Assign Number of Rows */ 64 | S->numRows = nRows; 65 | 66 | /* Assign Number of Columns */ 67 | S->numCols = nColumns; 68 | 69 | /* Assign Data pointer */ 70 | S->pData = pData; 71 | } 72 | 73 | /** 74 | * @} end of MatrixInit group 75 | */ 76 | -------------------------------------------------------------------------------- /src/core/os/syslibs/math/Source/MatrixFunctions/arm_mat_init_q31.c: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------- 2 | * Copyright (C) 2010 ARM Limited. All rights reserved. 3 | * 4 | * $Date: 15. July 2011 5 | * $Revision: V1.0.10 6 | * 7 | * Project: CMSIS DSP Library 8 | * Title: arm_mat_init_q31.c 9 | * 10 | * Description: Q31 matrix initialization. 11 | * Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 12 | * 13 | * Version 1.0.10 2011/7/15 14 | * Big Endian support added and Merged M0 and M3/M4 Source code. 15 | * 16 | * Version 1.0.3 2010/11/29 17 | * Re-organized the CMSIS folders and updated documentation. 18 | * 19 | * Version 1.0.2 2010/11/11 20 | * Documentation updated. 21 | * 22 | * Version 1.0.1 2010/10/05 23 | * Production release and review comments incorporated. 24 | * 25 | * Version 1.0.0 2010/09/20 26 | * Production release and review comments incorporated. 27 | * 28 | * Version 0.0.5 2010/04/26 29 | * incorporated review comments and updated with latest CMSIS layer 30 | * 31 | * Version 0.0.3 2010/03/10 32 | * Initial version 33 | * -------------------------------------------------------------------------- */ 34 | 35 | 36 | #include "arm_math.h" 37 | 38 | /** 39 | * @ingroup groupMatrix 40 | */ 41 | 42 | /** 43 | * @defgroup MatrixInit Matrix Initialization 44 | * 45 | */ 46 | 47 | /** 48 | * @addtogroup MatrixInit 49 | * @{ 50 | */ 51 | 52 | /** 53 | * @brief Q31 matrix initialization. 54 | * @param[in,out] *S points to an instance of the floating-point matrix structure. 55 | * @param[in] nRows number of rows in the matrix. 56 | * @param[in] nColumns number of columns in the matrix. 57 | * @param[in] *pData points to the matrix data array. 58 | * @return none 59 | */ 60 | 61 | void arm_mat_init_q31( 62 | arm_matrix_instance_q31 * S, 63 | uint16_t nRows, 64 | uint16_t nColumns, 65 | q31_t * pData) 66 | { 67 | /* Assign Number of Rows */ 68 | S->numRows = nRows; 69 | 70 | /* Assign Number of Columns */ 71 | S->numCols = nColumns; 72 | 73 | /* Assign Data pointer */ 74 | S->pData = pData; 75 | } 76 | 77 | /** 78 | * @} end of MatrixInit group 79 | */ 80 | -------------------------------------------------------------------------------- /src/core/os/syslibs/syscalls/syscalls.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************//***** 2 | * @file stdio.c 3 | * @brief Implementation of newlib syscall 4 | ********************************************************************************/ 5 | 6 | #include 7 | #include 8 | #include 9 | #include 10 | //#include "LCD_Dotmatrix.h" 11 | 12 | #undef errno 13 | extern int errno; 14 | extern int _end; 15 | 16 | caddr_t _sbrk ( int incr ) 17 | { 18 | static unsigned char *heap = NULL; 19 | unsigned char *prev_heap; 20 | 21 | if (heap == NULL) { 22 | heap = (unsigned char *)&_end; 23 | } 24 | prev_heap = heap; 25 | 26 | heap += incr; 27 | 28 | return (caddr_t) prev_heap; 29 | } 30 | 31 | int link(char *old, char *new) { 32 | return -1; 33 | } 34 | 35 | int _close(int file) 36 | { 37 | return -1; 38 | } 39 | 40 | int _fstat(int file, struct stat *st) 41 | { 42 | st->st_mode = S_IFCHR; 43 | return 0; 44 | } 45 | 46 | int _isatty(int file) 47 | { 48 | return 1; 49 | } 50 | 51 | int _lseek(int file, int ptr, int dir) 52 | { 53 | return 0; 54 | } 55 | 56 | int _read(int file, char *ptr, int len) 57 | { 58 | return 0; 59 | } 60 | 61 | int _write(int file, char *ptr, int len) 62 | { 63 | /* Place your implementation of fputc here */ 64 | 65 | /* e.g. write a character to the USART */ 66 | 67 | int counter; 68 | 69 | 70 | 71 | counter = len; 72 | 73 | for (; counter > 0; counter--) 74 | 75 | { 76 | 77 | if (*ptr == 0) break; 78 | 79 | //USART_SendData(USART2, (uint16_t) (*ptr)); 80 | //lcd_putchar((*ptr)); 81 | /* Loop until the end of transmission */ 82 | 83 | //while (USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET); 84 | 85 | ptr++; 86 | 87 | } 88 | return len; 89 | } 90 | 91 | void abort(void) 92 | { 93 | /* Abort called */ 94 | while(1); 95 | } 96 | 97 | /* --------------------------------- End Of File ------------------------------ */ 98 | -------------------------------------------------------------------------------- /src/core/rcl/Node.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "FreeRTOS.h" 4 | #include "task.h" 5 | #include "timers.h" 6 | #include 7 | extern "C" void* os_malloc(unsigned int); 8 | namespace ros { 9 | 10 | 11 | static int lastNodeIndex = -1; 12 | 13 | typedef struct node_descriptor { 14 | char name[32]; 15 | void (*function)(void* params); 16 | 17 | } node_decriptor; 18 | extern node_decriptor nodes; 19 | 20 | Node::Node(const char* name) 21 | { 22 | strcpy(this->name, name); 23 | } 24 | 25 | 26 | } /* namespace ros */ 27 | -------------------------------------------------------------------------------- /src/core/rcl/Node.h: -------------------------------------------------------------------------------- 1 | #ifndef NODE_H_ 2 | #define NODE_H_ 3 | extern "C" void os_printf(const char* fmt, ...); 4 | namespace ros { 5 | 6 | class Node { 7 | public: 8 | Node(const char* name); 9 | void addSharedObject(const char* name, void* object); 10 | void* getSharedObject(const char* name); 11 | char name[32]; 12 | private: 13 | 14 | 15 | }; 16 | 17 | 18 | } /* namespace ros */ 19 | 20 | #endif /* NODE_H_ */ 21 | -------------------------------------------------------------------------------- /src/core/rcl/Publisher.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Copyright (c) 2011, Willow Garage, Inc. 5 | * All rights reserved. 6 | * 7 | * Redistribution and use in source and binary forms, with or without 8 | * modification, are permitted provided that the following conditions 9 | * are met: 10 | * 11 | * * Redistributions of source code must retain the above copyright 12 | * notice, this list of conditions and the following disclaimer. 13 | * * Redistributions in binary form must reproduce the above 14 | * copyright notice, this list of conditions and the following 15 | * disclaimer in the documentation and/or other materials provided 16 | * with the distribution. 17 | * * Neither the name of Willow Garage, Inc. nor the names of its 18 | * contributors may be used to endorse or promote prducts derived 19 | * from this software without specific prior written permission. 20 | * 21 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 22 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 23 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 24 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 25 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 26 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 27 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 28 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 29 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 31 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 32 | * POSSIBILITY OF SUCH DAMAGE. 33 | */ 34 | 35 | #include "Publisher.h" 36 | #include "rcl.h" 37 | #include 38 | #include "wiring.h" 39 | namespace ros { 40 | unsigned int Publisher::publisherCount = 0; 41 | Publisher::Publisher() 42 | { 43 | node = NULL; 44 | } 45 | 46 | void Publisher::publish(const Msg& msg) 47 | { 48 | tw->publishMsg(msg); 49 | //digitalWrite(GPIO_PD11, HIGH); 50 | } 51 | 52 | } 53 | -------------------------------------------------------------------------------- /src/core/rcl/Subscriber.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | namespace ros { 3 | 4 | int Subscriber_::lastSubscriberIndex = -1; 5 | 6 | Subscriber_* Subscribers_[MAX_SUBSCRIBERS]; 7 | Subscriber_** Subscriber_::list = Subscribers_; 8 | 9 | 10 | } /* namespace ros */ 11 | -------------------------------------------------------------------------------- /src/core/rcl/geometry_msgs/Accel.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_geometry_msgs_Accel_h 2 | #define _ROS_geometry_msgs_Accel_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "geometry_msgs/Vector3.h" 9 | 10 | namespace geometry_msgs 11 | { 12 | 13 | class Accel : public ros::Msg 14 | { 15 | public: 16 | geometry_msgs::Vector3 linear; 17 | geometry_msgs::Vector3 angular; 18 | 19 | Accel(): 20 | linear(), 21 | angular() 22 | { 23 | } 24 | 25 | virtual int serialize(unsigned char *outbuffer) const 26 | { 27 | int offset = 0; 28 | offset += this->linear.serialize(outbuffer + offset); 29 | offset += this->angular.serialize(outbuffer + offset); 30 | return offset; 31 | } 32 | 33 | virtual int deserialize(unsigned char *inbuffer) 34 | { 35 | int offset = 0; 36 | offset += this->linear.deserialize(inbuffer + offset); 37 | offset += this->angular.deserialize(inbuffer + offset); 38 | return offset; 39 | } 40 | 41 | const char * getType(){ return "geometry_msgs/Accel"; }; 42 | const char * getMD5(){ return "9f195f881246fdfa2798d1d3eebca84a"; }; 43 | 44 | }; 45 | 46 | } 47 | #endif -------------------------------------------------------------------------------- /src/core/rcl/geometry_msgs/AccelStamped.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_geometry_msgs_AccelStamped_h 2 | #define _ROS_geometry_msgs_AccelStamped_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "std_msgs/Header.h" 9 | #include "geometry_msgs/Accel.h" 10 | 11 | namespace geometry_msgs 12 | { 13 | 14 | class AccelStamped : public ros::Msg 15 | { 16 | public: 17 | std_msgs::Header header; 18 | geometry_msgs::Accel accel; 19 | 20 | AccelStamped(): 21 | header(), 22 | accel() 23 | { 24 | } 25 | 26 | virtual int serialize(unsigned char *outbuffer) const 27 | { 28 | int offset = 0; 29 | offset += this->header.serialize(outbuffer + offset); 30 | offset += this->accel.serialize(outbuffer + offset); 31 | return offset; 32 | } 33 | 34 | virtual int deserialize(unsigned char *inbuffer) 35 | { 36 | int offset = 0; 37 | offset += this->header.deserialize(inbuffer + offset); 38 | offset += this->accel.deserialize(inbuffer + offset); 39 | return offset; 40 | } 41 | 42 | const char * getType(){ return "geometry_msgs/AccelStamped"; }; 43 | const char * getMD5(){ return "d8a98a5d81351b6eb0578c78557e7659"; }; 44 | 45 | }; 46 | 47 | } 48 | #endif -------------------------------------------------------------------------------- /src/core/rcl/geometry_msgs/AccelWithCovariance.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_geometry_msgs_AccelWithCovariance_h 2 | #define _ROS_geometry_msgs_AccelWithCovariance_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "geometry_msgs/Accel.h" 9 | 10 | namespace geometry_msgs 11 | { 12 | 13 | class AccelWithCovariance : public ros::Msg 14 | { 15 | public: 16 | geometry_msgs::Accel accel; 17 | float covariance[36]; 18 | 19 | AccelWithCovariance(): 20 | accel(), 21 | covariance() 22 | { 23 | } 24 | 25 | virtual int serialize(unsigned char *outbuffer) const 26 | { 27 | int offset = 0; 28 | offset += this->accel.serialize(outbuffer + offset); 29 | for( uint8_t i = 0; i < 36; i++){ 30 | offset += serializeAvrFloat64(outbuffer + offset, this->covariance[i]); 31 | } 32 | return offset; 33 | } 34 | 35 | virtual int deserialize(unsigned char *inbuffer) 36 | { 37 | int offset = 0; 38 | offset += this->accel.deserialize(inbuffer + offset); 39 | for( uint8_t i = 0; i < 36; i++){ 40 | offset += deserializeAvrFloat64(inbuffer + offset, &(this->covariance[i])); 41 | } 42 | return offset; 43 | } 44 | 45 | const char * getType(){ return "geometry_msgs/AccelWithCovariance"; }; 46 | const char * getMD5(){ return "ad5a718d699c6be72a02b8d6a139f334"; }; 47 | 48 | }; 49 | 50 | } 51 | #endif -------------------------------------------------------------------------------- /src/core/rcl/geometry_msgs/AccelWithCovarianceStamped.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_geometry_msgs_AccelWithCovarianceStamped_h 2 | #define _ROS_geometry_msgs_AccelWithCovarianceStamped_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "std_msgs/Header.h" 9 | #include "geometry_msgs/AccelWithCovariance.h" 10 | 11 | namespace geometry_msgs 12 | { 13 | 14 | class AccelWithCovarianceStamped : public ros::Msg 15 | { 16 | public: 17 | std_msgs::Header header; 18 | geometry_msgs::AccelWithCovariance accel; 19 | 20 | AccelWithCovarianceStamped(): 21 | header(), 22 | accel() 23 | { 24 | } 25 | 26 | virtual int serialize(unsigned char *outbuffer) const 27 | { 28 | int offset = 0; 29 | offset += this->header.serialize(outbuffer + offset); 30 | offset += this->accel.serialize(outbuffer + offset); 31 | return offset; 32 | } 33 | 34 | virtual int deserialize(unsigned char *inbuffer) 35 | { 36 | int offset = 0; 37 | offset += this->header.deserialize(inbuffer + offset); 38 | offset += this->accel.deserialize(inbuffer + offset); 39 | return offset; 40 | } 41 | 42 | const char * getType(){ return "geometry_msgs/AccelWithCovarianceStamped"; }; 43 | const char * getMD5(){ return "96adb295225031ec8d57fb4251b0a886"; }; 44 | 45 | }; 46 | 47 | } 48 | #endif -------------------------------------------------------------------------------- /src/core/rcl/geometry_msgs/Point.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_geometry_msgs_Point_h 2 | #define _ROS_geometry_msgs_Point_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | 9 | namespace geometry_msgs 10 | { 11 | 12 | class Point : public ros::Msg 13 | { 14 | public: 15 | float x; 16 | float y; 17 | float z; 18 | 19 | Point(): 20 | x(0), 21 | y(0), 22 | z(0) 23 | { 24 | } 25 | 26 | virtual int serialize(unsigned char *outbuffer) const 27 | { 28 | int offset = 0; 29 | offset += serializeAvrFloat64(outbuffer + offset, this->x); 30 | offset += serializeAvrFloat64(outbuffer + offset, this->y); 31 | offset += serializeAvrFloat64(outbuffer + offset, this->z); 32 | return offset; 33 | } 34 | 35 | virtual int deserialize(unsigned char *inbuffer) 36 | { 37 | int offset = 0; 38 | offset += deserializeAvrFloat64(inbuffer + offset, &(this->x)); 39 | offset += deserializeAvrFloat64(inbuffer + offset, &(this->y)); 40 | offset += deserializeAvrFloat64(inbuffer + offset, &(this->z)); 41 | return offset; 42 | } 43 | 44 | const char * getType(){ return "geometry_msgs/Point"; }; 45 | const char * getMD5(){ return "4a842b65f413084dc2b10fb484ea7f17"; }; 46 | 47 | }; 48 | 49 | } 50 | #endif -------------------------------------------------------------------------------- /src/core/rcl/geometry_msgs/PointStamped.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_geometry_msgs_PointStamped_h 2 | #define _ROS_geometry_msgs_PointStamped_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "std_msgs/Header.h" 9 | #include "geometry_msgs/Point.h" 10 | 11 | namespace geometry_msgs 12 | { 13 | 14 | class PointStamped : public ros::Msg 15 | { 16 | public: 17 | std_msgs::Header header; 18 | geometry_msgs::Point point; 19 | 20 | PointStamped(): 21 | header(), 22 | point() 23 | { 24 | } 25 | 26 | virtual int serialize(unsigned char *outbuffer) const 27 | { 28 | int offset = 0; 29 | offset += this->header.serialize(outbuffer + offset); 30 | offset += this->point.serialize(outbuffer + offset); 31 | return offset; 32 | } 33 | 34 | virtual int deserialize(unsigned char *inbuffer) 35 | { 36 | int offset = 0; 37 | offset += this->header.deserialize(inbuffer + offset); 38 | offset += this->point.deserialize(inbuffer + offset); 39 | return offset; 40 | } 41 | 42 | const char * getType(){ return "geometry_msgs/PointStamped"; }; 43 | const char * getMD5(){ return "c63aecb41bfdfd6b7e1fac37c7cbe7bf"; }; 44 | 45 | }; 46 | 47 | } 48 | #endif -------------------------------------------------------------------------------- /src/core/rcl/geometry_msgs/Polygon.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_geometry_msgs_Polygon_h 2 | #define _ROS_geometry_msgs_Polygon_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "geometry_msgs/Point32.h" 9 | 10 | namespace geometry_msgs 11 | { 12 | 13 | class Polygon : public ros::Msg 14 | { 15 | public: 16 | uint8_t points_length; 17 | geometry_msgs::Point32 st_points; 18 | geometry_msgs::Point32 * points; 19 | 20 | Polygon(): 21 | points_length(0), points(NULL) 22 | { 23 | } 24 | 25 | virtual int serialize(unsigned char *outbuffer) const 26 | { 27 | int offset = 0; 28 | *(outbuffer + offset++) = points_length; 29 | *(outbuffer + offset++) = 0; 30 | *(outbuffer + offset++) = 0; 31 | *(outbuffer + offset++) = 0; 32 | for( uint8_t i = 0; i < points_length; i++){ 33 | offset += this->points[i].serialize(outbuffer + offset); 34 | } 35 | return offset; 36 | } 37 | 38 | virtual int deserialize(unsigned char *inbuffer) 39 | { 40 | int offset = 0; 41 | uint8_t points_lengthT = *(inbuffer + offset++); 42 | if(points_lengthT > points_length) 43 | this->points = (geometry_msgs::Point32*)realloc(this->points, points_lengthT * sizeof(geometry_msgs::Point32)); 44 | offset += 3; 45 | points_length = points_lengthT; 46 | for( uint8_t i = 0; i < points_length; i++){ 47 | offset += this->st_points.deserialize(inbuffer + offset); 48 | memcpy( &(this->points[i]), &(this->st_points), sizeof(geometry_msgs::Point32)); 49 | } 50 | return offset; 51 | } 52 | 53 | const char * getType(){ return "geometry_msgs/Polygon"; }; 54 | const char * getMD5(){ return "cd60a26494a087f577976f0329fa120e"; }; 55 | 56 | }; 57 | 58 | } 59 | #endif -------------------------------------------------------------------------------- /src/core/rcl/geometry_msgs/PolygonStamped.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_geometry_msgs_PolygonStamped_h 2 | #define _ROS_geometry_msgs_PolygonStamped_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "std_msgs/Header.h" 9 | #include "geometry_msgs/Polygon.h" 10 | 11 | namespace geometry_msgs 12 | { 13 | 14 | class PolygonStamped : public ros::Msg 15 | { 16 | public: 17 | std_msgs::Header header; 18 | geometry_msgs::Polygon polygon; 19 | 20 | PolygonStamped(): 21 | header(), 22 | polygon() 23 | { 24 | } 25 | 26 | virtual int serialize(unsigned char *outbuffer) const 27 | { 28 | int offset = 0; 29 | offset += this->header.serialize(outbuffer + offset); 30 | offset += this->polygon.serialize(outbuffer + offset); 31 | return offset; 32 | } 33 | 34 | virtual int deserialize(unsigned char *inbuffer) 35 | { 36 | int offset = 0; 37 | offset += this->header.deserialize(inbuffer + offset); 38 | offset += this->polygon.deserialize(inbuffer + offset); 39 | return offset; 40 | } 41 | 42 | const char * getType(){ return "geometry_msgs/PolygonStamped"; }; 43 | const char * getMD5(){ return "c6be8f7dc3bee7fe9e8d296070f53340"; }; 44 | 45 | }; 46 | 47 | } 48 | #endif -------------------------------------------------------------------------------- /src/core/rcl/geometry_msgs/Pose.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_geometry_msgs_Pose_h 2 | #define _ROS_geometry_msgs_Pose_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "geometry_msgs/Point.h" 9 | #include "geometry_msgs/Quaternion.h" 10 | 11 | namespace geometry_msgs 12 | { 13 | 14 | class Pose : public ros::Msg 15 | { 16 | public: 17 | geometry_msgs::Point position; 18 | geometry_msgs::Quaternion orientation; 19 | 20 | Pose(): 21 | position(), 22 | orientation() 23 | { 24 | } 25 | 26 | virtual int serialize(unsigned char *outbuffer) const 27 | { 28 | int offset = 0; 29 | offset += this->position.serialize(outbuffer + offset); 30 | offset += this->orientation.serialize(outbuffer + offset); 31 | return offset; 32 | } 33 | 34 | virtual int deserialize(unsigned char *inbuffer) 35 | { 36 | int offset = 0; 37 | offset += this->position.deserialize(inbuffer + offset); 38 | offset += this->orientation.deserialize(inbuffer + offset); 39 | return offset; 40 | } 41 | 42 | const char * getType(){ return "geometry_msgs/Pose"; }; 43 | const char * getMD5(){ return "e45d45a5a1ce597b249e23fb30fc871f"; }; 44 | 45 | }; 46 | 47 | } 48 | #endif -------------------------------------------------------------------------------- /src/core/rcl/geometry_msgs/Pose2D.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_geometry_msgs_Pose2D_h 2 | #define _ROS_geometry_msgs_Pose2D_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | 9 | namespace geometry_msgs 10 | { 11 | 12 | class Pose2D : public ros::Msg 13 | { 14 | public: 15 | float x; 16 | float y; 17 | float theta; 18 | 19 | Pose2D(): 20 | x(0), 21 | y(0), 22 | theta(0) 23 | { 24 | } 25 | 26 | virtual int serialize(unsigned char *outbuffer) const 27 | { 28 | int offset = 0; 29 | offset += serializeAvrFloat64(outbuffer + offset, this->x); 30 | offset += serializeAvrFloat64(outbuffer + offset, this->y); 31 | offset += serializeAvrFloat64(outbuffer + offset, this->theta); 32 | return offset; 33 | } 34 | 35 | virtual int deserialize(unsigned char *inbuffer) 36 | { 37 | int offset = 0; 38 | offset += deserializeAvrFloat64(inbuffer + offset, &(this->x)); 39 | offset += deserializeAvrFloat64(inbuffer + offset, &(this->y)); 40 | offset += deserializeAvrFloat64(inbuffer + offset, &(this->theta)); 41 | return offset; 42 | } 43 | 44 | const char * getType(){ return "geometry_msgs/Pose2D"; }; 45 | const char * getMD5(){ return "938fa65709584ad8e77d238529be13b8"; }; 46 | 47 | }; 48 | 49 | } 50 | #endif -------------------------------------------------------------------------------- /src/core/rcl/geometry_msgs/PoseArray.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_geometry_msgs_PoseArray_h 2 | #define _ROS_geometry_msgs_PoseArray_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "std_msgs/Header.h" 9 | #include "geometry_msgs/Pose.h" 10 | 11 | namespace geometry_msgs 12 | { 13 | 14 | class PoseArray : public ros::Msg 15 | { 16 | public: 17 | std_msgs::Header header; 18 | uint8_t poses_length; 19 | geometry_msgs::Pose st_poses; 20 | geometry_msgs::Pose * poses; 21 | 22 | PoseArray(): 23 | header(), 24 | poses_length(0), poses(NULL) 25 | { 26 | } 27 | 28 | virtual int serialize(unsigned char *outbuffer) const 29 | { 30 | int offset = 0; 31 | offset += this->header.serialize(outbuffer + offset); 32 | *(outbuffer + offset++) = poses_length; 33 | *(outbuffer + offset++) = 0; 34 | *(outbuffer + offset++) = 0; 35 | *(outbuffer + offset++) = 0; 36 | for( uint8_t i = 0; i < poses_length; i++){ 37 | offset += this->poses[i].serialize(outbuffer + offset); 38 | } 39 | return offset; 40 | } 41 | 42 | virtual int deserialize(unsigned char *inbuffer) 43 | { 44 | int offset = 0; 45 | offset += this->header.deserialize(inbuffer + offset); 46 | uint8_t poses_lengthT = *(inbuffer + offset++); 47 | if(poses_lengthT > poses_length) 48 | this->poses = (geometry_msgs::Pose*)realloc(this->poses, poses_lengthT * sizeof(geometry_msgs::Pose)); 49 | offset += 3; 50 | poses_length = poses_lengthT; 51 | for( uint8_t i = 0; i < poses_length; i++){ 52 | offset += this->st_poses.deserialize(inbuffer + offset); 53 | memcpy( &(this->poses[i]), &(this->st_poses), sizeof(geometry_msgs::Pose)); 54 | } 55 | return offset; 56 | } 57 | 58 | const char * getType(){ return "geometry_msgs/PoseArray"; }; 59 | const char * getMD5(){ return "916c28c5764443f268b296bb671b9d97"; }; 60 | 61 | }; 62 | 63 | } 64 | #endif -------------------------------------------------------------------------------- /src/core/rcl/geometry_msgs/PoseStamped.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_geometry_msgs_PoseStamped_h 2 | #define _ROS_geometry_msgs_PoseStamped_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "std_msgs/Header.h" 9 | #include "geometry_msgs/Pose.h" 10 | 11 | namespace geometry_msgs 12 | { 13 | 14 | class PoseStamped : public ros::Msg 15 | { 16 | public: 17 | std_msgs::Header header; 18 | geometry_msgs::Pose pose; 19 | 20 | PoseStamped(): 21 | header(), 22 | pose() 23 | { 24 | } 25 | 26 | virtual int serialize(unsigned char *outbuffer) const 27 | { 28 | int offset = 0; 29 | offset += this->header.serialize(outbuffer + offset); 30 | offset += this->pose.serialize(outbuffer + offset); 31 | return offset; 32 | } 33 | 34 | virtual int deserialize(unsigned char *inbuffer) 35 | { 36 | int offset = 0; 37 | offset += this->header.deserialize(inbuffer + offset); 38 | offset += this->pose.deserialize(inbuffer + offset); 39 | return offset; 40 | } 41 | 42 | const char * getType(){ return "geometry_msgs/PoseStamped"; }; 43 | const char * getMD5(){ return "d3812c3cbc69362b77dc0b19b345f8f5"; }; 44 | 45 | }; 46 | 47 | } 48 | #endif -------------------------------------------------------------------------------- /src/core/rcl/geometry_msgs/PoseWithCovariance.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_geometry_msgs_PoseWithCovariance_h 2 | #define _ROS_geometry_msgs_PoseWithCovariance_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "geometry_msgs/Pose.h" 9 | 10 | namespace geometry_msgs 11 | { 12 | 13 | class PoseWithCovariance : public ros::Msg 14 | { 15 | public: 16 | geometry_msgs::Pose pose; 17 | float covariance[36]; 18 | 19 | PoseWithCovariance(): 20 | pose(), 21 | covariance() 22 | { 23 | } 24 | 25 | virtual int serialize(unsigned char *outbuffer) const 26 | { 27 | int offset = 0; 28 | offset += this->pose.serialize(outbuffer + offset); 29 | for( uint8_t i = 0; i < 36; i++){ 30 | offset += serializeAvrFloat64(outbuffer + offset, this->covariance[i]); 31 | } 32 | return offset; 33 | } 34 | 35 | virtual int deserialize(unsigned char *inbuffer) 36 | { 37 | int offset = 0; 38 | offset += this->pose.deserialize(inbuffer + offset); 39 | for( uint8_t i = 0; i < 36; i++){ 40 | offset += deserializeAvrFloat64(inbuffer + offset, &(this->covariance[i])); 41 | } 42 | return offset; 43 | } 44 | 45 | const char * getType(){ return "geometry_msgs/PoseWithCovariance"; }; 46 | const char * getMD5(){ return "c23e848cf1b7533a8d7c259073a97e6f"; }; 47 | 48 | }; 49 | 50 | } 51 | #endif -------------------------------------------------------------------------------- /src/core/rcl/geometry_msgs/PoseWithCovarianceStamped.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_geometry_msgs_PoseWithCovarianceStamped_h 2 | #define _ROS_geometry_msgs_PoseWithCovarianceStamped_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "std_msgs/Header.h" 9 | #include "geometry_msgs/PoseWithCovariance.h" 10 | 11 | namespace geometry_msgs 12 | { 13 | 14 | class PoseWithCovarianceStamped : public ros::Msg 15 | { 16 | public: 17 | std_msgs::Header header; 18 | geometry_msgs::PoseWithCovariance pose; 19 | 20 | PoseWithCovarianceStamped(): 21 | header(), 22 | pose() 23 | { 24 | } 25 | 26 | virtual int serialize(unsigned char *outbuffer) const 27 | { 28 | int offset = 0; 29 | offset += this->header.serialize(outbuffer + offset); 30 | offset += this->pose.serialize(outbuffer + offset); 31 | return offset; 32 | } 33 | 34 | virtual int deserialize(unsigned char *inbuffer) 35 | { 36 | int offset = 0; 37 | offset += this->header.deserialize(inbuffer + offset); 38 | offset += this->pose.deserialize(inbuffer + offset); 39 | return offset; 40 | } 41 | 42 | const char * getType(){ return "geometry_msgs/PoseWithCovarianceStamped"; }; 43 | const char * getMD5(){ return "953b798c0f514ff060a53a3498ce6246"; }; 44 | 45 | }; 46 | 47 | } 48 | #endif -------------------------------------------------------------------------------- /src/core/rcl/geometry_msgs/Quaternion.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_geometry_msgs_Quaternion_h 2 | #define _ROS_geometry_msgs_Quaternion_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "msg.h" 8 | 9 | namespace geometry_msgs 10 | { 11 | 12 | class Quaternion : public ros::Msg 13 | { 14 | public: 15 | float x; 16 | float y; 17 | float z; 18 | float w; 19 | 20 | Quaternion(): 21 | x(0), 22 | y(0), 23 | z(0), 24 | w(0) 25 | { 26 | } 27 | 28 | virtual int serialize(unsigned char *outbuffer) const 29 | { 30 | int offset = 0; 31 | offset += serializeAvrFloat64(outbuffer + offset, this->x); 32 | offset += serializeAvrFloat64(outbuffer + offset, this->y); 33 | offset += serializeAvrFloat64(outbuffer + offset, this->z); 34 | offset += serializeAvrFloat64(outbuffer + offset, this->w); 35 | return offset; 36 | } 37 | 38 | virtual int deserialize(unsigned char *inbuffer) 39 | { 40 | int offset = 0; 41 | offset += deserializeAvrFloat64(inbuffer + offset, &(this->x)); 42 | offset += deserializeAvrFloat64(inbuffer + offset, &(this->y)); 43 | offset += deserializeAvrFloat64(inbuffer + offset, &(this->z)); 44 | offset += deserializeAvrFloat64(inbuffer + offset, &(this->w)); 45 | return offset; 46 | } 47 | 48 | const char * getType(){ return "geometry_msgs/Quaternion"; }; 49 | const char * getMD5(){ return "a779879fadf0160734f906b8c19c7004"; }; 50 | 51 | }; 52 | 53 | } 54 | #endif 55 | -------------------------------------------------------------------------------- /src/core/rcl/geometry_msgs/QuaternionStamped.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_geometry_msgs_QuaternionStamped_h 2 | #define _ROS_geometry_msgs_QuaternionStamped_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "std_msgs/Header.h" 9 | #include "geometry_msgs/Quaternion.h" 10 | 11 | namespace geometry_msgs 12 | { 13 | 14 | class QuaternionStamped : public ros::Msg 15 | { 16 | public: 17 | std_msgs::Header header; 18 | geometry_msgs::Quaternion quaternion; 19 | 20 | QuaternionStamped(): 21 | header(), 22 | quaternion() 23 | { 24 | } 25 | 26 | virtual int serialize(unsigned char *outbuffer) const 27 | { 28 | int offset = 0; 29 | offset += this->header.serialize(outbuffer + offset); 30 | offset += this->quaternion.serialize(outbuffer + offset); 31 | return offset; 32 | } 33 | 34 | virtual int deserialize(unsigned char *inbuffer) 35 | { 36 | int offset = 0; 37 | offset += this->header.deserialize(inbuffer + offset); 38 | offset += this->quaternion.deserialize(inbuffer + offset); 39 | return offset; 40 | } 41 | 42 | const char * getType(){ return "geometry_msgs/QuaternionStamped"; }; 43 | const char * getMD5(){ return "e57f1e547e0e1fd13504588ffc8334e2"; }; 44 | 45 | }; 46 | 47 | } 48 | #endif -------------------------------------------------------------------------------- /src/core/rcl/geometry_msgs/Transform.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_geometry_msgs_Transform_h 2 | #define _ROS_geometry_msgs_Transform_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "geometry_msgs/Vector3.h" 9 | #include "geometry_msgs/Quaternion.h" 10 | 11 | namespace geometry_msgs 12 | { 13 | 14 | class Transform : public ros::Msg 15 | { 16 | public: 17 | geometry_msgs::Vector3 translation; 18 | geometry_msgs::Quaternion rotation; 19 | 20 | Transform(): 21 | translation(), 22 | rotation() 23 | { 24 | } 25 | 26 | virtual int serialize(unsigned char *outbuffer) const 27 | { 28 | int offset = 0; 29 | offset += this->translation.serialize(outbuffer + offset); 30 | offset += this->rotation.serialize(outbuffer + offset); 31 | return offset; 32 | } 33 | 34 | virtual int deserialize(unsigned char *inbuffer) 35 | { 36 | int offset = 0; 37 | offset += this->translation.deserialize(inbuffer + offset); 38 | offset += this->rotation.deserialize(inbuffer + offset); 39 | return offset; 40 | } 41 | 42 | const char * getType(){ return "geometry_msgs/Transform"; }; 43 | const char * getMD5(){ return "ac9eff44abf714214112b05d54a3cf9b"; }; 44 | 45 | }; 46 | 47 | } 48 | #endif -------------------------------------------------------------------------------- /src/core/rcl/geometry_msgs/TransformStamped.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_geometry_msgs_TransformStamped_h 2 | #define _ROS_geometry_msgs_TransformStamped_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "std_msgs/Header.h" 9 | #include "geometry_msgs/Transform.h" 10 | 11 | namespace geometry_msgs 12 | { 13 | 14 | class TransformStamped : public ros::Msg 15 | { 16 | public: 17 | std_msgs::Header header; 18 | const char* child_frame_id; 19 | geometry_msgs::Transform transform; 20 | 21 | TransformStamped(): 22 | header(), 23 | child_frame_id(""), 24 | transform() 25 | { 26 | } 27 | 28 | virtual int serialize(unsigned char *outbuffer) const 29 | { 30 | int offset = 0; 31 | offset += this->header.serialize(outbuffer + offset); 32 | uint32_t length_child_frame_id = strlen(this->child_frame_id); 33 | memcpy(outbuffer + offset, &length_child_frame_id, sizeof(uint32_t)); 34 | offset += 4; 35 | memcpy(outbuffer + offset, this->child_frame_id, length_child_frame_id); 36 | offset += length_child_frame_id; 37 | offset += this->transform.serialize(outbuffer + offset); 38 | return offset; 39 | } 40 | 41 | virtual int deserialize(unsigned char *inbuffer) 42 | { 43 | int offset = 0; 44 | offset += this->header.deserialize(inbuffer + offset); 45 | uint32_t length_child_frame_id; 46 | memcpy(&length_child_frame_id, (inbuffer + offset), sizeof(uint32_t)); 47 | offset += 4; 48 | for(unsigned int k= offset; k< offset+length_child_frame_id; ++k){ 49 | inbuffer[k-1]=inbuffer[k]; 50 | } 51 | inbuffer[offset+length_child_frame_id-1]=0; 52 | this->child_frame_id = (char *)(inbuffer + offset-1); 53 | offset += length_child_frame_id; 54 | offset += this->transform.deserialize(inbuffer + offset); 55 | return offset; 56 | } 57 | 58 | const char * getType(){ return "geometry_msgs/TransformStamped"; }; 59 | const char * getMD5(){ return "b5764a33bfeb3588febc2682852579b0"; }; 60 | 61 | }; 62 | 63 | } 64 | #endif -------------------------------------------------------------------------------- /src/core/rcl/geometry_msgs/Twist.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_geometry_msgs_Twist_h 2 | #define _ROS_geometry_msgs_Twist_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "geometry_msgs/Vector3.h" 9 | 10 | namespace geometry_msgs 11 | { 12 | 13 | class Twist : public ros::Msg 14 | { 15 | public: 16 | geometry_msgs::Vector3 linear; 17 | geometry_msgs::Vector3 angular; 18 | 19 | Twist(): 20 | linear(), 21 | angular() 22 | { 23 | } 24 | 25 | virtual int serialize(unsigned char *outbuffer) const 26 | { 27 | int offset = 0; 28 | offset += this->linear.serialize(outbuffer + offset); 29 | offset += this->angular.serialize(outbuffer + offset); 30 | return offset; 31 | } 32 | 33 | virtual int deserialize(unsigned char *inbuffer) 34 | { 35 | int offset = 0; 36 | offset += this->linear.deserialize(inbuffer + offset); 37 | offset += this->angular.deserialize(inbuffer + offset); 38 | return offset; 39 | } 40 | 41 | const char * getType(){ return "geometry_msgs/Twist"; }; 42 | const char * getMD5(){ return "9f195f881246fdfa2798d1d3eebca84a"; }; 43 | 44 | }; 45 | 46 | } 47 | #endif -------------------------------------------------------------------------------- /src/core/rcl/geometry_msgs/TwistStamped.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_geometry_msgs_TwistStamped_h 2 | #define _ROS_geometry_msgs_TwistStamped_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "std_msgs/Header.h" 9 | #include "geometry_msgs/Twist.h" 10 | 11 | namespace geometry_msgs 12 | { 13 | 14 | class TwistStamped : public ros::Msg 15 | { 16 | public: 17 | std_msgs::Header header; 18 | geometry_msgs::Twist twist; 19 | 20 | TwistStamped(): 21 | header(), 22 | twist() 23 | { 24 | } 25 | 26 | virtual int serialize(unsigned char *outbuffer) const 27 | { 28 | int offset = 0; 29 | offset += this->header.serialize(outbuffer + offset); 30 | offset += this->twist.serialize(outbuffer + offset); 31 | return offset; 32 | } 33 | 34 | virtual int deserialize(unsigned char *inbuffer) 35 | { 36 | int offset = 0; 37 | offset += this->header.deserialize(inbuffer + offset); 38 | offset += this->twist.deserialize(inbuffer + offset); 39 | return offset; 40 | } 41 | 42 | const char * getType(){ return "geometry_msgs/TwistStamped"; }; 43 | const char * getMD5(){ return "98d34b0043a2093cf9d9345ab6eef12e"; }; 44 | 45 | }; 46 | 47 | } 48 | #endif -------------------------------------------------------------------------------- /src/core/rcl/geometry_msgs/TwistWithCovariance.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_geometry_msgs_TwistWithCovariance_h 2 | #define _ROS_geometry_msgs_TwistWithCovariance_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "geometry_msgs/Twist.h" 9 | 10 | namespace geometry_msgs 11 | { 12 | 13 | class TwistWithCovariance : public ros::Msg 14 | { 15 | public: 16 | geometry_msgs::Twist twist; 17 | float covariance[36]; 18 | 19 | TwistWithCovariance(): 20 | twist(), 21 | covariance() 22 | { 23 | } 24 | 25 | virtual int serialize(unsigned char *outbuffer) const 26 | { 27 | int offset = 0; 28 | offset += this->twist.serialize(outbuffer + offset); 29 | for( uint8_t i = 0; i < 36; i++){ 30 | offset += serializeAvrFloat64(outbuffer + offset, this->covariance[i]); 31 | } 32 | return offset; 33 | } 34 | 35 | virtual int deserialize(unsigned char *inbuffer) 36 | { 37 | int offset = 0; 38 | offset += this->twist.deserialize(inbuffer + offset); 39 | for( uint8_t i = 0; i < 36; i++){ 40 | offset += deserializeAvrFloat64(inbuffer + offset, &(this->covariance[i])); 41 | } 42 | return offset; 43 | } 44 | 45 | const char * getType(){ return "geometry_msgs/TwistWithCovariance"; }; 46 | const char * getMD5(){ return "1fe8a28e6890a4cc3ae4c3ca5c7d82e6"; }; 47 | 48 | }; 49 | 50 | } 51 | #endif -------------------------------------------------------------------------------- /src/core/rcl/geometry_msgs/TwistWithCovarianceStamped.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_geometry_msgs_TwistWithCovarianceStamped_h 2 | #define _ROS_geometry_msgs_TwistWithCovarianceStamped_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "std_msgs/Header.h" 9 | #include "geometry_msgs/TwistWithCovariance.h" 10 | 11 | namespace geometry_msgs 12 | { 13 | 14 | class TwistWithCovarianceStamped : public ros::Msg 15 | { 16 | public: 17 | std_msgs::Header header; 18 | geometry_msgs::TwistWithCovariance twist; 19 | 20 | TwistWithCovarianceStamped(): 21 | header(), 22 | twist() 23 | { 24 | } 25 | 26 | virtual int serialize(unsigned char *outbuffer) const 27 | { 28 | int offset = 0; 29 | offset += this->header.serialize(outbuffer + offset); 30 | offset += this->twist.serialize(outbuffer + offset); 31 | return offset; 32 | } 33 | 34 | virtual int deserialize(unsigned char *inbuffer) 35 | { 36 | int offset = 0; 37 | offset += this->header.deserialize(inbuffer + offset); 38 | offset += this->twist.deserialize(inbuffer + offset); 39 | return offset; 40 | } 41 | 42 | const char * getType(){ return "geometry_msgs/TwistWithCovarianceStamped"; }; 43 | const char * getMD5(){ return "8927a1a12fb2607ceea095b2dc440a96"; }; 44 | 45 | }; 46 | 47 | } 48 | #endif -------------------------------------------------------------------------------- /src/core/rcl/geometry_msgs/Vector3.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_geometry_msgs_Vector3_h 2 | #define _ROS_geometry_msgs_Vector3_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "msg.h" 8 | 9 | namespace geometry_msgs 10 | { 11 | 12 | class Vector3 : public ros::Msg 13 | { 14 | public: 15 | float x; 16 | float y; 17 | float z; 18 | 19 | Vector3(): 20 | x(0), 21 | y(0), 22 | z(0) 23 | { 24 | } 25 | 26 | virtual int serialize(unsigned char *outbuffer) const 27 | { 28 | int offset = 0; 29 | offset += serializeAvrFloat64(outbuffer + offset, this->x); 30 | offset += serializeAvrFloat64(outbuffer + offset, this->y); 31 | offset += serializeAvrFloat64(outbuffer + offset, this->z); 32 | return offset; 33 | } 34 | 35 | virtual int deserialize(unsigned char *inbuffer) 36 | { 37 | int offset = 0; 38 | offset += deserializeAvrFloat64(inbuffer + offset, &(this->x)); 39 | offset += deserializeAvrFloat64(inbuffer + offset, &(this->y)); 40 | offset += deserializeAvrFloat64(inbuffer + offset, &(this->z)); 41 | return offset; 42 | } 43 | 44 | const char * getType(){ return "geometry_msgs/Vector3"; }; 45 | const char * getMD5(){ return "4a842b65f413084dc2b10fb484ea7f17"; }; 46 | 47 | }; 48 | 49 | } 50 | #endif 51 | -------------------------------------------------------------------------------- /src/core/rcl/geometry_msgs/Vector3Stamped.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_geometry_msgs_Vector3Stamped_h 2 | #define _ROS_geometry_msgs_Vector3Stamped_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "std_msgs/Header.h" 9 | #include "geometry_msgs/Vector3.h" 10 | 11 | namespace geometry_msgs 12 | { 13 | 14 | class Vector3Stamped : public ros::Msg 15 | { 16 | public: 17 | std_msgs::Header header; 18 | geometry_msgs::Vector3 vector; 19 | 20 | Vector3Stamped(): 21 | header(), 22 | vector() 23 | { 24 | } 25 | 26 | virtual int serialize(unsigned char *outbuffer) const 27 | { 28 | int offset = 0; 29 | offset += this->header.serialize(outbuffer + offset); 30 | offset += this->vector.serialize(outbuffer + offset); 31 | return offset; 32 | } 33 | 34 | virtual int deserialize(unsigned char *inbuffer) 35 | { 36 | int offset = 0; 37 | offset += this->header.deserialize(inbuffer + offset); 38 | offset += this->vector.deserialize(inbuffer + offset); 39 | return offset; 40 | } 41 | 42 | const char * getType(){ return "geometry_msgs/Vector3Stamped"; }; 43 | const char * getMD5(){ return "7b324c7325e683bf02a9b14b01090ec7"; }; 44 | 45 | }; 46 | 47 | } 48 | #endif -------------------------------------------------------------------------------- /src/core/rcl/geometry_msgs/Wrench.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_geometry_msgs_Wrench_h 2 | #define _ROS_geometry_msgs_Wrench_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "geometry_msgs/Vector3.h" 9 | 10 | namespace geometry_msgs 11 | { 12 | 13 | class Wrench : public ros::Msg 14 | { 15 | public: 16 | geometry_msgs::Vector3 force; 17 | geometry_msgs::Vector3 torque; 18 | 19 | Wrench(): 20 | force(), 21 | torque() 22 | { 23 | } 24 | 25 | virtual int serialize(unsigned char *outbuffer) const 26 | { 27 | int offset = 0; 28 | offset += this->force.serialize(outbuffer + offset); 29 | offset += this->torque.serialize(outbuffer + offset); 30 | return offset; 31 | } 32 | 33 | virtual int deserialize(unsigned char *inbuffer) 34 | { 35 | int offset = 0; 36 | offset += this->force.deserialize(inbuffer + offset); 37 | offset += this->torque.deserialize(inbuffer + offset); 38 | return offset; 39 | } 40 | 41 | const char * getType(){ return "geometry_msgs/Wrench"; }; 42 | const char * getMD5(){ return "4f539cf138b23283b520fd271b567936"; }; 43 | 44 | }; 45 | 46 | } 47 | #endif -------------------------------------------------------------------------------- /src/core/rcl/geometry_msgs/WrenchStamped.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_geometry_msgs_WrenchStamped_h 2 | #define _ROS_geometry_msgs_WrenchStamped_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "std_msgs/Header.h" 9 | #include "geometry_msgs/Wrench.h" 10 | 11 | namespace geometry_msgs 12 | { 13 | 14 | class WrenchStamped : public ros::Msg 15 | { 16 | public: 17 | std_msgs::Header header; 18 | geometry_msgs::Wrench wrench; 19 | 20 | WrenchStamped(): 21 | header(), 22 | wrench() 23 | { 24 | } 25 | 26 | virtual int serialize(unsigned char *outbuffer) const 27 | { 28 | int offset = 0; 29 | offset += this->header.serialize(outbuffer + offset); 30 | offset += this->wrench.serialize(outbuffer + offset); 31 | return offset; 32 | } 33 | 34 | virtual int deserialize(unsigned char *inbuffer) 35 | { 36 | int offset = 0; 37 | offset += this->header.deserialize(inbuffer + offset); 38 | offset += this->wrench.deserialize(inbuffer + offset); 39 | return offset; 40 | } 41 | 42 | const char * getType(){ return "geometry_msgs/WrenchStamped"; }; 43 | const char * getMD5(){ return "d78d3cb249ce23087ade7e7d0c40cfa7"; }; 44 | 45 | }; 46 | 47 | } 48 | #endif -------------------------------------------------------------------------------- /src/core/rcl/rcl.cpp: -------------------------------------------------------------------------------- 1 | #include "rcl.h" 2 | #include "FreeRTOS.h" 3 | #include "task.h" 4 | #include "timers.h" 5 | 6 | 7 | 8 | void spinLoop(void (*callback)(void), unsigned int period) 9 | { 10 | LOOP(period, 11 | // start while 12 | callback(); 13 | // end while 14 | ) 15 | } 16 | -------------------------------------------------------------------------------- /src/core/rcl/rcl.h: -------------------------------------------------------------------------------- 1 | //#define QUEUE_MSG_SIZE 128 2 | #include 3 | #include "stm32f4xx.h" 4 | 5 | void spinLoop(void (*callback)(void), unsigned int period); 6 | /** 7 | * LOOP macro: Used to include a periodic code. 8 | * The advantage of this macro is that the user will not need to explicitly call vTaskDelayUntil function, so that kernel functions remain invisible. 9 | * First argument: Period. 10 | * Second argument: periodic code. 11 | */ 12 | #define LOOP(period, code) portTickType xLastWakeTime=xTaskGetTickCount(); \ 13 | while(1) \ 14 | { \ 15 | code \ 16 | vTaskDelayUntil(&xLastWakeTime, period); \ 17 | } 18 | 19 | 20 | void LOG(const char* fmt, ...); 21 | -------------------------------------------------------------------------------- /src/core/rcl/sensor_msgs/FluidPressure.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_sensor_msgs_FluidPressure_h 2 | #define _ROS_sensor_msgs_FluidPressure_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "std_msgs/Header.h" 9 | 10 | namespace sensor_msgs 11 | { 12 | 13 | class FluidPressure : public ros::Msg 14 | { 15 | public: 16 | std_msgs::Header header; 17 | float fluid_pressure; 18 | float variance; 19 | 20 | FluidPressure(): 21 | header(), 22 | fluid_pressure(0), 23 | variance(0) 24 | { 25 | } 26 | 27 | virtual int serialize(unsigned char *outbuffer) const 28 | { 29 | int offset = 0; 30 | offset += this->header.serialize(outbuffer + offset); 31 | offset += serializeAvrFloat64(outbuffer + offset, this->fluid_pressure); 32 | offset += serializeAvrFloat64(outbuffer + offset, this->variance); 33 | return offset; 34 | } 35 | 36 | virtual int deserialize(unsigned char *inbuffer) 37 | { 38 | int offset = 0; 39 | offset += this->header.deserialize(inbuffer + offset); 40 | offset += deserializeAvrFloat64(inbuffer + offset, &(this->fluid_pressure)); 41 | offset += deserializeAvrFloat64(inbuffer + offset, &(this->variance)); 42 | return offset; 43 | } 44 | 45 | const char * getType(){ return "sensor_msgs/FluidPressure"; }; 46 | const char * getMD5(){ return "804dc5cea1c5306d6a2eb80b9833befe"; }; 47 | 48 | }; 49 | 50 | } 51 | #endif -------------------------------------------------------------------------------- /src/core/rcl/sensor_msgs/Illuminance.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_sensor_msgs_Illuminance_h 2 | #define _ROS_sensor_msgs_Illuminance_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "std_msgs/Header.h" 9 | 10 | namespace sensor_msgs 11 | { 12 | 13 | class Illuminance : public ros::Msg 14 | { 15 | public: 16 | std_msgs::Header header; 17 | float illuminance; 18 | float variance; 19 | 20 | Illuminance(): 21 | header(), 22 | illuminance(0), 23 | variance(0) 24 | { 25 | } 26 | 27 | virtual int serialize(unsigned char *outbuffer) const 28 | { 29 | int offset = 0; 30 | offset += this->header.serialize(outbuffer + offset); 31 | offset += serializeAvrFloat64(outbuffer + offset, this->illuminance); 32 | offset += serializeAvrFloat64(outbuffer + offset, this->variance); 33 | return offset; 34 | } 35 | 36 | virtual int deserialize(unsigned char *inbuffer) 37 | { 38 | int offset = 0; 39 | offset += this->header.deserialize(inbuffer + offset); 40 | offset += deserializeAvrFloat64(inbuffer + offset, &(this->illuminance)); 41 | offset += deserializeAvrFloat64(inbuffer + offset, &(this->variance)); 42 | return offset; 43 | } 44 | 45 | const char * getType(){ return "sensor_msgs/Illuminance"; }; 46 | const char * getMD5(){ return "8cf5febb0952fca9d650c3d11a81a188"; }; 47 | 48 | }; 49 | 50 | } 51 | #endif -------------------------------------------------------------------------------- /src/core/rcl/sensor_msgs/JoyFeedback.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_sensor_msgs_JoyFeedback_h 2 | #define _ROS_sensor_msgs_JoyFeedback_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | 9 | namespace sensor_msgs 10 | { 11 | 12 | class JoyFeedback : public ros::Msg 13 | { 14 | public: 15 | uint8_t type; 16 | uint8_t id; 17 | float intensity; 18 | enum { TYPE_LED = 0 }; 19 | enum { TYPE_RUMBLE = 1 }; 20 | enum { TYPE_BUZZER = 2 }; 21 | 22 | JoyFeedback(): 23 | type(0), 24 | id(0), 25 | intensity(0) 26 | { 27 | } 28 | 29 | virtual int serialize(unsigned char *outbuffer) const 30 | { 31 | int offset = 0; 32 | *(outbuffer + offset + 0) = (this->type >> (8 * 0)) & 0xFF; 33 | offset += sizeof(this->type); 34 | *(outbuffer + offset + 0) = (this->id >> (8 * 0)) & 0xFF; 35 | offset += sizeof(this->id); 36 | union { 37 | float real; 38 | uint32_t base; 39 | } u_intensity; 40 | u_intensity.real = this->intensity; 41 | *(outbuffer + offset + 0) = (u_intensity.base >> (8 * 0)) & 0xFF; 42 | *(outbuffer + offset + 1) = (u_intensity.base >> (8 * 1)) & 0xFF; 43 | *(outbuffer + offset + 2) = (u_intensity.base >> (8 * 2)) & 0xFF; 44 | *(outbuffer + offset + 3) = (u_intensity.base >> (8 * 3)) & 0xFF; 45 | offset += sizeof(this->intensity); 46 | return offset; 47 | } 48 | 49 | virtual int deserialize(unsigned char *inbuffer) 50 | { 51 | int offset = 0; 52 | this->type = ((uint8_t) (*(inbuffer + offset))); 53 | offset += sizeof(this->type); 54 | this->id = ((uint8_t) (*(inbuffer + offset))); 55 | offset += sizeof(this->id); 56 | union { 57 | float real; 58 | uint32_t base; 59 | } u_intensity; 60 | u_intensity.base = 0; 61 | u_intensity.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0); 62 | u_intensity.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); 63 | u_intensity.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); 64 | u_intensity.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); 65 | this->intensity = u_intensity.real; 66 | offset += sizeof(this->intensity); 67 | return offset; 68 | } 69 | 70 | const char * getType(){ return "sensor_msgs/JoyFeedback"; }; 71 | const char * getMD5(){ return "f4dcd73460360d98f36e55ee7f2e46f1"; }; 72 | 73 | }; 74 | 75 | } 76 | #endif -------------------------------------------------------------------------------- /src/core/rcl/sensor_msgs/JoyFeedbackArray.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_sensor_msgs_JoyFeedbackArray_h 2 | #define _ROS_sensor_msgs_JoyFeedbackArray_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "sensor_msgs/JoyFeedback.h" 9 | 10 | namespace sensor_msgs 11 | { 12 | 13 | class JoyFeedbackArray : public ros::Msg 14 | { 15 | public: 16 | uint8_t array_length; 17 | sensor_msgs::JoyFeedback st_array; 18 | sensor_msgs::JoyFeedback * array; 19 | 20 | JoyFeedbackArray(): 21 | array_length(0), array(NULL) 22 | { 23 | } 24 | 25 | virtual int serialize(unsigned char *outbuffer) const 26 | { 27 | int offset = 0; 28 | *(outbuffer + offset++) = array_length; 29 | *(outbuffer + offset++) = 0; 30 | *(outbuffer + offset++) = 0; 31 | *(outbuffer + offset++) = 0; 32 | for( uint8_t i = 0; i < array_length; i++){ 33 | offset += this->array[i].serialize(outbuffer + offset); 34 | } 35 | return offset; 36 | } 37 | 38 | virtual int deserialize(unsigned char *inbuffer) 39 | { 40 | int offset = 0; 41 | uint8_t array_lengthT = *(inbuffer + offset++); 42 | if(array_lengthT > array_length) 43 | this->array = (sensor_msgs::JoyFeedback*)realloc(this->array, array_lengthT * sizeof(sensor_msgs::JoyFeedback)); 44 | offset += 3; 45 | array_length = array_lengthT; 46 | for( uint8_t i = 0; i < array_length; i++){ 47 | offset += this->st_array.deserialize(inbuffer + offset); 48 | memcpy( &(this->array[i]), &(this->st_array), sizeof(sensor_msgs::JoyFeedback)); 49 | } 50 | return offset; 51 | } 52 | 53 | const char * getType(){ return "sensor_msgs/JoyFeedbackArray"; }; 54 | const char * getMD5(){ return "cde5730a895b1fc4dee6f91b754b213d"; }; 55 | 56 | }; 57 | 58 | } 59 | #endif -------------------------------------------------------------------------------- /src/core/rcl/sensor_msgs/LaserEcho.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_sensor_msgs_LaserEcho_h 2 | #define _ROS_sensor_msgs_LaserEcho_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | 9 | namespace sensor_msgs 10 | { 11 | 12 | class LaserEcho : public ros::Msg 13 | { 14 | public: 15 | uint8_t echoes_length; 16 | float st_echoes; 17 | float * echoes; 18 | 19 | LaserEcho(): 20 | echoes_length(0), echoes(NULL) 21 | { 22 | } 23 | 24 | virtual int serialize(unsigned char *outbuffer) const 25 | { 26 | int offset = 0; 27 | *(outbuffer + offset++) = echoes_length; 28 | *(outbuffer + offset++) = 0; 29 | *(outbuffer + offset++) = 0; 30 | *(outbuffer + offset++) = 0; 31 | for( uint8_t i = 0; i < echoes_length; i++){ 32 | union { 33 | float real; 34 | uint32_t base; 35 | } u_echoesi; 36 | u_echoesi.real = this->echoes[i]; 37 | *(outbuffer + offset + 0) = (u_echoesi.base >> (8 * 0)) & 0xFF; 38 | *(outbuffer + offset + 1) = (u_echoesi.base >> (8 * 1)) & 0xFF; 39 | *(outbuffer + offset + 2) = (u_echoesi.base >> (8 * 2)) & 0xFF; 40 | *(outbuffer + offset + 3) = (u_echoesi.base >> (8 * 3)) & 0xFF; 41 | offset += sizeof(this->echoes[i]); 42 | } 43 | return offset; 44 | } 45 | 46 | virtual int deserialize(unsigned char *inbuffer) 47 | { 48 | int offset = 0; 49 | uint8_t echoes_lengthT = *(inbuffer + offset++); 50 | if(echoes_lengthT > echoes_length) 51 | this->echoes = (float*)realloc(this->echoes, echoes_lengthT * sizeof(float)); 52 | offset += 3; 53 | echoes_length = echoes_lengthT; 54 | for( uint8_t i = 0; i < echoes_length; i++){ 55 | union { 56 | float real; 57 | uint32_t base; 58 | } u_st_echoes; 59 | u_st_echoes.base = 0; 60 | u_st_echoes.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0); 61 | u_st_echoes.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); 62 | u_st_echoes.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); 63 | u_st_echoes.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); 64 | this->st_echoes = u_st_echoes.real; 65 | offset += sizeof(this->st_echoes); 66 | memcpy( &(this->echoes[i]), &(this->st_echoes), sizeof(float)); 67 | } 68 | return offset; 69 | } 70 | 71 | const char * getType(){ return "sensor_msgs/LaserEcho"; }; 72 | const char * getMD5(){ return "8bc5ae449b200fba4d552b4225586696"; }; 73 | 74 | }; 75 | 76 | } 77 | #endif -------------------------------------------------------------------------------- /src/core/rcl/sensor_msgs/MagneticField.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_sensor_msgs_MagneticField_h 2 | #define _ROS_sensor_msgs_MagneticField_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "std_msgs/Header.h" 9 | #include "geometry_msgs/Vector3.h" 10 | 11 | namespace sensor_msgs 12 | { 13 | 14 | class MagneticField : public ros::Msg 15 | { 16 | public: 17 | std_msgs::Header header; 18 | geometry_msgs::Vector3 magnetic_field; 19 | float magnetic_field_covariance[9]; 20 | 21 | MagneticField(): 22 | header(), 23 | magnetic_field(), 24 | magnetic_field_covariance() 25 | { 26 | } 27 | 28 | virtual int serialize(unsigned char *outbuffer) const 29 | { 30 | int offset = 0; 31 | offset += this->header.serialize(outbuffer + offset); 32 | offset += this->magnetic_field.serialize(outbuffer + offset); 33 | for( uint8_t i = 0; i < 9; i++){ 34 | offset += serializeAvrFloat64(outbuffer + offset, this->magnetic_field_covariance[i]); 35 | } 36 | return offset; 37 | } 38 | 39 | virtual int deserialize(unsigned char *inbuffer) 40 | { 41 | int offset = 0; 42 | offset += this->header.deserialize(inbuffer + offset); 43 | offset += this->magnetic_field.deserialize(inbuffer + offset); 44 | for( uint8_t i = 0; i < 9; i++){ 45 | offset += deserializeAvrFloat64(inbuffer + offset, &(this->magnetic_field_covariance[i])); 46 | } 47 | return offset; 48 | } 49 | 50 | const char * getType(){ return "sensor_msgs/MagneticField"; }; 51 | const char * getMD5(){ return "2f3b0b43eed0c9501de0fa3ff89a45aa"; }; 52 | 53 | }; 54 | 55 | } 56 | #endif -------------------------------------------------------------------------------- /src/core/rcl/sensor_msgs/NavSatStatus.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_sensor_msgs_NavSatStatus_h 2 | #define _ROS_sensor_msgs_NavSatStatus_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | 9 | namespace sensor_msgs 10 | { 11 | 12 | class NavSatStatus : public ros::Msg 13 | { 14 | public: 15 | int8_t status; 16 | uint16_t service; 17 | enum { STATUS_NO_FIX = -1 }; 18 | enum { STATUS_FIX = 0 }; 19 | enum { STATUS_SBAS_FIX = 1 }; 20 | enum { STATUS_GBAS_FIX = 2 }; 21 | enum { SERVICE_GPS = 1 }; 22 | enum { SERVICE_GLONASS = 2 }; 23 | enum { SERVICE_COMPASS = 4 }; 24 | enum { SERVICE_GALILEO = 8 }; 25 | 26 | NavSatStatus(): 27 | status(0), 28 | service(0) 29 | { 30 | } 31 | 32 | virtual int serialize(unsigned char *outbuffer) const 33 | { 34 | int offset = 0; 35 | union { 36 | int8_t real; 37 | uint8_t base; 38 | } u_status; 39 | u_status.real = this->status; 40 | *(outbuffer + offset + 0) = (u_status.base >> (8 * 0)) & 0xFF; 41 | offset += sizeof(this->status); 42 | *(outbuffer + offset + 0) = (this->service >> (8 * 0)) & 0xFF; 43 | *(outbuffer + offset + 1) = (this->service >> (8 * 1)) & 0xFF; 44 | offset += sizeof(this->service); 45 | return offset; 46 | } 47 | 48 | virtual int deserialize(unsigned char *inbuffer) 49 | { 50 | int offset = 0; 51 | union { 52 | int8_t real; 53 | uint8_t base; 54 | } u_status; 55 | u_status.base = 0; 56 | u_status.base |= ((uint8_t) (*(inbuffer + offset + 0))) << (8 * 0); 57 | this->status = u_status.real; 58 | offset += sizeof(this->status); 59 | this->service = ((uint16_t) (*(inbuffer + offset))); 60 | this->service |= ((uint16_t) (*(inbuffer + offset + 1))) << (8 * 1); 61 | offset += sizeof(this->service); 62 | return offset; 63 | } 64 | 65 | const char * getType(){ return "sensor_msgs/NavSatStatus"; }; 66 | const char * getMD5(){ return "331cdbddfa4bc96ffc3b9ad98900a54c"; }; 67 | 68 | }; 69 | 70 | } 71 | #endif -------------------------------------------------------------------------------- /src/core/rcl/sensor_msgs/RelativeHumidity.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_sensor_msgs_RelativeHumidity_h 2 | #define _ROS_sensor_msgs_RelativeHumidity_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "std_msgs/Header.h" 9 | 10 | namespace sensor_msgs 11 | { 12 | 13 | class RelativeHumidity : public ros::Msg 14 | { 15 | public: 16 | std_msgs::Header header; 17 | float relative_humidity; 18 | float variance; 19 | 20 | RelativeHumidity(): 21 | header(), 22 | relative_humidity(0), 23 | variance(0) 24 | { 25 | } 26 | 27 | virtual int serialize(unsigned char *outbuffer) const 28 | { 29 | int offset = 0; 30 | offset += this->header.serialize(outbuffer + offset); 31 | offset += serializeAvrFloat64(outbuffer + offset, this->relative_humidity); 32 | offset += serializeAvrFloat64(outbuffer + offset, this->variance); 33 | return offset; 34 | } 35 | 36 | virtual int deserialize(unsigned char *inbuffer) 37 | { 38 | int offset = 0; 39 | offset += this->header.deserialize(inbuffer + offset); 40 | offset += deserializeAvrFloat64(inbuffer + offset, &(this->relative_humidity)); 41 | offset += deserializeAvrFloat64(inbuffer + offset, &(this->variance)); 42 | return offset; 43 | } 44 | 45 | const char * getType(){ return "sensor_msgs/RelativeHumidity"; }; 46 | const char * getMD5(){ return "8730015b05955b7e992ce29a2678d90f"; }; 47 | 48 | }; 49 | 50 | } 51 | #endif -------------------------------------------------------------------------------- /src/core/rcl/sensor_msgs/Temperature.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_sensor_msgs_Temperature_h 2 | #define _ROS_sensor_msgs_Temperature_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "std_msgs/Header.h" 9 | 10 | namespace sensor_msgs 11 | { 12 | 13 | class Temperature : public ros::Msg 14 | { 15 | public: 16 | std_msgs::Header header; 17 | float temperature; 18 | float variance; 19 | 20 | Temperature(): 21 | header(), 22 | temperature(0), 23 | variance(0) 24 | { 25 | } 26 | 27 | virtual int serialize(unsigned char *outbuffer) const 28 | { 29 | int offset = 0; 30 | offset += this->header.serialize(outbuffer + offset); 31 | offset += serializeAvrFloat64(outbuffer + offset, this->temperature); 32 | offset += serializeAvrFloat64(outbuffer + offset, this->variance); 33 | return offset; 34 | } 35 | 36 | virtual int deserialize(unsigned char *inbuffer) 37 | { 38 | int offset = 0; 39 | offset += this->header.deserialize(inbuffer + offset); 40 | offset += deserializeAvrFloat64(inbuffer + offset, &(this->temperature)); 41 | offset += deserializeAvrFloat64(inbuffer + offset, &(this->variance)); 42 | return offset; 43 | } 44 | 45 | const char * getType(){ return "sensor_msgs/Temperature"; }; 46 | const char * getMD5(){ return "ff71b307acdbe7c871a5a6d7ed359100"; }; 47 | 48 | }; 49 | 50 | } 51 | #endif -------------------------------------------------------------------------------- /src/core/rcl/std_msgs/Bool.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_std_msgs_Bool_h 2 | #define _ROS_std_msgs_Bool_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | 9 | namespace std_msgs 10 | { 11 | 12 | class Bool : public ros::Msg 13 | { 14 | public: 15 | bool data; 16 | 17 | Bool(): 18 | data(0) 19 | { 20 | } 21 | 22 | virtual int serialize(unsigned char *outbuffer) const 23 | { 24 | int offset = 0; 25 | union { 26 | bool real; 27 | uint8_t base; 28 | } u_data; 29 | u_data.real = this->data; 30 | *(outbuffer + offset + 0) = (u_data.base >> (8 * 0)) & 0xFF; 31 | offset += sizeof(this->data); 32 | return offset; 33 | } 34 | 35 | virtual int deserialize(unsigned char *inbuffer) 36 | { 37 | int offset = 0; 38 | union { 39 | bool real; 40 | uint8_t base; 41 | } u_data; 42 | u_data.base = 0; 43 | u_data.base |= ((uint8_t) (*(inbuffer + offset + 0))) << (8 * 0); 44 | this->data = u_data.real; 45 | offset += sizeof(this->data); 46 | return offset; 47 | } 48 | 49 | const char * getType(){ return "std_msgs/Bool"; }; 50 | const char * getMD5(){ return "8b94c1b53db61fb6aed406028ad6332a"; }; 51 | 52 | }; 53 | 54 | } 55 | #endif -------------------------------------------------------------------------------- /src/core/rcl/std_msgs/Byte.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_std_msgs_Byte_h 2 | #define _ROS_std_msgs_Byte_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | 9 | namespace std_msgs 10 | { 11 | 12 | class Byte : public ros::Msg 13 | { 14 | public: 15 | int8_t data; 16 | 17 | Byte(): 18 | data(0) 19 | { 20 | } 21 | 22 | virtual int serialize(unsigned char *outbuffer) const 23 | { 24 | int offset = 0; 25 | union { 26 | int8_t real; 27 | uint8_t base; 28 | } u_data; 29 | u_data.real = this->data; 30 | *(outbuffer + offset + 0) = (u_data.base >> (8 * 0)) & 0xFF; 31 | offset += sizeof(this->data); 32 | return offset; 33 | } 34 | 35 | virtual int deserialize(unsigned char *inbuffer) 36 | { 37 | int offset = 0; 38 | union { 39 | int8_t real; 40 | uint8_t base; 41 | } u_data; 42 | u_data.base = 0; 43 | u_data.base |= ((uint8_t) (*(inbuffer + offset + 0))) << (8 * 0); 44 | this->data = u_data.real; 45 | offset += sizeof(this->data); 46 | return offset; 47 | } 48 | 49 | const char * getType(){ return "std_msgs/Byte"; }; 50 | const char * getMD5(){ return "ad736a2e8818154c487bb80fe42ce43b"; }; 51 | 52 | }; 53 | 54 | } 55 | #endif -------------------------------------------------------------------------------- /src/core/rcl/std_msgs/ByteMultiArray.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_std_msgs_ByteMultiArray_h 2 | #define _ROS_std_msgs_ByteMultiArray_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "std_msgs/MultiArrayLayout.h" 9 | 10 | namespace std_msgs 11 | { 12 | 13 | class ByteMultiArray : public ros::Msg 14 | { 15 | public: 16 | std_msgs::MultiArrayLayout layout; 17 | uint8_t data_length; 18 | int8_t st_data; 19 | int8_t * data; 20 | 21 | ByteMultiArray(): 22 | layout(), 23 | data_length(0), data(NULL) 24 | { 25 | } 26 | 27 | virtual int serialize(unsigned char *outbuffer) const 28 | { 29 | int offset = 0; 30 | offset += this->layout.serialize(outbuffer + offset); 31 | *(outbuffer + offset++) = data_length; 32 | *(outbuffer + offset++) = 0; 33 | *(outbuffer + offset++) = 0; 34 | *(outbuffer + offset++) = 0; 35 | for( uint8_t i = 0; i < data_length; i++){ 36 | union { 37 | int8_t real; 38 | uint8_t base; 39 | } u_datai; 40 | u_datai.real = this->data[i]; 41 | *(outbuffer + offset + 0) = (u_datai.base >> (8 * 0)) & 0xFF; 42 | offset += sizeof(this->data[i]); 43 | } 44 | return offset; 45 | } 46 | 47 | virtual int deserialize(unsigned char *inbuffer) 48 | { 49 | int offset = 0; 50 | offset += this->layout.deserialize(inbuffer + offset); 51 | uint8_t data_lengthT = *(inbuffer + offset++); 52 | if(data_lengthT > data_length) 53 | this->data = (int8_t*)realloc(this->data, data_lengthT * sizeof(int8_t)); 54 | offset += 3; 55 | data_length = data_lengthT; 56 | for( uint8_t i = 0; i < data_length; i++){ 57 | union { 58 | int8_t real; 59 | uint8_t base; 60 | } u_st_data; 61 | u_st_data.base = 0; 62 | u_st_data.base |= ((uint8_t) (*(inbuffer + offset + 0))) << (8 * 0); 63 | this->st_data = u_st_data.real; 64 | offset += sizeof(this->st_data); 65 | memcpy( &(this->data[i]), &(this->st_data), sizeof(int8_t)); 66 | } 67 | return offset; 68 | } 69 | 70 | const char * getType(){ return "std_msgs/ByteMultiArray"; }; 71 | const char * getMD5(){ return "70ea476cbcfd65ac2f68f3cda1e891fe"; }; 72 | 73 | }; 74 | 75 | } 76 | #endif -------------------------------------------------------------------------------- /src/core/rcl/std_msgs/Char.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_std_msgs_Char_h 2 | #define _ROS_std_msgs_Char_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | 9 | namespace std_msgs 10 | { 11 | 12 | class Char : public ros::Msg 13 | { 14 | public: 15 | uint8_t data; 16 | 17 | Char(): 18 | data(0) 19 | { 20 | } 21 | 22 | virtual int serialize(unsigned char *outbuffer) const 23 | { 24 | int offset = 0; 25 | *(outbuffer + offset + 0) = (this->data >> (8 * 0)) & 0xFF; 26 | offset += sizeof(this->data); 27 | return offset; 28 | } 29 | 30 | virtual int deserialize(unsigned char *inbuffer) 31 | { 32 | int offset = 0; 33 | this->data = ((uint8_t) (*(inbuffer + offset))); 34 | offset += sizeof(this->data); 35 | return offset; 36 | } 37 | 38 | const char * getType(){ return "std_msgs/Char"; }; 39 | const char * getMD5(){ return "1bf77f25acecdedba0e224b162199717"; }; 40 | 41 | }; 42 | 43 | } 44 | #endif -------------------------------------------------------------------------------- /src/core/rcl/std_msgs/Duration.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_std_msgs_Duration_h 2 | #define _ROS_std_msgs_Duration_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "ros/duration.h" 9 | 10 | namespace std_msgs 11 | { 12 | 13 | class Duration : public ros::Msg 14 | { 15 | public: 16 | ros::Duration data; 17 | 18 | Duration(): 19 | data() 20 | { 21 | } 22 | 23 | virtual int serialize(unsigned char *outbuffer) const 24 | { 25 | int offset = 0; 26 | *(outbuffer + offset + 0) = (this->data.sec >> (8 * 0)) & 0xFF; 27 | *(outbuffer + offset + 1) = (this->data.sec >> (8 * 1)) & 0xFF; 28 | *(outbuffer + offset + 2) = (this->data.sec >> (8 * 2)) & 0xFF; 29 | *(outbuffer + offset + 3) = (this->data.sec >> (8 * 3)) & 0xFF; 30 | offset += sizeof(this->data.sec); 31 | *(outbuffer + offset + 0) = (this->data.nsec >> (8 * 0)) & 0xFF; 32 | *(outbuffer + offset + 1) = (this->data.nsec >> (8 * 1)) & 0xFF; 33 | *(outbuffer + offset + 2) = (this->data.nsec >> (8 * 2)) & 0xFF; 34 | *(outbuffer + offset + 3) = (this->data.nsec >> (8 * 3)) & 0xFF; 35 | offset += sizeof(this->data.nsec); 36 | return offset; 37 | } 38 | 39 | virtual int deserialize(unsigned char *inbuffer) 40 | { 41 | int offset = 0; 42 | this->data.sec = ((uint32_t) (*(inbuffer + offset))); 43 | this->data.sec |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); 44 | this->data.sec |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); 45 | this->data.sec |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); 46 | offset += sizeof(this->data.sec); 47 | this->data.nsec = ((uint32_t) (*(inbuffer + offset))); 48 | this->data.nsec |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); 49 | this->data.nsec |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); 50 | this->data.nsec |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); 51 | offset += sizeof(this->data.nsec); 52 | return offset; 53 | } 54 | 55 | const char * getType(){ return "std_msgs/Duration"; }; 56 | const char * getMD5(){ return "3e286caf4241d664e55f3ad380e2ae46"; }; 57 | 58 | }; 59 | 60 | } 61 | #endif -------------------------------------------------------------------------------- /src/core/rcl/std_msgs/Empty.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_std_msgs_Empty_h 2 | #define _ROS_std_msgs_Empty_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | 9 | namespace std_msgs 10 | { 11 | 12 | class Empty : public ros::Msg 13 | { 14 | public: 15 | 16 | Empty() 17 | { 18 | } 19 | 20 | virtual int serialize(unsigned char *outbuffer) const 21 | { 22 | int offset = 0; 23 | return offset; 24 | } 25 | 26 | virtual int deserialize(unsigned char *inbuffer) 27 | { 28 | int offset = 0; 29 | return offset; 30 | } 31 | 32 | const char * getType(){ return "std_msgs/Empty"; }; 33 | const char * getMD5(){ return "d41d8cd98f00b204e9800998ecf8427e"; }; 34 | 35 | }; 36 | 37 | } 38 | #endif -------------------------------------------------------------------------------- /src/core/rcl/std_msgs/Float32.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_std_msgs_Float32_h 2 | #define _ROS_std_msgs_Float32_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "msg.h" 8 | 9 | namespace std_msgs 10 | { 11 | 12 | class Float32 : public ros::Msg 13 | { 14 | public: 15 | float data; 16 | 17 | Float32(): 18 | data(0) 19 | { 20 | } 21 | 22 | virtual int serialize(unsigned char *outbuffer) const 23 | { 24 | int offset = 0; 25 | union { 26 | float real; 27 | uint32_t base; 28 | } u_data; 29 | u_data.real = this->data; 30 | *(outbuffer + offset + 0) = (u_data.base >> (8 * 0)) & 0xFF; 31 | *(outbuffer + offset + 1) = (u_data.base >> (8 * 1)) & 0xFF; 32 | *(outbuffer + offset + 2) = (u_data.base >> (8 * 2)) & 0xFF; 33 | *(outbuffer + offset + 3) = (u_data.base >> (8 * 3)) & 0xFF; 34 | offset += sizeof(this->data); 35 | return offset; 36 | } 37 | 38 | virtual int deserialize(unsigned char *inbuffer) 39 | { 40 | int offset = 0; 41 | union { 42 | float real; 43 | uint32_t base; 44 | } u_data; 45 | u_data.base = 0; 46 | u_data.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0); 47 | u_data.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); 48 | u_data.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); 49 | u_data.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); 50 | this->data = u_data.real; 51 | offset += sizeof(this->data); 52 | return offset; 53 | } 54 | 55 | const char * getType(){ return "std_msgs/Float32"; }; 56 | const char * getMD5(){ return "73fcbf46b49191e672908e50842a83d4"; }; 57 | 58 | }; 59 | 60 | } 61 | #endif 62 | -------------------------------------------------------------------------------- /src/core/rcl/std_msgs/Float64.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_std_msgs_Float64_h 2 | #define _ROS_std_msgs_Float64_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | 9 | namespace std_msgs 10 | { 11 | 12 | class Float64 : public ros::Msg 13 | { 14 | public: 15 | float data; 16 | 17 | Float64(): 18 | data(0) 19 | { 20 | } 21 | 22 | virtual int serialize(unsigned char *outbuffer) const 23 | { 24 | int offset = 0; 25 | offset += serializeAvrFloat64(outbuffer + offset, this->data); 26 | return offset; 27 | } 28 | 29 | virtual int deserialize(unsigned char *inbuffer) 30 | { 31 | int offset = 0; 32 | offset += deserializeAvrFloat64(inbuffer + offset, &(this->data)); 33 | return offset; 34 | } 35 | 36 | const char * getType(){ return "std_msgs/Float64"; }; 37 | const char * getMD5(){ return "fdb28210bfa9d7c91146260178d9a584"; }; 38 | 39 | }; 40 | 41 | } 42 | #endif -------------------------------------------------------------------------------- /src/core/rcl/std_msgs/Float64MultiArray.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_std_msgs_Float64MultiArray_h 2 | #define _ROS_std_msgs_Float64MultiArray_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "std_msgs/MultiArrayLayout.h" 9 | 10 | namespace std_msgs 11 | { 12 | 13 | class Float64MultiArray : public ros::Msg 14 | { 15 | public: 16 | std_msgs::MultiArrayLayout layout; 17 | uint8_t data_length; 18 | float st_data; 19 | float * data; 20 | 21 | Float64MultiArray(): 22 | layout(), 23 | data_length(0), data(NULL) 24 | { 25 | } 26 | 27 | virtual int serialize(unsigned char *outbuffer) const 28 | { 29 | int offset = 0; 30 | offset += this->layout.serialize(outbuffer + offset); 31 | *(outbuffer + offset++) = data_length; 32 | *(outbuffer + offset++) = 0; 33 | *(outbuffer + offset++) = 0; 34 | *(outbuffer + offset++) = 0; 35 | for( uint8_t i = 0; i < data_length; i++){ 36 | offset += serializeAvrFloat64(outbuffer + offset, this->data[i]); 37 | } 38 | return offset; 39 | } 40 | 41 | virtual int deserialize(unsigned char *inbuffer) 42 | { 43 | int offset = 0; 44 | offset += this->layout.deserialize(inbuffer + offset); 45 | uint8_t data_lengthT = *(inbuffer + offset++); 46 | if(data_lengthT > data_length) 47 | this->data = (float*)realloc(this->data, data_lengthT * sizeof(float)); 48 | offset += 3; 49 | data_length = data_lengthT; 50 | for( uint8_t i = 0; i < data_length; i++){ 51 | offset += deserializeAvrFloat64(inbuffer + offset, &(this->st_data)); 52 | memcpy( &(this->data[i]), &(this->st_data), sizeof(float)); 53 | } 54 | return offset; 55 | } 56 | 57 | const char * getType(){ return "std_msgs/Float64MultiArray"; }; 58 | const char * getMD5(){ return "4b7d974086d4060e7db4613a7e6c3ba4"; }; 59 | 60 | }; 61 | 62 | } 63 | #endif -------------------------------------------------------------------------------- /src/core/rcl/std_msgs/Int16.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_std_msgs_Int16_h 2 | #define _ROS_std_msgs_Int16_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | 9 | namespace std_msgs 10 | { 11 | 12 | class Int16 : public ros::Msg 13 | { 14 | public: 15 | int16_t data; 16 | 17 | Int16(): 18 | data(0) 19 | { 20 | } 21 | 22 | virtual int serialize(unsigned char *outbuffer) const 23 | { 24 | int offset = 0; 25 | union { 26 | int16_t real; 27 | uint16_t base; 28 | } u_data; 29 | u_data.real = this->data; 30 | *(outbuffer + offset + 0) = (u_data.base >> (8 * 0)) & 0xFF; 31 | *(outbuffer + offset + 1) = (u_data.base >> (8 * 1)) & 0xFF; 32 | offset += sizeof(this->data); 33 | return offset; 34 | } 35 | 36 | virtual int deserialize(unsigned char *inbuffer) 37 | { 38 | int offset = 0; 39 | union { 40 | int16_t real; 41 | uint16_t base; 42 | } u_data; 43 | u_data.base = 0; 44 | u_data.base |= ((uint16_t) (*(inbuffer + offset + 0))) << (8 * 0); 45 | u_data.base |= ((uint16_t) (*(inbuffer + offset + 1))) << (8 * 1); 46 | this->data = u_data.real; 47 | offset += sizeof(this->data); 48 | return offset; 49 | } 50 | 51 | const char * getType(){ return "std_msgs/Int16"; }; 52 | const char * getMD5(){ return "8524586e34fbd7cb1c08c5f5f1ca0e57"; }; 53 | 54 | }; 55 | 56 | } 57 | #endif -------------------------------------------------------------------------------- /src/core/rcl/std_msgs/Int16MultiArray.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_std_msgs_Int16MultiArray_h 2 | #define _ROS_std_msgs_Int16MultiArray_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "std_msgs/MultiArrayLayout.h" 9 | 10 | namespace std_msgs 11 | { 12 | 13 | class Int16MultiArray : public ros::Msg 14 | { 15 | public: 16 | std_msgs::MultiArrayLayout layout; 17 | uint8_t data_length; 18 | int16_t st_data; 19 | int16_t * data; 20 | 21 | Int16MultiArray(): 22 | layout(), 23 | data_length(0), data(NULL) 24 | { 25 | } 26 | 27 | virtual int serialize(unsigned char *outbuffer) const 28 | { 29 | int offset = 0; 30 | offset += this->layout.serialize(outbuffer + offset); 31 | *(outbuffer + offset++) = data_length; 32 | *(outbuffer + offset++) = 0; 33 | *(outbuffer + offset++) = 0; 34 | *(outbuffer + offset++) = 0; 35 | for( uint8_t i = 0; i < data_length; i++){ 36 | union { 37 | int16_t real; 38 | uint16_t base; 39 | } u_datai; 40 | u_datai.real = this->data[i]; 41 | *(outbuffer + offset + 0) = (u_datai.base >> (8 * 0)) & 0xFF; 42 | *(outbuffer + offset + 1) = (u_datai.base >> (8 * 1)) & 0xFF; 43 | offset += sizeof(this->data[i]); 44 | } 45 | return offset; 46 | } 47 | 48 | virtual int deserialize(unsigned char *inbuffer) 49 | { 50 | int offset = 0; 51 | offset += this->layout.deserialize(inbuffer + offset); 52 | uint8_t data_lengthT = *(inbuffer + offset++); 53 | if(data_lengthT > data_length) 54 | this->data = (int16_t*)realloc(this->data, data_lengthT * sizeof(int16_t)); 55 | offset += 3; 56 | data_length = data_lengthT; 57 | for( uint8_t i = 0; i < data_length; i++){ 58 | union { 59 | int16_t real; 60 | uint16_t base; 61 | } u_st_data; 62 | u_st_data.base = 0; 63 | u_st_data.base |= ((uint16_t) (*(inbuffer + offset + 0))) << (8 * 0); 64 | u_st_data.base |= ((uint16_t) (*(inbuffer + offset + 1))) << (8 * 1); 65 | this->st_data = u_st_data.real; 66 | offset += sizeof(this->st_data); 67 | memcpy( &(this->data[i]), &(this->st_data), sizeof(int16_t)); 68 | } 69 | return offset; 70 | } 71 | 72 | const char * getType(){ return "std_msgs/Int16MultiArray"; }; 73 | const char * getMD5(){ return "d9338d7f523fcb692fae9d0a0e9f067c"; }; 74 | 75 | }; 76 | 77 | } 78 | #endif -------------------------------------------------------------------------------- /src/core/rcl/std_msgs/Int32.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_std_msgs_Int32_h 2 | #define _ROS_std_msgs_Int32_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "msg.h" 8 | 9 | namespace std_msgs 10 | { 11 | 12 | class Int32 : public ros::Msg 13 | { 14 | public: 15 | int32_t data; 16 | 17 | Int32(): 18 | data(0) 19 | { 20 | } 21 | 22 | virtual int serialize(unsigned char *outbuffer) const 23 | { 24 | int offset = 0; 25 | union { 26 | int32_t real; 27 | uint32_t base; 28 | } u_data; 29 | u_data.real = this->data; 30 | *(outbuffer + offset + 0) = (u_data.base >> (8 * 0)) & 0xFF; 31 | *(outbuffer + offset + 1) = (u_data.base >> (8 * 1)) & 0xFF; 32 | *(outbuffer + offset + 2) = (u_data.base >> (8 * 2)) & 0xFF; 33 | *(outbuffer + offset + 3) = (u_data.base >> (8 * 3)) & 0xFF; 34 | offset += sizeof(this->data); 35 | return offset; 36 | } 37 | 38 | virtual int deserialize(unsigned char *inbuffer) 39 | { 40 | int offset = 0; 41 | union { 42 | int32_t real; 43 | uint32_t base; 44 | } u_data; 45 | u_data.base = 0; 46 | u_data.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0); 47 | u_data.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); 48 | u_data.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); 49 | u_data.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); 50 | this->data = u_data.real; 51 | offset += sizeof(this->data); 52 | return offset; 53 | } 54 | 55 | const char * getType(){ return "std_msgs/Int32"; }; 56 | const char * getMD5(){ return "da5909fbe378aeaf85e547e830cc1bb7"; }; 57 | 58 | }; 59 | 60 | } 61 | #endif 62 | -------------------------------------------------------------------------------- /src/core/rcl/std_msgs/Int64.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_std_msgs_Int64_h 2 | #define _ROS_std_msgs_Int64_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | 9 | namespace std_msgs 10 | { 11 | 12 | class Int64 : public ros::Msg 13 | { 14 | public: 15 | int64_t data; 16 | 17 | Int64(): 18 | data(0) 19 | { 20 | } 21 | 22 | virtual int serialize(unsigned char *outbuffer) const 23 | { 24 | int offset = 0; 25 | union { 26 | int64_t real; 27 | uint64_t base; 28 | } u_data; 29 | u_data.real = this->data; 30 | *(outbuffer + offset + 0) = (u_data.base >> (8 * 0)) & 0xFF; 31 | *(outbuffer + offset + 1) = (u_data.base >> (8 * 1)) & 0xFF; 32 | *(outbuffer + offset + 2) = (u_data.base >> (8 * 2)) & 0xFF; 33 | *(outbuffer + offset + 3) = (u_data.base >> (8 * 3)) & 0xFF; 34 | *(outbuffer + offset + 4) = (u_data.base >> (8 * 4)) & 0xFF; 35 | *(outbuffer + offset + 5) = (u_data.base >> (8 * 5)) & 0xFF; 36 | *(outbuffer + offset + 6) = (u_data.base >> (8 * 6)) & 0xFF; 37 | *(outbuffer + offset + 7) = (u_data.base >> (8 * 7)) & 0xFF; 38 | offset += sizeof(this->data); 39 | return offset; 40 | } 41 | 42 | virtual int deserialize(unsigned char *inbuffer) 43 | { 44 | int offset = 0; 45 | union { 46 | int64_t real; 47 | uint64_t base; 48 | } u_data; 49 | u_data.base = 0; 50 | u_data.base |= ((uint64_t) (*(inbuffer + offset + 0))) << (8 * 0); 51 | u_data.base |= ((uint64_t) (*(inbuffer + offset + 1))) << (8 * 1); 52 | u_data.base |= ((uint64_t) (*(inbuffer + offset + 2))) << (8 * 2); 53 | u_data.base |= ((uint64_t) (*(inbuffer + offset + 3))) << (8 * 3); 54 | u_data.base |= ((uint64_t) (*(inbuffer + offset + 4))) << (8 * 4); 55 | u_data.base |= ((uint64_t) (*(inbuffer + offset + 5))) << (8 * 5); 56 | u_data.base |= ((uint64_t) (*(inbuffer + offset + 6))) << (8 * 6); 57 | u_data.base |= ((uint64_t) (*(inbuffer + offset + 7))) << (8 * 7); 58 | this->data = u_data.real; 59 | offset += sizeof(this->data); 60 | return offset; 61 | } 62 | 63 | const char * getType(){ return "std_msgs/Int64"; }; 64 | const char * getMD5(){ return "34add168574510e6e17f5d23ecc077ef"; }; 65 | 66 | }; 67 | 68 | } 69 | #endif -------------------------------------------------------------------------------- /src/core/rcl/std_msgs/Int8.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_std_msgs_Int8_h 2 | #define _ROS_std_msgs_Int8_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | 9 | namespace std_msgs 10 | { 11 | 12 | class Int8 : public ros::Msg 13 | { 14 | public: 15 | int8_t data; 16 | 17 | Int8(): 18 | data(0) 19 | { 20 | } 21 | 22 | virtual int serialize(unsigned char *outbuffer) const 23 | { 24 | int offset = 0; 25 | union { 26 | int8_t real; 27 | uint8_t base; 28 | } u_data; 29 | u_data.real = this->data; 30 | *(outbuffer + offset + 0) = (u_data.base >> (8 * 0)) & 0xFF; 31 | offset += sizeof(this->data); 32 | return offset; 33 | } 34 | 35 | virtual int deserialize(unsigned char *inbuffer) 36 | { 37 | int offset = 0; 38 | union { 39 | int8_t real; 40 | uint8_t base; 41 | } u_data; 42 | u_data.base = 0; 43 | u_data.base |= ((uint8_t) (*(inbuffer + offset + 0))) << (8 * 0); 44 | this->data = u_data.real; 45 | offset += sizeof(this->data); 46 | return offset; 47 | } 48 | 49 | const char * getType(){ return "std_msgs/Int8"; }; 50 | const char * getMD5(){ return "27ffa0c9c4b8fb8492252bcad9e5c57b"; }; 51 | 52 | }; 53 | 54 | } 55 | #endif -------------------------------------------------------------------------------- /src/core/rcl/std_msgs/Int8MultiArray.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_std_msgs_Int8MultiArray_h 2 | #define _ROS_std_msgs_Int8MultiArray_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "std_msgs/MultiArrayLayout.h" 9 | 10 | namespace std_msgs 11 | { 12 | 13 | class Int8MultiArray : public ros::Msg 14 | { 15 | public: 16 | std_msgs::MultiArrayLayout layout; 17 | uint8_t data_length; 18 | int8_t st_data; 19 | int8_t * data; 20 | 21 | Int8MultiArray(): 22 | layout(), 23 | data_length(0), data(NULL) 24 | { 25 | } 26 | 27 | virtual int serialize(unsigned char *outbuffer) const 28 | { 29 | int offset = 0; 30 | offset += this->layout.serialize(outbuffer + offset); 31 | *(outbuffer + offset++) = data_length; 32 | *(outbuffer + offset++) = 0; 33 | *(outbuffer + offset++) = 0; 34 | *(outbuffer + offset++) = 0; 35 | for( uint8_t i = 0; i < data_length; i++){ 36 | union { 37 | int8_t real; 38 | uint8_t base; 39 | } u_datai; 40 | u_datai.real = this->data[i]; 41 | *(outbuffer + offset + 0) = (u_datai.base >> (8 * 0)) & 0xFF; 42 | offset += sizeof(this->data[i]); 43 | } 44 | return offset; 45 | } 46 | 47 | virtual int deserialize(unsigned char *inbuffer) 48 | { 49 | int offset = 0; 50 | offset += this->layout.deserialize(inbuffer + offset); 51 | uint8_t data_lengthT = *(inbuffer + offset++); 52 | if(data_lengthT > data_length) 53 | this->data = (int8_t*)realloc(this->data, data_lengthT * sizeof(int8_t)); 54 | offset += 3; 55 | data_length = data_lengthT; 56 | for( uint8_t i = 0; i < data_length; i++){ 57 | union { 58 | int8_t real; 59 | uint8_t base; 60 | } u_st_data; 61 | u_st_data.base = 0; 62 | u_st_data.base |= ((uint8_t) (*(inbuffer + offset + 0))) << (8 * 0); 63 | this->st_data = u_st_data.real; 64 | offset += sizeof(this->st_data); 65 | memcpy( &(this->data[i]), &(this->st_data), sizeof(int8_t)); 66 | } 67 | return offset; 68 | } 69 | 70 | const char * getType(){ return "std_msgs/Int8MultiArray"; }; 71 | const char * getMD5(){ return "d7c1af35a1b4781bbe79e03dd94b7c13"; }; 72 | 73 | }; 74 | 75 | } 76 | #endif -------------------------------------------------------------------------------- /src/core/rcl/std_msgs/String.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_std_msgs_String_h 2 | #define _ROS_std_msgs_String_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "msg.h" 8 | 9 | namespace std_msgs 10 | { 11 | 12 | class String : public ros::Msg 13 | { 14 | public: 15 | const char* data; 16 | 17 | String(): 18 | data("") 19 | { 20 | } 21 | 22 | virtual int serialize(unsigned char *outbuffer) const 23 | { 24 | int offset = 0; 25 | uint32_t length_data = strlen(this->data); 26 | memcpy(outbuffer + offset, &length_data, sizeof(uint32_t)); 27 | offset += 4; 28 | memcpy(outbuffer + offset, this->data, length_data); 29 | offset += length_data; 30 | return offset; 31 | } 32 | 33 | virtual int deserialize(unsigned char *inbuffer) 34 | { 35 | int offset = 0; 36 | uint32_t length_data; 37 | memcpy(&length_data, (inbuffer + offset), sizeof(uint32_t)); 38 | offset += 4; 39 | for(unsigned int k= offset; k< offset+length_data; ++k){ 40 | inbuffer[k-1]=inbuffer[k]; 41 | } 42 | inbuffer[offset+length_data-1]=0; 43 | this->data = (char *)(inbuffer + offset-1); 44 | offset += length_data; 45 | return offset; 46 | } 47 | 48 | const char * getType(){ return "std_msgs/String"; }; 49 | const char * getMD5(){ return "992ce8a1687cec8c8bd883ec73ca41d1"; }; 50 | 51 | }; 52 | 53 | } 54 | #endif 55 | -------------------------------------------------------------------------------- /src/core/rcl/std_msgs/Time.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_std_msgs_Time_h 2 | #define _ROS_std_msgs_Time_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "ros/time.h" 9 | 10 | namespace std_msgs 11 | { 12 | 13 | class Time : public ros::Msg 14 | { 15 | public: 16 | ros::Time data; 17 | 18 | Time(): 19 | data() 20 | { 21 | } 22 | 23 | virtual int serialize(unsigned char *outbuffer) const 24 | { 25 | int offset = 0; 26 | *(outbuffer + offset + 0) = (this->data.sec >> (8 * 0)) & 0xFF; 27 | *(outbuffer + offset + 1) = (this->data.sec >> (8 * 1)) & 0xFF; 28 | *(outbuffer + offset + 2) = (this->data.sec >> (8 * 2)) & 0xFF; 29 | *(outbuffer + offset + 3) = (this->data.sec >> (8 * 3)) & 0xFF; 30 | offset += sizeof(this->data.sec); 31 | *(outbuffer + offset + 0) = (this->data.nsec >> (8 * 0)) & 0xFF; 32 | *(outbuffer + offset + 1) = (this->data.nsec >> (8 * 1)) & 0xFF; 33 | *(outbuffer + offset + 2) = (this->data.nsec >> (8 * 2)) & 0xFF; 34 | *(outbuffer + offset + 3) = (this->data.nsec >> (8 * 3)) & 0xFF; 35 | offset += sizeof(this->data.nsec); 36 | return offset; 37 | } 38 | 39 | virtual int deserialize(unsigned char *inbuffer) 40 | { 41 | int offset = 0; 42 | this->data.sec = ((uint32_t) (*(inbuffer + offset))); 43 | this->data.sec |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); 44 | this->data.sec |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); 45 | this->data.sec |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); 46 | offset += sizeof(this->data.sec); 47 | this->data.nsec = ((uint32_t) (*(inbuffer + offset))); 48 | this->data.nsec |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); 49 | this->data.nsec |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); 50 | this->data.nsec |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); 51 | offset += sizeof(this->data.nsec); 52 | return offset; 53 | } 54 | 55 | const char * getType(){ return "std_msgs/Time"; }; 56 | const char * getMD5(){ return "cd7166c74c552c311fbcc2fe5a7bc289"; }; 57 | 58 | }; 59 | 60 | } 61 | #endif -------------------------------------------------------------------------------- /src/core/rcl/std_msgs/UInt16.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_std_msgs_UInt16_h 2 | #define _ROS_std_msgs_UInt16_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | 9 | namespace std_msgs 10 | { 11 | 12 | class UInt16 : public ros::Msg 13 | { 14 | public: 15 | uint16_t data; 16 | 17 | UInt16(): 18 | data(0) 19 | { 20 | } 21 | 22 | virtual int serialize(unsigned char *outbuffer) const 23 | { 24 | int offset = 0; 25 | *(outbuffer + offset + 0) = (this->data >> (8 * 0)) & 0xFF; 26 | *(outbuffer + offset + 1) = (this->data >> (8 * 1)) & 0xFF; 27 | offset += sizeof(this->data); 28 | return offset; 29 | } 30 | 31 | virtual int deserialize(unsigned char *inbuffer) 32 | { 33 | int offset = 0; 34 | this->data = ((uint16_t) (*(inbuffer + offset))); 35 | this->data |= ((uint16_t) (*(inbuffer + offset + 1))) << (8 * 1); 36 | offset += sizeof(this->data); 37 | return offset; 38 | } 39 | 40 | const char * getType(){ return "std_msgs/UInt16"; }; 41 | const char * getMD5(){ return "1df79edf208b629fe6b81923a544552d"; }; 42 | 43 | }; 44 | 45 | } 46 | #endif -------------------------------------------------------------------------------- /src/core/rcl/std_msgs/UInt16MultiArray.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_std_msgs_UInt16MultiArray_h 2 | #define _ROS_std_msgs_UInt16MultiArray_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "std_msgs/MultiArrayLayout.h" 9 | 10 | namespace std_msgs 11 | { 12 | 13 | class UInt16MultiArray : public ros::Msg 14 | { 15 | public: 16 | std_msgs::MultiArrayLayout layout; 17 | uint8_t data_length; 18 | uint16_t st_data; 19 | uint16_t * data; 20 | 21 | UInt16MultiArray(): 22 | layout(), 23 | data_length(0), data(NULL) 24 | { 25 | } 26 | 27 | virtual int serialize(unsigned char *outbuffer) const 28 | { 29 | int offset = 0; 30 | offset += this->layout.serialize(outbuffer + offset); 31 | *(outbuffer + offset++) = data_length; 32 | *(outbuffer + offset++) = 0; 33 | *(outbuffer + offset++) = 0; 34 | *(outbuffer + offset++) = 0; 35 | for( uint8_t i = 0; i < data_length; i++){ 36 | *(outbuffer + offset + 0) = (this->data[i] >> (8 * 0)) & 0xFF; 37 | *(outbuffer + offset + 1) = (this->data[i] >> (8 * 1)) & 0xFF; 38 | offset += sizeof(this->data[i]); 39 | } 40 | return offset; 41 | } 42 | 43 | virtual int deserialize(unsigned char *inbuffer) 44 | { 45 | int offset = 0; 46 | offset += this->layout.deserialize(inbuffer + offset); 47 | uint8_t data_lengthT = *(inbuffer + offset++); 48 | if(data_lengthT > data_length) 49 | this->data = (uint16_t*)realloc(this->data, data_lengthT * sizeof(uint16_t)); 50 | offset += 3; 51 | data_length = data_lengthT; 52 | for( uint8_t i = 0; i < data_length; i++){ 53 | this->st_data = ((uint16_t) (*(inbuffer + offset))); 54 | this->st_data |= ((uint16_t) (*(inbuffer + offset + 1))) << (8 * 1); 55 | offset += sizeof(this->st_data); 56 | memcpy( &(this->data[i]), &(this->st_data), sizeof(uint16_t)); 57 | } 58 | return offset; 59 | } 60 | 61 | const char * getType(){ return "std_msgs/UInt16MultiArray"; }; 62 | const char * getMD5(){ return "52f264f1c973c4b73790d384c6cb4484"; }; 63 | 64 | }; 65 | 66 | } 67 | #endif -------------------------------------------------------------------------------- /src/core/rcl/std_msgs/UInt32.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_std_msgs_UInt32_h 2 | #define _ROS_std_msgs_UInt32_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | 9 | namespace std_msgs 10 | { 11 | 12 | class UInt32 : public ros::Msg 13 | { 14 | public: 15 | uint32_t data; 16 | 17 | UInt32(): 18 | data(0) 19 | { 20 | } 21 | 22 | virtual int serialize(unsigned char *outbuffer) const 23 | { 24 | int offset = 0; 25 | *(outbuffer + offset + 0) = (this->data >> (8 * 0)) & 0xFF; 26 | *(outbuffer + offset + 1) = (this->data >> (8 * 1)) & 0xFF; 27 | *(outbuffer + offset + 2) = (this->data >> (8 * 2)) & 0xFF; 28 | *(outbuffer + offset + 3) = (this->data >> (8 * 3)) & 0xFF; 29 | offset += sizeof(this->data); 30 | return offset; 31 | } 32 | 33 | virtual int deserialize(unsigned char *inbuffer) 34 | { 35 | int offset = 0; 36 | this->data = ((uint32_t) (*(inbuffer + offset))); 37 | this->data |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); 38 | this->data |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); 39 | this->data |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); 40 | offset += sizeof(this->data); 41 | return offset; 42 | } 43 | 44 | const char * getType(){ return "std_msgs/UInt32"; }; 45 | const char * getMD5(){ return "304a39449588c7f8ce2df6e8001c5fce"; }; 46 | 47 | }; 48 | 49 | } 50 | #endif -------------------------------------------------------------------------------- /src/core/rcl/std_msgs/UInt32MultiArray.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_std_msgs_UInt32MultiArray_h 2 | #define _ROS_std_msgs_UInt32MultiArray_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "std_msgs/MultiArrayLayout.h" 9 | 10 | namespace std_msgs 11 | { 12 | 13 | class UInt32MultiArray : public ros::Msg 14 | { 15 | public: 16 | std_msgs::MultiArrayLayout layout; 17 | uint8_t data_length; 18 | uint32_t st_data; 19 | uint32_t * data; 20 | 21 | UInt32MultiArray(): 22 | layout(), 23 | data_length(0), data(NULL) 24 | { 25 | } 26 | 27 | virtual int serialize(unsigned char *outbuffer) const 28 | { 29 | int offset = 0; 30 | offset += this->layout.serialize(outbuffer + offset); 31 | *(outbuffer + offset++) = data_length; 32 | *(outbuffer + offset++) = 0; 33 | *(outbuffer + offset++) = 0; 34 | *(outbuffer + offset++) = 0; 35 | for( uint8_t i = 0; i < data_length; i++){ 36 | *(outbuffer + offset + 0) = (this->data[i] >> (8 * 0)) & 0xFF; 37 | *(outbuffer + offset + 1) = (this->data[i] >> (8 * 1)) & 0xFF; 38 | *(outbuffer + offset + 2) = (this->data[i] >> (8 * 2)) & 0xFF; 39 | *(outbuffer + offset + 3) = (this->data[i] >> (8 * 3)) & 0xFF; 40 | offset += sizeof(this->data[i]); 41 | } 42 | return offset; 43 | } 44 | 45 | virtual int deserialize(unsigned char *inbuffer) 46 | { 47 | int offset = 0; 48 | offset += this->layout.deserialize(inbuffer + offset); 49 | uint8_t data_lengthT = *(inbuffer + offset++); 50 | if(data_lengthT > data_length) 51 | this->data = (uint32_t*)realloc(this->data, data_lengthT * sizeof(uint32_t)); 52 | offset += 3; 53 | data_length = data_lengthT; 54 | for( uint8_t i = 0; i < data_length; i++){ 55 | this->st_data = ((uint32_t) (*(inbuffer + offset))); 56 | this->st_data |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); 57 | this->st_data |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); 58 | this->st_data |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); 59 | offset += sizeof(this->st_data); 60 | memcpy( &(this->data[i]), &(this->st_data), sizeof(uint32_t)); 61 | } 62 | return offset; 63 | } 64 | 65 | const char * getType(){ return "std_msgs/UInt32MultiArray"; }; 66 | const char * getMD5(){ return "4d6a180abc9be191b96a7eda6c8a233d"; }; 67 | 68 | }; 69 | 70 | } 71 | #endif -------------------------------------------------------------------------------- /src/core/rcl/std_msgs/UInt64.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_std_msgs_UInt64_h 2 | #define _ROS_std_msgs_UInt64_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | 9 | namespace std_msgs 10 | { 11 | 12 | class UInt64 : public ros::Msg 13 | { 14 | public: 15 | uint64_t data; 16 | 17 | UInt64(): 18 | data(0) 19 | { 20 | } 21 | 22 | virtual int serialize(unsigned char *outbuffer) const 23 | { 24 | int offset = 0; 25 | union { 26 | uint64_t real; 27 | uint32_t base; 28 | } u_data; 29 | u_data.real = this->data; 30 | *(outbuffer + offset + 0) = (u_data.base >> (8 * 0)) & 0xFF; 31 | *(outbuffer + offset + 1) = (u_data.base >> (8 * 1)) & 0xFF; 32 | *(outbuffer + offset + 2) = (u_data.base >> (8 * 2)) & 0xFF; 33 | *(outbuffer + offset + 3) = (u_data.base >> (8 * 3)) & 0xFF; 34 | offset += sizeof(this->data); 35 | return offset; 36 | } 37 | 38 | virtual int deserialize(unsigned char *inbuffer) 39 | { 40 | int offset = 0; 41 | union { 42 | uint64_t real; 43 | uint32_t base; 44 | } u_data; 45 | u_data.base = 0; 46 | u_data.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0); 47 | u_data.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); 48 | u_data.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); 49 | u_data.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); 50 | this->data = u_data.real; 51 | offset += sizeof(this->data); 52 | return offset; 53 | } 54 | 55 | const char * getType(){ return "std_msgs/UInt64"; }; 56 | const char * getMD5(){ return "1b2a79973e8bf53d7b53acb71299cb57"; }; 57 | 58 | }; 59 | 60 | } 61 | #endif -------------------------------------------------------------------------------- /src/core/rcl/std_msgs/UInt8.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_std_msgs_UInt8_h 2 | #define _ROS_std_msgs_UInt8_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | 9 | namespace std_msgs 10 | { 11 | 12 | class UInt8 : public ros::Msg 13 | { 14 | public: 15 | uint8_t data; 16 | 17 | UInt8(): 18 | data(0) 19 | { 20 | } 21 | 22 | virtual int serialize(unsigned char *outbuffer) const 23 | { 24 | int offset = 0; 25 | *(outbuffer + offset + 0) = (this->data >> (8 * 0)) & 0xFF; 26 | offset += sizeof(this->data); 27 | return offset; 28 | } 29 | 30 | virtual int deserialize(unsigned char *inbuffer) 31 | { 32 | int offset = 0; 33 | this->data = ((uint8_t) (*(inbuffer + offset))); 34 | offset += sizeof(this->data); 35 | return offset; 36 | } 37 | 38 | const char * getType(){ return "std_msgs/UInt8"; }; 39 | const char * getMD5(){ return "7c8164229e7d2c17eb95e9231617fdee"; }; 40 | 41 | }; 42 | 43 | } 44 | #endif -------------------------------------------------------------------------------- /src/core/rcl/std_msgs/UInt8MultiArray.h: -------------------------------------------------------------------------------- 1 | #ifndef _ROS_std_msgs_UInt8MultiArray_h 2 | #define _ROS_std_msgs_UInt8MultiArray_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include "ros/msg.h" 8 | #include "std_msgs/MultiArrayLayout.h" 9 | 10 | namespace std_msgs 11 | { 12 | 13 | class UInt8MultiArray : public ros::Msg 14 | { 15 | public: 16 | std_msgs::MultiArrayLayout layout; 17 | uint8_t data_length; 18 | uint8_t st_data; 19 | uint8_t * data; 20 | 21 | UInt8MultiArray(): 22 | layout(), 23 | data_length(0), data(NULL) 24 | { 25 | } 26 | 27 | virtual int serialize(unsigned char *outbuffer) const 28 | { 29 | int offset = 0; 30 | offset += this->layout.serialize(outbuffer + offset); 31 | *(outbuffer + offset++) = data_length; 32 | *(outbuffer + offset++) = 0; 33 | *(outbuffer + offset++) = 0; 34 | *(outbuffer + offset++) = 0; 35 | for( uint8_t i = 0; i < data_length; i++){ 36 | *(outbuffer + offset + 0) = (this->data[i] >> (8 * 0)) & 0xFF; 37 | offset += sizeof(this->data[i]); 38 | } 39 | return offset; 40 | } 41 | 42 | virtual int deserialize(unsigned char *inbuffer) 43 | { 44 | int offset = 0; 45 | offset += this->layout.deserialize(inbuffer + offset); 46 | uint8_t data_lengthT = *(inbuffer + offset++); 47 | if(data_lengthT > data_length) 48 | this->data = (uint8_t*)realloc(this->data, data_lengthT * sizeof(uint8_t)); 49 | offset += 3; 50 | data_length = data_lengthT; 51 | for( uint8_t i = 0; i < data_length; i++){ 52 | this->st_data = ((uint8_t) (*(inbuffer + offset))); 53 | offset += sizeof(this->st_data); 54 | memcpy( &(this->data[i]), &(this->st_data), sizeof(uint8_t)); 55 | } 56 | return offset; 57 | } 58 | 59 | const char * getType(){ return "std_msgs/UInt8MultiArray"; }; 60 | const char * getMD5(){ return "82373f1612381bb6ee473b5cd6f5d89c"; }; 61 | 62 | }; 63 | 64 | } 65 | #endif -------------------------------------------------------------------------------- /src/core/rmw/TopicReader.h: -------------------------------------------------------------------------------- 1 | #ifndef RMW_TOPICREADER_H_ 2 | #define RMW_TOPICREADER_H_ 3 | #define MAX_TOPIC_LEN 48 4 | 5 | #include "FreeRTOS.h" 6 | #include "task.h" 7 | #include "semphr.h" 8 | 9 | class TopicReader 10 | { 11 | char topic[MAX_TOPIC_LEN]; 12 | char callerID[MAX_TOPIC_LEN]; 13 | char md5sum[MAX_TOPIC_LEN]; 14 | char msgType[MAX_TOPIC_LEN]; 15 | uint32_t connectionID; 16 | xQueueHandle qHandle; 17 | 18 | static void onResponse(const void* obj, const char* data); 19 | 20 | 21 | static void connectPublishers(const void* obj, const char* data); 22 | static const int RX_QUEUE_MSG_SIZE = 128; 23 | static const int MAX_CALLBACKS = 5; 24 | 25 | void(*callbacks[MAX_CALLBACKS])(void* data, void* obj); 26 | void* objects[MAX_CALLBACKS]; 27 | 28 | 29 | public: 30 | TopicReader(const char* callerID, const char* topic, const char* md5sum, const char* msgType); 31 | void addCallback(void(*callback)(void* data, void* obj), void* obj); 32 | static void task(void* arg); 33 | const char* getTopic(); 34 | void requestTopic(const char* ip, uint16_t serverPort); 35 | uint32_t getConnectionID(); 36 | void enqueueMessage(const char* msg); 37 | void dequeueMessage(char* msg); 38 | }; 39 | 40 | 41 | #endif /* RMW_TOPICREADER_H_ */ 42 | -------------------------------------------------------------------------------- /src/core/rmw/XMLRPCServer.h: -------------------------------------------------------------------------------- 1 | #ifndef RMW_XMLRPCSERVER_H_ 2 | #define RMW_XMLRPCSERVER_H_ 3 | 4 | #include "TopicWriter.h" 5 | #include "TopicReader.h" 6 | 7 | class XMLRPCServer 8 | { 9 | private: 10 | static bool isUDPReceiveTaskCreated; 11 | 12 | public: 13 | static void UDPSend(void* params); 14 | static TopicWriter* getTopicWriter(const uint16_t port); 15 | static TopicWriter* getTopicWriter(const char* topic); 16 | static TopicReader* getTopicReader(const char* topic); 17 | static TopicReader* getTopicReader(const uint32_t connectionID); 18 | static void XMLRPCServerReceiveCallback(const char* data, char* buffer); 19 | static void start(); 20 | static TopicWriter* registerPublisher(const char* callerID, const char* topic, const char* msgType); 21 | static TopicReader* registerSubscriber(const char* callerID, const char* topic, const char* md5sum, const char* msgType); 22 | static void UDPreceive(void* params); 23 | 24 | static void sendRequest(const char* data, uint16_t port, void(*receiveCallback)(const void* obj, const char* data) = NULL, void* obj = NULL); 25 | static void extractURI(const char* uri, char* ip, uint16_t* port); 26 | }; 27 | 28 | #endif /* RMW_XMLRPCSERVER_H_ */ 29 | -------------------------------------------------------------------------------- /src/core/rmw/XMLRequest.cpp: -------------------------------------------------------------------------------- 1 | #include "XMLRequest.h" 2 | -------------------------------------------------------------------------------- /src/device/HCSR04Sensor/HCSR04.h: -------------------------------------------------------------------------------- 1 | #ifndef APPS_LIBS_HCSR04SENSOR_HCSR04_H_ 2 | #define APPS_LIBS_HCSR04SENSOR_HCSR04_H_ 3 | 4 | #include "stdint.h" 5 | #define NO_ECHO -1 6 | class HCSR04 7 | { 8 | public: 9 | static void init(void); 10 | static float pingMedian(uint8_t it); 11 | static float ping(); 12 | 13 | }; 14 | 15 | #endif /* APPS_LIBS_HCSR04SENSOR_HCSR04_H_ */ 16 | -------------------------------------------------------------------------------- /src/device/I2C/i2c.h: -------------------------------------------------------------------------------- 1 | #include "stdint.h" 2 | 3 | class I2C { 4 | public: 5 | static void init(uint8_t SCL_pin, uint8_t SDA_pin); 6 | static void writeByteToRegister(uint8_t slaveAddress, uint8_t reg, uint8_t byte); 7 | static uint8_t readByteFromRegister(uint8_t slaveAddress, uint8_t reg); 8 | static uint16_t readWordFromRegisters(uint8_t slaveAddress, uint8_t reg1, uint8_t reg2); 9 | static void readBytes(uint8_t slaveAddress, uint8_t startReg, uint16_t count, uint8_t* bytes); 10 | }; 11 | -------------------------------------------------------------------------------- /src/device/MPU6050/MPU6050.h: -------------------------------------------------------------------------------- 1 | class MPU6050 { 2 | public: 3 | typedef struct imu 4 | { 5 | float x_accel; 6 | float y_accel; 7 | float z_accel; 8 | float x_gyro; 9 | float y_gyro; 10 | float z_gyro; 11 | } IMU; 12 | 13 | 14 | static void init(); 15 | static void readIMU(IMU* data); 16 | private: 17 | static void calibrateSensor(); 18 | }; 19 | -------------------------------------------------------------------------------- /src/device/PID/PID.cpp: -------------------------------------------------------------------------------- 1 | #include "PID.h" 2 | 3 | PID::PID(float p, float i, float d) 4 | { 5 | kp = p; 6 | ki = i; 7 | kd = d; 8 | } 9 | 10 | void PID::compute(float Setpoint, float Input, float* Output) 11 | { 12 | static float errSum = 0.0f; 13 | static float lastErr = 0.0f; 14 | 15 | /*Compute all the working error variables*/ 16 | float error = Setpoint - Input; 17 | errSum += error; 18 | float dErr = (error - lastErr); 19 | 20 | /*Compute PID Output*/ 21 | *Output = kp * error + ki * errSum + kd * dErr; 22 | 23 | // TODO: Threshold of output required?? 24 | 25 | /*Remember some variables for next time*/ 26 | lastErr = error; 27 | } 28 | -------------------------------------------------------------------------------- /src/device/PID/PID.h: -------------------------------------------------------------------------------- 1 | class PID { 2 | public: 3 | PID(float p, float i, float d); 4 | void compute(float Setpoint, float Input, float* Output); 5 | 6 | private: 7 | float kp, ki, kd; 8 | }; 9 | -------------------------------------------------------------------------------- /src/device_config.h: -------------------------------------------------------------------------------- 1 | #ifndef DEVICE_CONFIG_H 2 | #define DEVICE_CONFIG_H 3 | 4 | /* MACROS TO TURN IP INTS INTO STRING */ 5 | #define XSTR(s) #s 6 | #define STR(s) XSTR(s) 7 | 8 | /* MAC ADDRESS*/ 9 | #define MAC_ADDR0 02 10 | #define MAC_ADDR1 00 11 | #define MAC_ADDR2 00 12 | #define MAC_ADDR3 00 13 | #define MAC_ADDR4 00 14 | #define MAC_ADDR5 00 15 | 16 | /* STATIC IP ADDRESS*/ 17 | #define IP_ADDR0 192 18 | #define IP_ADDR1 168 19 | #define IP_ADDR2 1 20 | #define IP_ADDR3 99 21 | 22 | /* NETMASK */ 23 | #define NETMASK_ADDR0 255 24 | #define NETMASK_ADDR1 255 25 | #define NETMASK_ADDR2 255 26 | #define NETMASK_ADDR3 0 27 | 28 | /* GATEWAY ADDRESS */ 29 | #define GW_ADDR0 192 30 | #define GW_ADDR1 168 31 | #define GW_ADDR2 1 32 | #define GW_ADDR3 100 33 | 34 | 35 | /* ROS NODE IDENTIFIER FOR THIS DEVICE */ 36 | #define ROS_NODE_UNIQUE_ID "D32" 37 | 38 | /* ADDRESS OF ROS MASTER (ROSCORE) */ 39 | #define ROS_MASTER_IP_ADDR0 192 40 | #define ROS_MASTER_IP_ADDR1 168 41 | #define ROS_MASTER_IP_ADDR2 1 42 | #define ROS_MASTER_IP_ADDR3 100 43 | #define SERVER_PORT_NUM 11311 44 | 45 | /* ADDRESS OF REMOTE LOG DEVICE */ 46 | #define LOG_LOCAL_PORT 32005 47 | #define LOG_REMOTE_PORT 32006 48 | #define LOG_REMOTE_IP "192.168.1.100" 49 | 50 | #define IP_ADDR STR(IP_ADDR0)"."\ 51 | STR(IP_ADDR1)"."\ 52 | STR(IP_ADDR2)"."\ 53 | STR(IP_ADDR3) 54 | #define ROS_MASTER_IP STR(ROS_MASTER_IP_ADDR0)"."\ 55 | STR(ROS_MASTER_IP_ADDR1)"."\ 56 | STR(ROS_MASTER_IP_ADDR2)"."\ 57 | STR(ROS_MASTER_IP_ADDR3) 58 | 59 | #endif 60 | 61 | -------------------------------------------------------------------------------- /src/main/Queue.cpp: -------------------------------------------------------------------------------- 1 | #include "Queue.h" 2 | 3 | xSemaphoreHandle Queue::queueMutex = 0; 4 | -------------------------------------------------------------------------------- /src/main/Queue.h: -------------------------------------------------------------------------------- 1 | #ifndef QUEUE_H_ 2 | #define QUEUE_H_ 3 | 4 | #include "FreeRTOS.h" 5 | #include "task.h" 6 | #include "timers.h" 7 | #include "semphr.h" 8 | #include "string.h" 9 | 10 | #define DEFAULT_QUEUE_TIMEOUT 60000 11 | 12 | 13 | 14 | class Queue 15 | { 16 | public: 17 | Queue(uint16_t queueLength, uint16_t messageSize) 18 | { 19 | this->messageSize = messageSize; 20 | queue = xQueueCreate(queueLength, messageSize); 21 | 22 | if (queueMutex == NULL) { 23 | vSemaphoreCreateBinary(queueMutex); 24 | xSemaphoreGive(queueMutex); 25 | } 26 | } 27 | void enqueue(void* item) 28 | { 29 | // TODO: Does item need to be copied? 30 | // Initialize memory (in stack) for message. 31 | unsigned char data[messageSize]; 32 | // Copy message into the previously initialized memory. 33 | memcpy(data, item, messageSize); 34 | 35 | if (xQueueSend(queue, data, 0)) { 36 | 37 | } else { // If queue is full, dequeue one item and then enqueue. TODO: Is this a thread-safe operation? Is mutex required? 38 | // mutex lock 39 | while (!xSemaphoreTake(queueMutex, 20)); 40 | xQueueReceive(queue, data, 0); 41 | enqueue(item); 42 | // mutex unlock 43 | xSemaphoreGive(queueMutex); 44 | 45 | } 46 | } 47 | void dequeue(void* msg) 48 | { 49 | if (xQueueReceive(queue, msg, DEFAULT_QUEUE_TIMEOUT)) { 50 | 51 | } else { // If queue is empty, wait forever 52 | dequeue(msg); 53 | } 54 | } 55 | private: 56 | xQueueHandle queue; 57 | uint16_t messageSize; 58 | static xSemaphoreHandle queueMutex; 59 | }; 60 | 61 | 62 | 63 | #endif // QUEUE_H_ 64 | -------------------------------------------------------------------------------- /src/main/USARTHandler.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include // I recommend you have a look at these in the ST firmware folder 3 | void Delay(__IO uint32_t nCount); 4 | /* This funcion initializes the USART1 peripheral 5 | * 6 | * Arguments: baudrate --> the baudrate at which the USART is 7 | * supposed to operate 8 | */ 9 | void init_USART1(uint32_t baudrate); 10 | 11 | /* This function is used to transmit a string of characters via 12 | * the USART specified in USARTx. 13 | * 14 | * It takes two arguments: USARTx --> can be any of the USARTs e.g. USART1, USART2 etc. 15 | * (volatile) char *s is the string you want to send 16 | * 17 | * Note: The string has to be passed to the function as a pointer because 18 | * the compiler doesn't know the 'string' data type. In standard 19 | * C a string is just an array of characters 20 | * 21 | * Note 2: At the moment it takes a volatile char because the received_string variable 22 | * declared as volatile char --> otherwise the compiler will spit out warnings 23 | * */ 24 | void USART_puts(USART_TypeDef* USARTx, volatile char *s); 25 | 26 | // this is the interrupt request handler (IRQ) for ALL USART1 interrupts 27 | void USART1_IRQHandler(void); 28 | -------------------------------------------------------------------------------- /src/main/ros.h: -------------------------------------------------------------------------------- 1 | #ifndef ASW_OS_ROS_H_ 2 | #define ASW_OS_ROS_H_ 3 | /* includes of RTOS */ 4 | #include "FreeRTOS.h" 5 | #include "task.h" 6 | #include "timers.h" 7 | #include "semphr.h" 8 | 9 | void os_printf(const char* fmt, ...); 10 | void* os_malloc(unsigned int size); 11 | 12 | 13 | #endif /* ASW_OS_ROS_H_ */ 14 | -------------------------------------------------------------------------------- /tutorials/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | rosembedded_tutorials 4 | 0.0.0 5 | The rosembedded_tutorials package 6 | 7 | 8 | 9 | 10 | Yigit Gunay 11 | 12 | 13 | 14 | 15 | 16 | TODO 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | catkin 43 | roscpp 44 | rospy 45 | std_msgs 46 | message_generation 47 | roscpp 48 | rospy 49 | std_msgs 50 | message_runtime 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | --------------------------------------------------------------------------------