当前位置:  编程技术>移动开发
本页文章导读:
    ▪PCL1.6源码在ZYNQ(Cortex-A9)下编译        PCL1.6源码在ZYNQ(Cortex-A9)上编译          在之前的博客中,已经成功在PC的ubuntu12.04上编译了PCL1.6源码,今天开始尝试在ZYNQ(Cortex-A9)上进行编译。在PCL的邮件列表中,anupkini已经在ZYNQ上成功编.........
    ▪ Django工程配备        Django工程配置 1. Setting.pyTIME_ZONE = 'Asia/Shanghai'LANGUAGE_CODE = 'zh-cn'执行 python manage.py命令应该进入工程目录下执行修改配置文件后未生效需要重启服务器2. Django 与数据库交互a). 创建APP进入mysit.........
    ▪ NDK,JNI 累积       NDK,JNI 积累 使用javah 将某一个含有native方法的class 文件转换为.h文件:   切换目录到classes目录,比如:D:\DevWorkSpace\feiliao_copy\bin\classes> 然后在该目录下运行javah 命令,例如:javah com.feinno.feiliao.uti.........

[1]PCL1.6源码在ZYNQ(Cortex-A9)下编译
    来源: 互联网  发布时间: 2014-02-18
PCL1.6源码在ZYNQ(Cortex-A9)上编译
          在之前的博客中,已经成功在PC的ubuntu12.04上编译了PCL1.6源码,今天开始尝试在ZYNQ(Cortex-A9)上进行编译。在PCL的邮件列表中,anupkini已经在ZYNQ上成功编译了PCL1.6,但是在使用过程中貌似还存在问题。
         相关链接:http://www.pcl-developers.org/unable-to-compile-PCL-for-ARM-Cortex-A9-td5707514.html
          一、软硬件平台
          开发板:ZYNQ(ARM Cortex A9 dual core)
          OS:ubuntu12.04
          二、下载源代码

          可以直接从官网上下载:http://pointclouds.org/downloads/

          也可以使用svn进行下载:

svn co http://svn.pointclouds.org/pcl/trunk pcl-trunk

          注:现在官网上的最稳定版本是1.6,用svn下载的是处于开发阶段的1.7版本

          三、安装依赖库

          根据官网的说明,PCL必须要依赖以下库:

                    

          所以必须要确定PC上已经安装了这些库。我的系统中已经安装了boost库,只需要安装其他库即可。这些库都可以在相关网站上下载源代码进行编译,但是这样花费的时间比较多。我安装的方法是直接在debian的网上下载已经编译好的deb安装文件。

          Eigen3.10:       http://packages.debian.org/sid/libeigen3-dev

          flann1.7:          http://packages.debian.org/sid/libflann1.7

          flann1.7-dev:    http://packages.debian.org/sid/libflann-dev

         下载的时候需要选择针对ARM的armhf架构,然后使用dpkg命令安装即可。

          四、修改大小端
          默认的PCL库中是没有加入ARM的编译选项的,所以要修改一些相关的编译选项。
          参考链接:
          http://www.pcl-developers.org/Question-on-suggested-patch-for-1-6-td5707144.html
          http://www.pcl-users.org/What-version-of-OpenNI-is-compatible-with-PCL-1-6-0-td4023883.html
                 首先是PCL-1.6.0-Source/common/include/sensor_msgs/PointCloud2.h文件:
          修改前:
          #elif (defined(i386) || defined(__i386__) || defined(__i386) || defined(_M_IX86) || defined(_X86_) || defined(__THW_INTEL__) || defined(__I86__) || defined(__INTEL__)) \
  || (defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64) || defined(_M_X64)) \
	|| (defined(__ANDROID__))
#  define PCL_LITTLE_ENDIAN
         修改后:
#elif (defined(i386) || defined(__i386__) || defined(__i386) || defined(_M_IX86)
 || defined(_X86_) || defined(__THW_INTEL__) || defined(__I86__) || defined(__IN
TEL__)) \
  || (defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(_
_x86_64) || defined(_M_X64)) \
        || (defined(__ANDROID__)) || (defined(__arm__)) || (defined(__arm)) || (
defined(__ARM__)) || (defined(__ARM)) 
#  define PCL_LITTLE_ENDIAN
          然后是PCL-1.6.0-Source/io/include/pcl/io/ply/byte_order.h文件:
          修改前:
#elif (defined (i386) || defined (__i386__) || defined (__i386) || defined (_M_IX86) || defined (_X86_) || defined (__THW_INTEL__) || defined (__I86__) || defined (__INTEL__)) \
  || (defined (__amd64__) || defined (__amd64) || defined (__x86_64__) || defined (__x86_64) || defined (_M_X64) || defined (ANDROID))
#  define PLY_LITTLE_ENDIAN
          修改后:
#elif (defined (i386) || defined (__i386__) || defined (__i386) || defined (_M_I
X86) || defined (_X86_) || defined (__THW_INTEL__) || defined (__I86__) || defin
ed (__INTEL__)) \
  || (defined (__amd64__) || defined (__amd64) || defined (__x86_64__) || define
d (__x86_64) || defined (_M_X64) || defined (ANDROID) ||defined(__arm__) || defi
ned(__arm) || defined(__ARM__) || defined(__ARM) )
#  define PLY_LITTLE_ENDIAN
           五、编译安装
           这一步和在PC上基本是一样的,但是在ARM中的编译可以省略一些不必要的代码。具体的编译选项可以参考http://www.pointclouds.org/documentation/tutorials/building_pcl.php,里面讲的很清楚。
           首先在代码中建立build文件夹,然后进入build文件夹的路径,使用cmake生成makefile:
cmake -DCMAKE_BUILD_TYPE=Release .. 
           然后打开生成的CMakeCache.txt,在前面几行可以看到需要编译的包的选项,需要编译就是ON,否则修改成OFF即可,比如所不许要可视化效果,修改BUILD_visualization:BOOL=OFF。
           接下来就是漫长的make过程。。。。。。。。。。。
           终于make成功了,make install一下就算安装完了。           
           六、测试
           又到了测试环节,令人心碎的事情还是发生了。我使用最简单的例程openni_grabber,编译倒是没有问题,但是运行的时候就报错了:
            erminate called after throwing an instance of 'pcl::PCLIOException' 
          what():  No matching device found. 
          openni_wrapper::OpenNIDevice::OpenNIDevice(xn::Context&, const xn::NodeInfo&, const                 xn::NodeInfo&, const xn::NodeInfo&, const xn::NodeInfo&) @ 
          /root/workspace/sources/PCL-1.6.0-Source/io/src/openni_camera/openni_device.cpp @ 125 : creating image generator failed. Reason: Failed to set USB interface! 
          上网搜了一下,好像很多人也有相同的问题。:
http://www.pcl-developers.org/Openni-Grabber-openni-device-cpp-125-creating-image-generator-failed-td5707710.html
http://www.pcl-users.org/libusb-OpenNI-permission-denied-Kinect-amp-Ubuntu-td3720915.html#a3831551
                      
             又要纠结了。。。。。










    
[2] Django工程配备
    来源: 互联网  发布时间: 2014-02-18
Django工程配置
1. Setting.py

TIME_ZONE = 'Asia/Shanghai'

LANGUAGE_CODE = 'zh-cn'

执行 python manage.py命令应该进入工程目录下执行

修改配置文件后未生效需要重启服务器

2. Django 与数据库交互
a). 创建APP
进入mysite目录里面,运行命令创建一个新的APP:
python manage.py startapp books

b). 创建模型
c). 安装模型
编辑settings.py,查找INSTALLED_APPS设置
然后添加'mysite.books'到INSTALLED_APPS列表

Django app已经在settings文件激活,我们可以在数据库中创建表了
首先通过如下的命令验证一下模型:python manage.py validate

如果你的模型是合法的,运行下面的命令为books app的模型生成CREATE TABLE语句
(如果你使用Unix会有五颜六色的语法高亮):python manage.py sqlall books

如果你愿意,你可以复制粘贴这些SQL到你数据库客户端或者使用Unix管道来直接传递它
尽管如此,Django提供一个简单的方式来把这些SQL提交数据库
像下面这样运行syncdb命令:python manage.py syncdb

确认你定义的任何模型都有一个__str__()方法,不仅是使在你自己使用交互环境时更方便
也因为当Django在几个地方需要显示对象时会使用__str__()的输出
最后,注意__str__()是给模型添加行为的好习惯
一个Django模型描述的不仅仅是一个对象数据库表结构,它也描述了对象知道怎样去做的功能
__str__()就是这样的功能的一个例子,一个模型知道怎样显示它自己

2. Q:一不小心删除了管理员用户怎么办?
A:
在你第一次运行 syncdb 时,你很可能被问起是否创建一个 superuser ,如果那时你没有创建 superuser ,
你需要运行 djang/contrib/auth/bin/create_superuser.py 来创建一个admin用户,否则你就不能登录到管理界面里去!方法,如下:

(1)在新版本中(1.2.1)windows下:E:\workspace\mydjango>python manage.py createsuperuser 然后依次输入用户名、邮箱、密码等
(2)在老版本中使用python /path/to/django/contrib/auth/create_superuser.py

参考:http://docs.djangoproject.com/en/1.2/topics/auth/#creating-superusers

    
[3] NDK,JNI 累积
    来源: 互联网  发布时间: 2014-02-18
NDK,JNI 积累

使用javah 将某一个含有native方法的class 文件转换为.h文件:

 

切换目录到classes目录,比如:D:\DevWorkSpace\feiliao_copy\bin\classes> 然后在该目录下运行javah 命令,例如:javah com.feinno.feiliao.utils.media.voice.OpenCoreAmr

 

Application.mk  

#可提供编译c++时的标准库
APP_STL := gnustl_static
#使gcc编译时检查new的返回值,如果返回为空,构造函数就不再执行
APP_CPPFLAGS := -fcheck-new
#开启异常捕获
APP_CPPFLAGS += -fexceptions

#"release"模式是默认的,并且会生成高度优化的二进制代码。
#"debug"模式生成的是未优化的二进制代码,但可以检测出很多的BUG,可以用于调试。
APP_OPTIM := release

#可选,如果没有定义,NDK将由在Android.mk中声明的默认的模块编译,并且包含所有的子文件(makefile文件)
#APP_MODULES := felio-sound imageprocessor-jni
APP_PLATFORM := android-7

 


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3