Android各代码层获取系统时间的方法 获取链接 Facebook X Pinterest 电子邮件 其他应用 八月 07, 2017 在Android系统里,各代码层如何去获取系统时间呢?可分别调用如下函数来获取: 在java层,可以使用方法:long now = SystemClock.uptimeMillis(); 在native层,可以使用方法:nsecs_t now = systemTime(SYSTEM_TIME_MONOTONIC); 在驱动层,可以使用方法:s64 time = ktime_to_us(ktime_get()); 获取链接 Facebook X Pinterest 电子邮件 其他应用 评论
【ROS学习-11】用C++编写一个简单的服务端和客户端 九月 24, 2017 1. 首先执行 roscd beginner_tutorials 命令,然后创建 src/add_two_ints_server.cpp 服务端源码,内容如下: #include "ros/ros.h" #include "beginner_tutorials/AddTwoInts.h" bool add(beginner_tutorials::AddTwoInts::Request &req, beginner_tutorials::AddTwoInts::Response &res) { res.sum = req.a + req.b; ROS_INFO("request: x=%ld, y=%ld", (long int)req.a, (long int)req.b); ROS_INFO("sending back response: [%ld]", (long int)res.sum); return true; } int main(int argc, char **argv) { ros::init(argc, argv, "add_two_ints_server"); ros::NodeHandle n; ros::ServiceServer service = n.advertiseService("add_two_ints", add); ROS_INFO("Ready to add two ints."); ros::spin(); return 0; ... 阅读全文
内核线程同步之completion 七月 26, 2018 Completion,完成量,用于多线程间同步,即线程A要往下执行需要等待线程B执行到指定代码后才继续执行,这时就可以使用该机制,用于一个线程告诉另一个线程指定工作已完成。 在Linux Kernel源码include/linux/completion.h文件里有相关的结构体和接口函数的定义和声明,从结构体可以看到其是基于等待队列机制实现的,该机制后期再了解,下面是completion相关内容: struct completion { unsigned int done; wait_queue_head_t wait; }; static inline void init_completion(struct completion *x) ; static inline void reinit_completion(struct completion *x); extern void wait_for_completion(struct completion *); extern int wait_for_completion_interruptible(struct completion *x); extern int wait_for_completion_killable(struct completion *x); extern unsigned long wait_for_completion_timeout(struct completion *x, unsigned long timeout); extern long wait_for_completion_interruptible_timeout( struct completion *x, unsigned long timeout); extern long wait_for_completion_killable_timeout( struct completion *x, unsigned long timeout); extern bool try_wait_for_completion(struct completion *x); extern bool completion_done(struct c... 阅读全文
基于gobot框架在BBB Debian运行的GoLang程序 六月 08, 2018 为了让GoLang与BBB搭配使用,我们借助了gobot机器上框架(查阅“参考资料”里的链接),在BBB Debian系统上运行go程序来控制硬件,下面是我们的整个入门配置和测试记录(在PC Ubuntu系统下进行): 1.获取gobot源码 go get -d -u github.com/hybridgroup/gobot/ ... && go install github.com/hybridgroup/gobot/platforms/beaglebone 这里需要注意和碰到需处理的问题: a.需翻墙,同步代码过程会自动同步依赖库源码,有些需要VPN翻墙才能使用; b.同步源码过程中会碰到exec: "hg": executable file not found in $PATH 提示,此里需执行sudo apt-get install mercurial命令。 同步代码后,会在$GOPATH目录下的src和pkg两个目录下存在相关的源码文件。 2.交叉编译BBB的GOBOT a.配置ARM交叉编译的GO环境 cd $GOROOT GOOS=linux GOARCH=arm ./make.bash --no-clean b.创建BBB上的测试程序及在BBB上验证 创建beaglebone_blink.go文件,文件内容如下: package main import ( "time" " github.com/hybridgroup/gobot " ... 阅读全文
评论
发表评论