精华内容
下载资源
问答
  • 笔记本电脑原本有一块装了win7机械硬盘,后来在光驱处加装了一块固态硬盘,在固态上装了win10组成了双系统,开机顺序是先启动机械硬盘再启动固态硬盘,我现在想先启动固态硬盘再启动机械硬盘,但是这样无法启动...
  • Bootchart 是一种很方便工具,主要用于分析Linux 系统的启动过程,并且能够形成一个层次分明的图片,让用户很直观查看系统启动的过程和各个过程耗费时间,以便用户能够分析启动过程,从而进行优化以提高...

    简介

    Bootchart 是一种很方便的工具,主要用于分析Linux 系统下的启动过程,并且能够形成一个层次分明的图片,让用户很直观的查看系统启动的过程和各个过程耗费的时间,以便用户能够分析启动过程,从而进行优化以提高启动时间。它由bootchartd 服务和bootchart-render 两部分组成,后者主要负责生成启动流程的分析结果图。

    安装bootchart

    目前,在各大Linux 发行版本中,基本都带有这个包。你只需通过他们对应的源,进行安装即可。具体的安装方法可以参见各发行版的具体的包管理机制。

    另外,你还可以从http://www.bootchart.org/download.html 处下载到相应的源码包,进行编译安装即可。要注意的是bootchart 是一个基于java 的程序。所以的有相应的环境方可。

    运行Bootchart

    要使bootchart 运行,你需要将他添加到引导器的初始化进程选项,或者手动在init 脚本(通常是rc.sysinit )中手动添加。不过需要注意的是,如果你是手动添加到init 脚本的,那么也要手动停止它,这种情况需要特别留意!

    启动引导器设置

    下面我们介绍常用的方法,即将原有引导选项复制一份,并在内核项后面添加'init=/sbin/bootchartd' ,然后通过启动引导器引导bootchart 。这样bootchart 会在登录提示符出现的时候自动停止。

    Grub 中添加的方法

    打开/boot/grub/menu.lst, 复制粘贴原有的引导记录,并在kernel 行后添加"init=/sbin/bootchartd" 。如下例:

    # (1) Arch Linux Bootchart title Arch Linux root (hd0,0) kernel /vmlinuz26 root=/dev/disk/by-uuid/d531ff5b-de65-499a-9942-d18682375163 init=/sbin/bootchartd initrd /kernel26.img

    Grub 2 中的添加方法

    打开/boot/grub/grub.cfg ,复制原来的引导区域并按照下面的范例修改之:

    # (0) Arch Linux menuentry "Arch Linux" { set root=(hd0,1) linux /boot/vmlinuz26 root=/dev/sda1 ro initrd /boot/kernel26.img } # (1) 带bootchartd 的Arch Linux 引导项 menuentry "Arch Linux with Bootchart" { set root=(hd0,1) linux /boot/vmlinuz26 root=/dev/sda1 ro init=/sbin/bootchartd initrd /boot/kernel26.img }

    然后你就可以重启,并选择代bootchart 选项的启动项了。

    rc.sysinit 脚本中的设置方法

    这种方法有一定的危险性(可能导致原有系统无法启动),所以除非前一种方法失败,否则不要用这种方法。采用这种方式,不光是每次都要手动停止bootchart (否则很快就会占满硬件资源),而且每次开机都会运行一次,而且以后每次软件包升级 /etc/rc.sysinit 的时候,这些设置都会被覆盖掉。

    另一方面,这种方式是可以让你看到登录后所发生的一些东西的。

    编辑/etc/rc.sysinit 脚本,先将下面这一行添加到/etc/rc.sysinit

    /sbin/bootchartd start

    这一行不宜太靠前,否则这部分出问题会导致系统无法启动。当然也不宜太靠后,因为他之前的项目都无法观察得到。 我们推荐把他放在配置系统时钟行的前面。找到如下行:

    stat_busy "Configuring System Clock"

    将下面这一行添加到其前面:

    /sbin/bootchartd start

    生成bootchart 文件

    在使用bootchart 启动以后,我们要做的就是使用相关命令,生成一个适合查看的图片文件。具体的生成步骤如下:

    1. 登录后关闭 bootchartd 服务

    这种方式一定记住,在登录后停止bootchartd 服务。你可以以管理员帐户执行

    /sbin/bootchartd stop

    也可以用sudo 通过下面的命令来执行:

    sudo /sbin/bootchartd stop
    2. 生成分析结果图表

    你可以通过运行下面的命令来生成分析结果图:

    bootchart -o 目录名 -f 文件格式

    确保运行命令的目录有写权限,程序就会生成一个名为'bootchart.svg' 的图像,这就是分析结果图。当然如果你跟了 -f ,指定格式后,就会生产相应格式的图像文件。

    你需要事先安装Java 运行环境并且在此之前设置正确。

    Bootchart 命令常用的参数介绍:

    -f,--format <format> 指定文件格式 (png | eps | svg; default: png)

    -h,--help 打印帮助信息

    -o,--output-dir <dir> 指定文件输出到那个目录下,默认是当前目录

    -v,--version 打印帮助信息

    展开全文
  • 1.介绍android开机画面由三部分组成,第一部分在bootloader启动时显示,第二部分在启动kernel时显示,第三部分在系统启动时(bootanimation)显示(动画) 2.bootloader开机图片 1)一般使用rle格式图片,不同...

    1.     介绍
    android
    开机画面由三部分组成,第一部分在bootloader启动时显示,第二部分在启动kernel时显示,第三部分在系统启动时(bootanimation)显示(动画)

    2.     bootloader开机图片

    1)         一般使用rle格式图片,不同的android系统不同此图片可能放在不同位置,以下实例均以G1为例,G1放在splash分区中

    2)         制作rle格式开机图片

    a)          将图片转成320x480256色,保存成不带Alpha通道的png格式

    b)         使用convert工具将splash.png转换成8位色的splash.raw
    convert splash.png -depth 8 rgb:splash.raw
    确认splash.raw大小为460800字节

    c)          使用android工具rgb2565改变图像格式
    out/host/linux-x86/bin/rgb2565 < splash.raw > splash.raw565
    确认splash.raw565大小为307200字节

    3)         烧写(以G1为例)
    Power+Camera启动到烧写模式
    fastboot flash splash1 splash.raw565

    3.     kernel开机图片

    1)         相关代码
    kernel/drivers/video/msm/msm_fb.c
    G1使用高通芯片组MSM7201芯片组)
    它会读出根目录下的xx.rle,并显示为开机画面,rle做法同上

    4.     bootanimation开机动画

    1)         android 2.0之前

    a)          说明
    使用bootanimation程序显示开机画面,如需修改开机画面,需要修改源码

    b)         代码
    frameworks/base/cmds/bootanimation/*
    frameworks/base/core/res/assets/images/android-logo*

    2)         android 2.0及之后

    a)          说明
    使用bootanimation程序显示开机画面,如需修改开机画面,不用修改代码,只需按格式要求做bootanimation.zip包,放在系统的/system/media目录中,或/data/local目录中即可,两个目录下都存在时,优先使用/data/local下的

    b)         代码
    frameworks/base/cmds/bootanimation/*
    frameworks/base/core/res/assets/images*

    c)          制作动画包

                                           i.              描述文件desc.txt
    480 427 30
    p 1 0 part0 
    p 0 10 part1 
    总体说明:480为宽度,427为高度,30为帧数,即每秒播放动画30

    部分说明:第一项p为标志符,第二项为循环次数1为只播放1次,0为无限循环,第三项为两次循环之间间隔的帧数,第四项为对应的目录名

                                          ii.              图片
    图片放在desc.txt中目录名指定的目录中,目录中按字符顺序播放

                                        iii.              打包

    2         windows
    使用winrar找包,选择ZIP格式,压缩标准要选储存

    2         linux
    zip -0 -r ../bootanimation.zip ./*
    linux
    命令使用-0指定压缩等级为最低等级stored,即只归档不压缩,否则可能由于包格式问题引起动画显示为黑屏

    2         注意
    打包不要带上层目录

     

    介绍几本Android初学入门的经典教材——选对选好教材非常重要

    转载于:https://blog.51cto.com/prothesman/1411614

    展开全文
  • 概述  Android 开机画面由三部分组成,第一部分在bootloader启动时显示(uboot);...uboot、kernelLOGO(项目中一般这两张图片是一样,即常说开机LOGO)。 代码位置 mtk6739_q0_mp1/device/mediateksample...

    概述

     Android 开机画面由三部分组成,第一部分在bootloader启动时显示(uboot);第二部分在启动kernel 时显示(kernel);第三部分在系统启动时(bootanimation)显示(动画)。
    uboot、kernel的LOGO(项目中一般这两张图片是一样的,即常说的开机LOGO)。


    代码位置

    mtk6739_q0_mp1/device/mediateksample/g2020eir_v1_ga_bf/ProjectConfig.mk
    
    {$LK} = vendor/mediatek/proprietary/bootable/bootloader/lk
    
    {$LK}/target/g2020eir_v1_ga_bf/include/target/cust_display.h
    {$LK}/lib/libshowlogo/cust_display.h
    
    {$LK}/platform/mt6765/mt_logo.c
    {$LK}/platform/mt6765/include/platform/mt_logo.h
    {$LK}/platform/mt6765/platform.c
    
    

    代码分析

    • 1.logo图片选择

     一般logo目录下会有很多格式的图片,例如hdplus、hvga、hd720,具体使用哪种格式的图片,取决于项目中的配置文件ProjectConfig.mk。例如在mt6765中使用的是Boot_LOGO=hdplus格式,如下代码所示:

    mtk6739_q0_mp1/device/mediateksample/g2020eir_v1_ga_bf/ProjectConfig.mk
    ...
    BOOT_LOGO = hdplus
    ...
    
    • 2.索引序列号:
    {$LK}/target/g2020eir_v1_ga_bf/include/target/cust_display.h
    
    // Common LOGO index
    
    #define BOOT_LOGO_INDEX   0
    
    #define KERNEL_LOGO_INDEX   38
    
    • 3.则使用如下路径LOGO图片:
    {$LK}/dev/logo/hdplus
    
    uboot和kernel对应图片如下:
    uboot:hdplus_uboot.bmp
    kernel:hdplus_kernel.bmp
    

    代码流程

    • 1.{$LK}/platform/mt6765/platform.c
    void platform_init(void) 
    {
        ...
        //如果没接电池且是低电量模式,将显示低电量logo,否则正常显示logo
        if (kernel_charging_boot() == 1) {
            if ((g_boot_mode != LOW_POWER_OFF_CHARGING_BOOT) || ((CHR_Type_num != STANDARD_HOST) && (CHR_Type_num != NONSTANDARD_CHARGER))) {
                    mt_disp_show_low_battery();
                }
        } else if (g_boot_mode != KERNEL_POWER_OFF_CHARGING_BOOT && g_boot_mode != LOW_POWER_OFF_CHARGING_BOOT) {
            //加载logo
            mboot_common_load_logo((unsigned long)mt_get_logo_db_addr_pa(), "logo");
            //根据启动方式选择加载的logo,填充到fb中
            mt_disp_show_boot_logo();
        }
    }
    
    • 2.{$LK}/platform/mt6765/mt_logo.c
    /*
     * Show first boot logo when phone boot up
     *
     */
    void mt_disp_show_boot_logo(void) //显示uboot logo
    {
    	dprintf(INFO, "[lk logo: %s %d]\n",__FUNCTION__,__LINE__);
    	mt_logo_get_custom_if();
    
    	if (logo_cust_if->show_boot_logo) {
    		logo_cust_if->show_boot_logo();
    	} else {
    		///show_logo(0);
    		init_fb_screen();
    		fill_animation_logo(BOOT_LOGO_INDEX, mt_get_fb_addr(), (void *)mt_get_tempfb_addr(), logo_addr, phical_screen);
    		mt_disp_update(0, 0, CFG_DISPLAY_WIDTH, CFG_DISPLAY_HEIGHT);
    	}
    
    	return;
    }
    
    
    /*
     * Show low battery logo
     *
     */
    void mt_disp_show_low_battery(void) // 显示低电量图片
    {
    	dprintf(INFO, "[lk logo: %s %d]\n",__FUNCTION__,__LINE__);
    	mt_logo_get_custom_if();
    
    	if (logo_cust_if->show_boot_logo) {
    		logo_cust_if->show_boot_logo();
    	} else {
    		init_fb_screen();
    		//show_logo(2);
    		fill_animation_logo(LOW_BATTERY_INDEX, mt_get_fb_addr(), (void *)mt_get_tempfb_addr(), logo_addr, phical_screen);
    		mt_disp_update(0, 0, CFG_DISPLAY_WIDTH, CFG_DISPLAY_HEIGHT);
    	}
    
    	return;
    }
    
    void mt_disp_show_charging(int index) //显示正在充电图片
    {
    	dprintf(INFO, "[lk logo: %s %d]\n",__FUNCTION__,__LINE__);
    	mt_logo_get_custom_if();
    
    	if (logo_cust_if->show_boot_logo) {
    		logo_cust_if->show_boot_logo();
    	} else {
    		init_fb_screen();
    		//show_logo(2);
    		fill_animation_logo(index + LOW_BATTERY01_INDEX, mt_get_fb_addr(), (void *)mt_get_tempfb_addr(), logo_addr, phical_screen);
    		mt_disp_update(0, 0, CFG_DISPLAY_WIDTH, CFG_DISPLAY_HEIGHT);
    	}
    
    	return;
    }
    
    void mt_disp_show_plug_charger(void)
    {
    	dprintf(INFO, "[lk logo: %s %d]\n",__FUNCTION__,__LINE__);
    	mt_logo_get_custom_if();
    
    	if (logo_cust_if->show_boot_logo) {
    		logo_cust_if->show_boot_logo();
    	} else {
    		init_fb_screen();
    		//show_logo(2);
    		fill_animation_logo(LOW_BATTERY_REMIND_INDEX, mt_get_fb_addr(), (void *)mt_get_tempfb_addr(), logo_addr, phical_screen);
    		mt_disp_update(0, 0, CFG_DISPLAY_WIDTH, CFG_DISPLAY_HEIGHT);
    	}
    
    	return;
    }
    
    
    • 3.索引序号
    {$LK}/lib/libshowlogo/cust_display.h
    
      83 // Common LOGO index
      84 #define BOOT_LOGO_INDEX   0
      85 #define KERNEL_LOGO_INDEX   38
      86
      87 #define ANIM_V0_BACKGROUND_INDEX   1
      88 #define ANIM_V1_BACKGROUND_INDEX   35
      89
      90 #define LOW_BATTERY_INDEX   2
      91 #define LOW_BATTERY01_INDEX  39
      92 #define LOW_BATTERY02_INDEX  40
      93 #define LOW_BATTERY_REMIND_INDEX  41
      94 #define CHARGER_OV_INDEX   3
      95 #define FULL_BATTERY_INDEX   37
      96
      97 // version 1: show wave animation with  battery number
      98
      99 // NUMBER LOGO INDEX
     100 #define NUMBER_PIC_START_0   4
     101 #define NUMBER_PIC_PERCENT   14
     102
     103 // DYNAMIC ANIMATION LOGO INDEX
     104 #define BAT_ANIM_START_0   15
     105
     106 // LOW BATTERY(0~10%) ANIMATION LOGO
     107 #define LOW_BAT_ANIM_START_0    25
     108
     109 #define ANIM_LINE_INDEX   36
     110
     111
     112 // version 2: show wireless charging animation logo index
     113
     114 #define V2_NUM_START_0_INDEX  42
     115 #define V2_NUM_PERCENT_INDEX  52
     116
     117 #define V2_BAT_0_10_START_INDEX     53
     118 #define V2_BAT_10_40_START_INDEX    57
     119 #define V2_BAT_40_80_START_INDEX    61
     120 #define V2_BAT_80_100_START_NDEX   65
     121
     122 #define V2_BAT_0_INDEX   69
     123 #define V2_BAT_100_INDEX   70
    
    

    logo.bin索引序号分析

    • dev/logo/rules.mk
    LOCAL_DIR := $(GET_LOCAL_DIR)
    BOOT_LOGO_DIR := $(LOCAL_DIR)
    
    #fix no boot_logo config
    #LOCAL_CFLAGS += -DBOOT_LOGO=wvga
    
    ifeq ($(strip $(BOOT_LOGO)),)
      BOOT_LOGO = fwvga
    endif
    
    ifeq ($(strip $(MTK_LK_CAMERA_SUPPORT)), yes)
      BOOT_LOGO = fhd
    endif
    
    $(info BOOT_LOGO = $(BOOT_LOGO))
    $(info lk/logo/dir=$(LOCAL_DIR),builddir=$(BUILDDIR))
    
    ifeq ($(HOST_OS),darwin)
    BMP_TO_RAW := $(BOOT_LOGO_DIR)/tool/bmp_to_raw.darwin
    ZPIPE := $(BOOT_LOGO_DIR)/tool/zpipe.darwin
    MKIMG := $(LOCAL_DIR)/../../scripts/mkimage.darwin
    else
    BMP_TO_RAW := $(BOOT_LOGO_DIR)/tool/bmp_to_raw
    ZPIPE := $(BOOT_LOGO_DIR)/tool/zpipe
    MKIMG := $(LOCAL_DIR)/../../scripts/mkimage
    endif
    IMG_HDR_CFG := $(LOCAL_DIR)/img_hdr_logo.cfg
    
    EMPTY :=
    UNDER_LINE := _
    TEMP := $(strip $(subst $(UNDER_LINE), $(EMPTY), $(BOOT_LOGO)))
    COUNT := $(words $(TEMP))
    BASE_LOGO := $(word $(COUNT),$(TEMP))
    EXIST := $(shell if [ -e $(BOOT_LOGO_DIR)/$(BASE_LOGO) ]; then echo "exist"; else echo "noexist"; fi;)
    ifeq ($(EXIST), "noexist")
      BASE_LOGO := $(BOOT_LOGO)
    endif
    
    SUPPORT_PUMP_EXPRESS = no
    ifeq ($(strip $(MTK_PUMP_EXPRESS_SUPPORT)), yes)
      SUPPORT_PUMP_EXPRESS = yes
    else
      ifeq ($(strip $(MTK_PUMP_EXPRESS_PLUS_SUPPORT)), yes)
        SUPPORT_PUMP_EXPRESS = yes
      endif
    endif
    
    BOOT_LOGO_RESOURCE := $(BUILDDIR)/$(BOOT_LOGO_DIR)/$(BOOT_LOGO).raw
    LOGO_IMAGE := $(BUILDDIR)/logo.bin
    
    SUPPORT_PROTOCOL1_RAT_CONFIG = no
    SUPPORT_CARRIEREXPRESS_PACK = no
    ifdef MTK_CARRIEREXPRESS_PACK
    ifneq ($(strip $(MTK_CARRIEREXPRESS_PACK)), no)
    	SUPPORT_CARRIEREXPRESS_PACK = yes
    	RAT_CONFIG = $(strip $(MTK_PROTOCOL1_RAT_CONFIG))
    	ifneq (,$(RAT_CONFIG))
    		ifneq (,$(findstring L,$(RAT_CONFIG)))
    			SUPPORT_PROTOCOL1_RAT_CONFIG = yes
    		endif
    	endif
    endif
    endif
    
    ifeq ($(strip $(SUPPORT_CARRIEREXPRESS_PACK)),yes)
    RESOLUTION := $(word $(COUNT),$(TEMP))
    RESOURCE_OBJ_LIST :=   \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_uboot.raw //序号0
    else
    RESOURCE_OBJ_LIST :=   \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_uboot.raw
    endif
    
    ifneq ($(strip $(MACH_TYPE)), 2701)
    ifneq ($(strip $(MTK_ALPS_BOX_SUPPORT)), yes)
    RESOURCE_OBJ_LIST +=   \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_battery.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_low_battery.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_charger_ov.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_0.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_1.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_2.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_3.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_4.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_5.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_6.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_7.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_8.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_9.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_percent.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_01.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_02.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_03.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_04.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_05.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_06.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_07.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_08.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_09.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_10.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_01.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_02.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_03.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_04.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_05.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_06.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_07.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_08.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_09.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_10.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_bg.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_img.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_100.raw
    ifeq ($(strip $(SUPPORT_CARRIEREXPRESS_PACK)),yes)
    RESOURCE_OBJ_LIST +=   \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_kernel.raw // 序号38
    else
    RESOURCE_OBJ_LIST +=   \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_kernel.raw
    endif
    RESOURCE_OBJ_LIST +=   \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_low_battery01.raw \ //序号39
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_low_battery02.raw \ //序号40
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_low_battery_remind.raw //序号41
    endif
    endif
    
    ifeq ($(strip $(SUPPORT_PUMP_EXPRESS)), yes)
    RESOURCE_OBJ_LIST +=   \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_100.raw \ 序号42
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_ani-01.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_ani-02.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_ani-03.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_ani-04.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_ani-05.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_ani-06.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_00.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_01.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_02.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_03.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_04.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_05.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_06.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_07.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_08.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_09.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_percent.raw //序号59 一共60张
    endif
    
    ifeq ($(strip $(MTK_WIRELESS_CHARGER_SUPPORT)), yes)
    RESOURCE_OBJ_LIST +=   \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_num_00.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_num_01.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_num_02.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_num_03.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_num_04.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_num_05.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_num_06.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_num_07.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_num_08.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_num_09.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_num_percent.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_bat_10_0.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_bat_10_1.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_bat_10_2.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_bat_10_3.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_bat_30_0.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_bat_30_1.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_bat_30_2.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_bat_30_3.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_bat_60_0.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_bat_60_1.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_bat_60_2.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_bat_60_3.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_bat_90_0.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_bat_90_1.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_bat_90_2.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_bat_90_3.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_bat_0.raw \
                $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_wireless_bat_100.raw 
    
    endif
    
    ifeq ($(strip $(SUPPORT_CARRIEREXPRESS_PACK)), yes)
    
    ifeq ($(filter OP01, $(subst _, $(space), $(MTK_REGIONAL_OP_PACK))), OP01)
    ifeq ($(strip $(SUPPORT_PROTOCOL1_RAT_CONFIG)), yes)
    RESOURCE_OBJ_LIST +=   \
    	$(BOOT_LOGO_DIR)/cmcc_lte_$(RESOLUTION)/cmcc_lte_$(RESOLUTION)_uboot.raw \
    	$(BOOT_LOGO_DIR)/cmcc_lte_$(RESOLUTION)/cmcc_lte_$(RESOLUTION)_kernel.raw
    else
    RESOURCE_OBJ_LIST +=   \
    	$(BOOT_LOGO_DIR)/cmcc_$(RESOLUTION)/cmcc_$(RESOLUTION)_uboot.raw \
    	$(BOOT_LOGO_DIR)/cmcc_$(RESOLUTION)/cmcc_$(RESOLUTION)_kernel.raw
    endif
    endif
    
    ifeq ($(filter OP02, $(subst _, $(space), $(MTK_REGIONAL_OP_PACK))), OP02)
    ifeq ($(strip $(SUPPORT_PROTOCOL1_RAT_CONFIG)), yes)
    RESOURCE_OBJ_LIST +=   \
    	$(BOOT_LOGO_DIR)/cu_lte_$(RESOLUTION)/cu_lte_$(RESOLUTION)_uboot.raw \
    	$(BOOT_LOGO_DIR)/cu_lte_$(RESOLUTION)/cu_lte_$(RESOLUTION)_kernel.raw
    else
    RESOURCE_OBJ_LIST +=   \
    	$(BOOT_LOGO_DIR)/cu_$(RESOLUTION)/cu_$(RESOLUTION)_uboot.raw \
    	$(BOOT_LOGO_DIR)/cu_$(RESOLUTION)/cu_$(RESOLUTION)_kernel.raw
    endif
    endif
    
    ifeq ($(filter OP09, $(subst _, $(space), $(MTK_REGIONAL_OP_PACK))), OP09)
    ifeq ($(strip $(SUPPORT_PROTOCOL1_RAT_CONFIG)), yes)
    RESOURCE_OBJ_LIST +=   \
    	$(BOOT_LOGO_DIR)/ct_lte_$(RESOLUTION)/ct_lte_$(RESOLUTION)_uboot.raw \
    	$(BOOT_LOGO_DIR)/ct_lte_$(RESOLUTION)/ct_lte_$(RESOLUTION)_kernel.raw
    else
    RESOURCE_OBJ_LIST +=   \
    	$(BOOT_LOGO_DIR)/ct_$(RESOLUTION)/ct_$(RESOLUTION)_uboot.raw \
    	$(BOOT_LOGO_DIR)/ct_$(RESOLUTION)/ct_$(RESOLUTION)_kernel.raw
    endif
    endif
    
    endif
    
    GENERATED += \
                $(BOOT_LOGO_RESOURCE) \
                $(LOGO_IMAGE) \
                $(addprefix $(BUILDDIR)/,$(RESOURCE_OBJ_LIST))
    
    
    all:: $(LOGO_IMAGE)
    
    $(LOGO_IMAGE):$(MKIMG) $(BOOT_LOGO_RESOURCE)
    	@echo "MKING $(LOGO_IMAGE) start"
    	@echo $(MKIMG)
    	@echo $(BOOT_LOGO_RESOURCE)
    	@echo $(LOGO_IMAGE)
    	$(MKIMG) $(BOOT_LOGO_RESOURCE) $(IMG_HDR_CFG) > $(LOGO_IMAGE)
    
    $(BOOT_LOGO_RESOURCE): $(addprefix $(BUILDDIR)/,$(RESOURCE_OBJ_LIST)) $(ZPIPE)
    	@$(MKDIR)
    	@echo "zpiping "
    	$(ZPIPE) -l 9 $@ $(addprefix $(BUILDDIR)/,$(RESOURCE_OBJ_LIST))
    
    
    $(BUILDDIR)/%.raw: %.bmp $(BMP_TO_RAW)
    	@$(MKDIR)
    	@echo "Compiling_BMP_TO_RAW $<"
    	$(BMP_TO_RAW) $@ $<
    
    
    
    • 根据上述代码,可知RESOURCE_OBJ_LIST的序列号一共60张图片如下:
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_uboot.raw //序号0
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_battery.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_low_battery.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_charger_ov.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_0.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_1.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_2.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_3.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_4.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_5.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_6.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_7.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_8.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_9.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_num_percent.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_01.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_02.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_03.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_04.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_05.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_06.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_07.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_08.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_09.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_animation_10.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_01.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_02.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_03.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_04.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_05.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_06.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_07.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_08.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_09.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_10_10.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_bg.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_img.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_bat_100.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_kernel.raw \ // 序号38
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_low_battery01.raw \ //序号39
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_low_battery02.raw \ //序号40
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_low_battery_remind.raw //序号41
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_100.raw \ 序号42
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_ani-01.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_ani-02.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_ani-03.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_ani-04.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_ani-05.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_ani-06.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_00.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_01.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_02.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_03.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_04.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_05.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_06.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_07.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_08.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_09.raw \
    $(BOOT_LOGO_DIR)/$(BASE_LOGO)/$(BASE_LOGO)_fast_charging_percent.raw //序号59 一共60张
    

    logo.bin生成过程

    在这里插入图片描述

    • raw文件位置
    out/target/product/g2020eir_v1_ga_bf/obj/BOOTLOADER_OBJ/build-g2020eir_v1_ga_bf/dev/logo/hdplus
    
    hdplus_bat_10_01.raw         hdplus_fast_charging_05.raw
    hdplus_bat_10_02.raw         hdplus_fast_charging_06.raw
    hdplus_bat_10_03.raw         hdplus_fast_charging_07.raw
    hdplus_bat_10_04.raw         hdplus_fast_charging_08.raw
    hdplus_bat_10_05.raw         hdplus_fast_charging_09.raw
    hdplus_bat_10_06.raw         hdplus_fast_charging_100.raw
    hdplus_bat_10_07.raw         hdplus_fast_charging_ani-01.raw
    hdplus_bat_10_08.raw         hdplus_fast_charging_ani-02.raw
    hdplus_bat_10_09.raw         hdplus_fast_charging_ani-03.raw
    hdplus_bat_100.raw           hdplus_fast_charging_ani-04.raw
    hdplus_bat_10_10.raw         hdplus_fast_charging_ani-05.raw
    hdplus_bat_animation_01.raw  hdplus_fast_charging_ani-06.raw
    hdplus_bat_animation_02.raw  hdplus_fast_charging_percent.raw
    hdplus_bat_animation_03.raw  hdplus_kernel.raw
    hdplus_bat_animation_04.raw  hdplus_low_battery01.raw
    hdplus_bat_animation_05.raw  hdplus_low_battery02.raw
    hdplus_bat_animation_06.raw  hdplus_low_battery.raw
    hdplus_bat_animation_07.raw  hdplus_low_battery_remind.raw
    hdplus_bat_animation_08.raw  hdplus_num_0.raw
    hdplus_bat_animation_09.raw  hdplus_num_1.raw
    hdplus_bat_animation_10.raw  hdplus_num_2.raw
    hdplus_bat_bg.raw            hdplus_num_3.raw
    hdplus_bat_img.raw           hdplus_num_4.raw
    hdplus_battery.raw           hdplus_num_5.raw
    hdplus_charger_ov.raw        hdplus_num_6.raw
    hdplus_fast_charging_00.raw  hdplus_num_7.raw
    hdplus_fast_charging_01.raw  hdplus_num_8.raw
    hdplus_fast_charging_02.raw  hdplus_num_9.raw
    hdplus_fast_charging_03.raw  hdplus_num_percent.raw
    hdplus_fast_charging_04.raw  hdplus_uboot.raw
    
    
    展开全文
  • 目录1、 概述 32、 系统简介 42.1、系统组成 42.1.1、来车启动模块 52.1.2、智能采集设备 62.1.3、智能分析模块 72.2、系统特点 73、 现场拍摄图片效果 84、 附录 101、概述2010年全国机车保有量达到19000台左右,...


    目录

    1  概述    3

    2  系统简介    4

    2.1、系统组成     4

    2.1.1、来车启动模块     5

    2.1.2、智能采集设备     6

    2.1.3、智能分析模块     7

    2.2、系统特点     7

    3  现场拍摄图片效果    8

    4  附录    10

     


     

    1、概述

    2010年全国机车保有量达到19000台左右,动车组配置达到1000列左右,客车保有量达到4.5万辆左右,货车保有量达到70万辆(含企业自备车10万辆)。如此多的机车车辆,要人工掌握其实时情况,需要很大工作量。采用铁路车号自动识别系统,在车站、分界站通过该系统自动采集列车编组,在编组站通过该系统自动进行车辆追踪,快捷、方便、及时,极大地提高铁路运输管理效率。

    目前铁道部已经投入使用的ATIS(铁路车号自动识别系统)中主要采用AEI射频车号识别模块识别车号,需在车辆底部安装电子标签,而由于电子标签的损坏、受污染等情况不可避免,直接导致部分车辆的车型车号无法获取。在机务专业车号自动识别系统(ATIS)技术规范(详见附录)第五章中指出,采用使用图像识别的校核设备对此情况进行弥补。原文如下:

    机务AEI设备由电子标签识别设备、校核设备组成,校核设备采用图像识别技术,可以弥补由于电子标签损坏、失效、丢失、标签信息错误以及电子标签识别设备故障等原因导致的无法正确读取车号信息的现象,电子标签识别与图像识别相结合,从而实现机车车号信息采集的“双保险”,进一步保障数据的真实性、完整性和准确性,有助于提升作业效率。

    奇辉铁路智能车号识别系统,是通过我司自主研发光学智能相机采集小于350KM/H时速下的所有车号信息,并对获取到的车号图像进行分析处理,自动识别出当前图像车号信息。可解决目前AEI设备由于机车标签故障、丢失无法识别车号的问题。适用于机车、动车等不同车型、不同车速。昼夜情况下动车识别率可达100%,机车识别率可达90%。


    2、系统简介

    2.1、系统组成

    本套系统主要有前端来车启动模块、智能采集模块、智能分析模块组成。通过图像识别技术智能识别车号信息。系统组成示意图如图2.1所示。

    2.1 系统组成示意图


     

    2.1.1、来车启动模块

    来车启动模块主要由车轮传感器(部分参数如表2.1所示)与信号采集设备(主要参数如表2.2所示)组成,用于启动车号识别系统。

     

    2.1 车轮传感器部分参数

    1122.jpg

    TWS系列车轮传感器

    工作电源

    DC 12V ±1V

    端子说明

    棕(VCC)蓝(GND)黑(OUT)

    工作消耗电流

    22mA

    输出电压

    12V

    输出电流

    20 mA

    输出格式

    NPN

    测速范围

    0 km/h~150km/h

    感应距离

    0mm~20 mm

    工作温度

    -30℃~70℃

    重量

    400 g

    输出脉冲

    正脉冲(没有感应导磁物体时输出0V,感应到导磁物体时输出12V脉冲)

    防护等级

    IP67

    被测物体

    导磁物质

    2.2 信号采集设备部分参数

    产品特点

    工业级设计,可以在恶劣环境中正常工作;拥有较强的抗干扰能力,防高压,静电,电击;在软件上采用了通讯干扰自动复位技术。

    供电电压

    12V DC供电

    高度集成

    采用集成电路设计,高度集成

    通讯接口

    一路485串口通讯

    其他接口

    2路光耦输入

    低功耗

    运行稳定,小于0.6W

    宽工作温度

    -30℃~70℃

    2.1.2、智能采集设备

    智能采集设备主要包括高清彩色相机、相机补光灯。如图2.2所示。

    2.2 智能采集模块

    模块部分参数如表2.3所示。

    2.3 模块部分参数

    高清采集相机

    镜头

    1. 2.2-8MM镜头

    拍摄频率

    20-40Hz

    图像尺寸

    1024X912

    图像颜色

    彩色

    相机补光灯

    补偿光源

    60w定制补偿光源

     


     

    2.1.3、智能分析模块

    智能分析模块通过智能识别算法对采集的图片进行智能分析并对识别结果进行统计,同时提供软件接口,可实时预览过车图片并进行手动更改。模块界面图如图2.3所示。

    2.3 模块界面图

    2.2、系统特点

    • 无需对车体进行任何改动和添加标签

    • 车号图片可视化,避免车号误判及漏车

    • 可识别的列车速度达350km/h

    • 目前可识别车型包括HXD3B,DF4DF4D,HXN3SS3BSS3,后续可对车型数据库进行免费升级

    • 机车识别率可达90%以上


     

    3、现场拍摄图片效果

    现场实际应用所采集到的图片,白天效果图如图3.1所示,夜间效果图如图3.2所示,强光效果图如图3.3所示,逆光效果图如图3.4所示。

    3.1 白天效果图

    3.2 夜间效果 

     

    3.3 强光效果图

    3.4 逆光效果图


    转载于:https://blog.51cto.com/13461608/1979893

    展开全文
  • mogodb 安装和启动

    2019-04-17 11:22:45
    一、mogodb介绍(文章中一些概念和图片是网上整合来) MongoDB 是由C++语言编写,是一个基于分布式文件存储开源数据库系统。MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB...
  • SystemUI启动分析

    2020-12-22 14:52:49
    SystemUI 主要负责显示系统、应用状态,主要有以下几部分组成:导航栏(NavigationBar),快捷开关面板(QSPanel)和最近开启应用面板(RecentPanel)状、态栏(StatusBar)及锁屏音量调节对话框、RingTonePlayer播发器...
  • 这学期开始学习专业课,很多东西学了都还没有...2.单片机最小系统的组成: (1) 复位电路:启动后让单片机从初始状态开始执行程序 (2) 振荡电路:单片机是一种时许电路,必须要有脉冲信号才能工作,他的内部有一个时.
  • android系统开机动画设置方法介绍

    千次阅读 2016-03-27 11:11:47
    android开机画面由三部分组成,第一部分在bootloader启动时显示,第二部分在启动kernel时显示,第三部分在系统启动时(bootanimation)显示(动画) 2. bootloader开机图片 1) 一般使用rle格式图片,不同...
  • Minix文件系统概述

    2011-04-28 23:29:00
    参照《操作系统:设计与实现》,本文中的很多文字和图片来源于此书。MINIX文件系统是一个逻辑的、自包含的实体。在磁盘上它由六部分组成,分别是:引导块...超级块包含了文件系统的布局信息,它的主要功能是给出文件系
  • 来自:月光夕颜链接:jianshu.com/p/be6f529160b6图片来自网络1 什么是JVM?JVM是Java Virtual Machine(Java虚拟机)缩写,是通过在...JVM屏蔽了与操作系统平台相关信息,使得Java程序只需要生成在Java虚拟机上...
  • 二、MySQL系统如何启动memcached plugin。 1. memcached plugin与MySQL关系 该图是从MySQL官方文档里对memcached介绍图片。从图中可以看出,memcached结构是由三个部份组成:memcached plugin、innodb_...
  • 同时对系统的开发原理、系统的功能特点和设计方案进行了介绍。 【关键词】ASP.NET ADO.NET 新闻 管理 数据库 随着Internet的普及,越来越多的企业建立了自己的WWW网站,企业通过网站可以展示产品,发布最新动态,与...
  • 二、MySQL系统如何启动memcached plugin。1. memcached plugin与MySQL关系该图是从MySQL官方文档里对memcached介绍图片。从图中可以看出,memcached结构是由三个部份组成:memcached plugin、innodb_memcached...
  • 3、pom.xml里增加tomcat7启动插件,方便希望使用tomcat7插件启动的用户。 4、文档管理自动获取描述长度增加到最长450字符。 5、友情链接列表logo限制大小,避免logo尺寸过大导致页面显示不好看。 6、InfoPage和...
  • Android 开机动画

    千次阅读 2010-09-19 10:40:00
    <br />1.... bootloader开机图片 1) 一般使用rle格式图片,不同android系统不同此图片可能放在不同位置,以下实例均以G1为例,G1放在splash分区中 2) 制作rle格式开机图片 a)
  • 写字板是Windows系统自带一个文档处理程序利用它可以在文档中输入和编辑文本插入图片声音和视频等还可以对文档进行编辑设置格式和打印等操作其扩展名为 .rtf 在开始菜单所有程序附件文件夹中单击写字板项可启动...
  • 其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理Struts和Hibernate。 WebStorage HTML新增的本地存储解决...
  • 一个牛人提供GIS源码(很好)

    千次下载 热门讨论 2010-08-25 22:49:21
    应该讲这也仅仅是电子地图查询系统的更新而已,没有太大的特色,只是做了些比较花的功能而已。 特色一:系统采用了双重数据库,对于如果无法连接SQL Server数据库的情况将提供备用的ACCESS数据库支持。 特色二:系统...
  • 如有错误,恳请指出Docker基本组成ClientDaemonImage容器基石层叠只读文件系统联合加载(union mount)Container通过镜像启动启动和执行阶段写时复制(copy on write)RegistryDocker基本组成图片来自极客...
  • 7. 将系统设定中‘开机显示通知栏图标’改为‘开机启动’和‘显示图标’两个独立选项,增加定制灵活性。 [新增] 1. 选定一个记录后,只需轻摇手机即可复制用户名或密码到剪贴板,再粘贴到其他程序中使用。 2. ...
  • 安卓开机动画替换

    2014-11-08 16:48:14
    Android平台图形系统启动,出现含闪动ANDROID字样动画图片(start)。他是由前景和背景两张PNG图片组成,这两张图片存在与/system/framework/framework-res.apk文件中。 前景图片(android-logo-mask.png)上...
  • 7. 将系统设定中‘开机显示通知栏图标’改为‘开机启动’和‘显示图标’两个独立选项,增加定制灵活性。 [新增] 1. 选定一个记录后,只需轻摇手机即可复制用户名或密码到剪贴板,再粘贴到其他程序中使用。 2. ...
  • Android开机画面

    千次阅读 2012-03-08 22:15:17
    android开机画面由三部分组成,第一部分在bootloader启动时显示,第二部分在启动kernel时显示,第三部分在系统启动时(bootanimation)显示(动画) 2. bootloader开机图片 1) 一般使用rle格式图片,不同...
  • service 系统服务target 多个unit组成的组device 硬件设备mount 文件系统挂载点automount 自动挂载点path 文件或路径scope 不是由systemd启动的外部进程slice 进程组snapshot systemd快照socket 进程间通信套接字...
  • android 开机动画

    2010-11-30 11:34:00
    <br />1.... bootloader开机图片 1) 一般使用rle格式图片,不同android系统不同此图片可能放在不同位置,以下实例均以G1为例,G1放在splash分区中 2) 制作rle格式开机图片 a)
  • <div><p>最近关于 Serverless 讨论越来越多。看似与前端关系不大 Serverless,其实早已和前端有了颇深渊源,并且将掀起新前端技术变革。本文主要就根据个人理解和总结,从前端开发模式...
  • 类加载器

    2018-12-03 17:20:21
    类加载器类加载器分类1、根类加载器2、扩展类加载器3、系统类加载器插入链接与图片如何插入一段漂亮代码片生成一个适合你列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个...
  • 此项目可选择硬盘开机优先级,按下按键,你可以进入它子选单,它会显示出已侦测到可以让您选择开机顺序硬盘,以用来启动系统。当然,这个选项要在你安装了两块或者两块以上系统才能选择! HDD Change ...
  • 8.8 使用系统函数检测服务器、数据库以及连接级别配置 246 8.8.1 确定每周第一天 246 8.8.2 查看当前会话使用语言 247 8.8.3 查看和设置当前连接锁超时设置 247 8.8.4 显示当前存储过程上下文嵌套...

空空如也

空空如也

1 2 3 4 5
收藏数 84
精华内容 33
关键字:

启动系统的组成图片