解决方案:BlueSpaceNews 程序采集的新闻页面自动生成静态文件

优采云 发布时间: 2022-12-02 21:40

  解决方案:BlueSpaceNews 程序采集的新闻页面自动生成静态文件

  

" />

  程序采集

的新闻页面自动生成静态文件供下次使用,

  

" />

  没有数据库文件,采用缓存机制,让程序速度快了很多,每半小时更新一次新闻列表信息,重新设计了首页和列表界面,原有的新闻窃贼(新浪)加速版——程序获取新闻页面自动生成静态文件,下次使用,nofile,使用缓存机制,让程序的速度加快很多, 每时事通讯更新一次半小时信息,重新设计首页和列表界面,原创新闻大盗(新浪)加速版

  解决方案:麒麟操作系统下数据采集卡的环境设置、驱动安装及应用(二)

  Yunpulse USB数据采集卡在国产麒麟操作系统下的应用(二)

  ——环境设置、采集卡驱动安装与应用

  1.基本环境设置

  A:更新系统,打开mate终端,输入:

  sudo apt-get 更新

  sudo apt-get install build-essential

  B:安装g++编译器。系统一般默认都有gcc编译器。你只需要单独安装g++编译器。在终端中输入:

  sudo apt 安装 g++

  安装完成,使用g++ -v命令查询版本信息,安装成功。

  C:安装USB相关的系统插件,终端输入:

  sudo apt 安装 libusb-1.0-0-dev

  D:设置环境变量,用vim打开/etc/ld.so.conf,在里面插入一行

  收录

/usr/local/lib

  然后,运行sudo ldconfig /etc/ld.so.conf 命令使其生效。

  该行的作用是设置/usr/local/lib目录为应用程序运行时需要加载so库文件时的搜索路径。后面我们会把数据采集卡的驱动库文件放在这个目录下。

  2、编译数据采集卡的驱动库

  这里我们以云脉数据采集卡HK_USB DAQ V1.2为例,

  附采集卡功能简介:16通道单端/8通道差分模拟采集,12位,单通道最大采样100kps

  8个单向数字输入,8​​个单向数字输出

  1通道pwm测量和计数器和2通道pwm输出功能

  首先将驱动库文件driver_usb_daq V1.2复制到任意目录下,可以看到该目录收录

了所有的源文件:

  然后在终端输入命令:

  打扫干净

  制作

  编译驱动库文件libusbdaq_v12.so,将驱动库文件复制到系统目录下,在上一级目录下使用命令:

  sudo cp ./libusbdaq_v12.so /usr/local/lib

  至此,我们已经编译好数据采集卡的驱动程序并安装到系统中,以备我们的应用程序调用板卡的驱动函数读取数据。

  3、编写C语言测试应用程序读取采集卡数据

  A:写一段C测试代码如下:

  #包括

  #包括

  #包括

  #包括

  typedef 字符字节;

  //*****下面是驱动库文件.h文件的内容。我们可以直接收录

h文件。为了方便,直接把h文件的内容复制到程序的最前面。相关功能的说明可以在资料中找到功能的具体解释在采集卡的PDF手册中***///

  int OpenUsb(无效);

  int CloseUsb(无效);

  int ADSingleV12(int dev, int ad_mod, int chan, int gain, float* adResult);

  int ADContinuV12(int dev, int ad_mod, int chan, int gain, int Num_Sample, int Rate_Sample, float *databuf);

  int MADContinuV12(int dev, int ad_mod, int chan_first, int chan_last, int gain, int Num_Sample, int Rate_Sample, float *mad_data);

  int ADContinuConfigV12(int dev, int ad_mod, int chan, int gain, int Rate_Sample);

  int MADContinuConfigV12(int dev, int ad_mod, int chan_first, int chan_last, int gain, int Rate_Sample);

  int GetAdBuffSizeV12(void); //-1 --- 错误

  int ReadAdBuffV12(int dev, float* databuf, int num);

  int ADContinuStopV12(int dev);

  int DASingleOutV12(int dev,int chan,int value);

  int DADataSendV12(int dev, int chan, int Num, int *databuf);

  int DAScanOutV12(int dev, int chan, int Freq, int scan_Num);

  int PWMOutSetV12(int dev, int chan, int Freq, float DutyCycle);

  int PWMInSetV12(int dev, int mod);

  int PWMInReadV12(int dev, float* Freq, int* DutyCycle);

  int CountSetV12(int dev, int mod);

  int CountReadV12(int dev, int* count);

  int DoSetV12(int dev, unsigned char chan, unsigned char state);

  int DiReadV12(int dev, unsigned char *value);

  unsigned int GetCardIdV12(int dev);

  int打开=0;

  诠释我;

  主函数()

  {

  if(-1==OpenUsb()) //先调用打开设备函数打开设备

  {

  printf("####usb 设备打开失败####\n");

  返回-1;

  }

  

" />

  别的

  {

  printf("####usb 设备打开正常 ####\n");

  }

  //这里我们设置采集卡的数字输出端口0、2、4、6输出高电平5V,用电压表测量

  //OUT0、2、4、6对GND的输出电压

  对于(我= 0;我

  {

  DoSetV12(0,i,1);

  printf("### 写 Dout-%d set 1 ####\n",i);

  }

  //这里我们设置采集卡的数字输出端口1、3、5、6输出低电平0V

  对于(我= 1;我

  DoSetV12(0,i,0);

  printf("### 写 Dout-%d set 0 ####\n",i);

  }

  无符号字符 DI=0;

  DiReadV12(0,&DI);//

  printf("####Din = %x\n",DI);

  DASingleOutV12(0,1,(int)(5.8*4095/10));//直接将DA1通道的输出电压设置为固定的5.8V

  printf("####DusbEMO 设备 DA1 输出 5.8V ####\n");

  DASingleOutV12(0,2,(int)(2.8*4095/10));//直接将DA2通道的输出电压设置为固定的2.8V

  printf("####DusbEMO 设备 DA1 输出 2.8V ####\n");

  //设置PWM1输出周期性方波,频率为10Hz,占空比为30.5%,可以用示波器查看

  PWMOutSetV12(0,0,10,30.5);

  printf("####DusbEMO 设备 PWM0 输出 FREq=10hz, duty=30.5% ####\n");

  //设置PWM2输出一个10H0z的频率,一个占空比为40.5%的周期性方波,可以用示波器查看

  PWMOutSetV12(0,1,100,40.5);//

  printf("####DusbEMO 设备 PWM0 输出 FREq=100hz, duty=40.5% ####\n");

  浮动广告结果1;

  //循环采集模拟量输入通道AD1--16,单端模式下,选择±10V量程,采集并打印到终端输出

  对于(我= 0;我

  {

  //ADSingleV12(int dev, int ad_mod, int chan, int gain, float* adResult);

  如果(ADSingleV12(0,1,i,1,&adResult1)==0)

  {

  printf("AD_single read ad %d =%f\n",i,adResult1);

  }

  别的

  {

  printf("读取广告 %d 失败!\n",i);

  }

  }

  浮动数据[1024];

  //ADContinuV12(int dev, int ad_mod, int chan, int gain, int Num_Sample, int Rate_Sample, float *databuf);

  //调用单通道连续采集函数,采集AD1通道,以10K采样率连续采集1024条数据并打印出来。在实际测试中,可以使用信号发生器输出一个100Hz的正弦波给通道1,这样每100个数据采集一个周期的数据

  如果(ADContinuV12(0,1,0,1,1024,10000,数据)==0)

  {

  对于(我= 0;我

  {

  printf("AD_continu ad[%d]=%f\n",i,data[i]);

  }

  }

  别的

  {

  printf("AD_continu 读取广告失败!\n");

  }

  关闭 USB();

  返回 0;

  }

  B:编写Makefile如下:

  INCLUDEDIR := usr/local/include/libusb-1.0/

  LIDRARYDIR := /usr/local/lib/

  抄送:=海合会

  目标:= usb_daq_test

  源:= usb_daq_test.c

  $(目标):$(来源)

  $(CC) -o $@ $(SOURCE) -L $(LIDRARYDIR) -lusbdaq_v12 -lusb-1.0 -lm -lpthread

  

" />

  .PHONY:干净

  干净的:

  -rm $(目标)

  特别注意在编译选项中添加-lusbdaq_v12选项链接采集卡动态库,添加-lusb-1.0链接系统USB插件库,添加-lm -lpthread支持线程等操作, /usr /local/lib/ 是USB驱动库的存放路径。

  C:在终端编译测试程序,在终端输入make命令编译出可执行程序usb_daq_test

  D:运行测试程序

  将USB数据采集卡通过数据线连接到电脑USB口,在终端运行测试程序,输入命令:

  须藤./usb_daq_test

  运行结果如下:

  jq@jqPC:~/daq-v1.2-dev/test/$ sudo ./usb_daq_test

  ####VID=1d6b;PID=3####

  ####VID=bda;PID=b009####

  ####VID=408;PID=5362####

  ####VID=17ef;PID=6019####

  ####VID=7812;PID=55b1####

  ####VID=1d6b;PID=2####

  #### USB 设备打开正常####

  ### 写 Dout-0 集 1 ####

  ### 写 Dout-2 集 1 ####

  ### 写 Dout-4 设置 1 ####

  ### 写 Dout-6 集 1 ####

  ### 写 Dout-1 集 0 ####

  ### 写 Dout-3 设置 0 ####

  ### 写 Dout-5 集 0 ####

  ### 写 Dout-7 设置 0 ####

  #### 喧嚣 = 0

  ####DusbEMO 设备 DA1 输出 5.8V ####

  ####DusbEMO 设备 DA1 输出 2.8V ####

  ####DusbEMO 设备 PWM0 输出 FREq=10hz,duty=30.5%#

  ####DusbEMO 设备 PWM0 输出 FREq=100hz,duty=40.5%#

  AD_单读广告 0 =5.443223

  AD_single read ad 1 =4.383394

  AD_single read ad 2 =4.442002

  AD_single read ad 3 =3.743589

  AD_single read ad 4 =4.554335

  AD_单读广告5 =3.753358

  AD_single read ad 6 =3.128205

  AD_单读广告 7 =2.473748

  AD_single read ad 8 =0.866911

  AD_单读ad 9 =0.148962

  AD_单读广告 10 =-0.354091

  AD_单读广告 11 =-0.798534

  AD_单读广告 12 =-0.925519

  AD_单读广告 13 =-1.267399

  AD_单读广告 14 =-1.404151

  AD_单读广告 15 =-1.462759

  AD_continu ad[0]=5.443223

  AD_continu ad[1]=5.448108

  AD_continu ad[2]=5.448108

  AD_continu ad[3]=5.448108

  AD_continu ad[4]=5.443223

  AD_continu ad[5]=5.443223

  AD_continu ad[6]=5.443223

  AD_continu ad[7]=5.438339

  AD_continu ad[8]=5.448108

  AD_continu ad[9]=5.448108

  AD_continu ad[10]=5.448108

  AD_continu ad[11]=5.443223

  AD_continu ad[12]=5.443223

  AD_continu ad[13]=5.443223

  AD_continu ad[14]=5.443223

  AD_continu ad[15]=5.443223

  AD_continu ad[16]=5.448108

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线