Commit gtk pos-demo

This commit is contained in:
Bhuvanchandra DV 2017-10-27 17:51:39 +05:30 committed by Sanchayan Maity
parent 4fbccab85a
commit 0b71a45ca7
35 changed files with 7186 additions and 0 deletions

3
.gitignore vendored
View file

@ -1,2 +1,5 @@
/.metadata/
RemoteSystemsTempFiles/
pos-demo/.cproject
pos-demo/.project

19
pos-demo/LICENSE Normal file
View file

@ -0,0 +1,19 @@
Copyright (c) 2013-2016 Toradex
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

112
pos-demo/Makefile Normal file
View file

@ -0,0 +1,112 @@
# file Makefile
# copyright Copyright (c) 2014 Toradex AG
# [Software License Agreement]
# author $Author$
# version $Rev$
# date $Date$
# brief a simple makefile to (cross) compile.
# uses the openembedded provided sysroot and toolchain
# target linux on Colibri T20 / Colibri T30 / Colibri VF50 / Colibri VF61 / Apalis T30 / Apalis IMX6Q/D
# caveats -
##############################################################################
# Setup your project settings
##############################################################################
# Set the input source files, the binary name and used libraries to link
SRCS = pos-elinux.o co-proc.o
PROG := pos
LIBS = -lm -lpthread
MACHINE ?= colibri-vf
# Set arch flags
ARCH_CFLAGS = -march=armv7-a -fno-tree-vectorize -mthumb-interwork -mfloat-abi=hard
ifeq ($(MACHINE), colibri-t20)
ARCH_FLAGS += -mfpu=vfpv3-d16 -mtune=cortex-a9
else ifeq ($(MACHINE), colibri-t30)
ARCH_FLAGS += -mfpu=neon -mtune=cortex-a9
else ifeq ($(MACHINE), colibri-vf)
ARCH_FLAGS += -mfpu=neon -mtune=cortex-a5
else ifeq ($(MACHINE), apalis-t30)
ARCH_FLAGS += -mfpu=neon -mtune=cortex-a9
else ifeq ($(MACHINE), apalis-imx6)
ARCH_FLAGS += -mfpu=neon -mtune=cortex-a9
CFLAGS += -DAPALIS_IMX6
else ifeq ($(MACHINE), colibri-imx6)
ARCH_FLAGS += -mfpu=neon -mtune=cortex-a9
CFLAGS += -DCOLIBRI_IMX6
else ifeq ($(MACHINE), colibri-imx7)
ARCH_FLAGS += -mfpu=neon -mtune=cortex-a7
CFLAGS += -DCOLIBRI_IMX7
else ifeq ($(MACHINE), apalis-tk1)
ARCH_FLAGS += -mfpu=neon -mtune=cortex-a15
CFLAGS += -DAPALIS_TK1
else
$(error MACHINE is not set to a valid target)
endif
# Set flags to the compiler and linker
CFLAGS += -O2 -g -Wall -DNV_IS_LDK=1 $(ARCH_CFLAGS) `$(PKG-CONFIG) --cflags gtk+-2.0` --sysroot=$(OECORE_TARGET_SYSROOT) -I$(OECORE_TARGET_SYSROOT)include
#LDFLAGS += $(OECORE_TARGET_SYSROOT)/lib/libsoc.a
LDFLAGS += `$(PKG-CONFIG) --libs gtk+-2.0` -rdynamic
##############################################################################
# Setup your build environment
##############################################################################
# Set the path to the oe built sysroot and
# Set the prefix for the cross compiler
OECORE_NATIVE_SYSROOT ?= /usr/local/oecore-x86_64/sysroots/x86_64-angstromsdk-linux
OECORE_TARGET_SYSROOT ?= /usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/
CROSS_COMPILE ?= $(OECORE_NATIVE_SYSROOT)usr/bin/arm-angstrom-linux-gnueabi/arm-angstrom-linux-gnueabi-
##############################################################################
# The rest of the Makefile usually needs no change
##############################################################################
# Set differencies between native and cross compilation
ifneq ($(strip $(CROSS_COMPILE)),)
LDFLAGS += -L$(OECORE_TARGET_SYSROOT)usr/lib -Wl,-rpath-link,$(OECORE_TARGET_SYSROOT)usr/lib -L$(OECORE_TARGET_SYSROOT)lib -Wl,-rpath-link,$(OECORE_TARGET_SYSROOT)lib
BIN_POSTFIX =
PKG-CONFIG = export PKG_CONFIG_SYSROOT_DIR=$(OECORE_TARGET_SYSROOT); \
export PKG_CONFIG_PATH=$(OECORE_TARGET_SYSROOT)/usr/lib/pkgconfig/; \
$(OECORE_NATIVE_SYSROOT)/usr/bin/pkg-config
else
# Native compile
PKG-CONFIG = pkg-config
ARCH_CFLAGS =
# Append .x86 to the object files and binaries, so that native and cross builds can live side by side
BIN_POSTFIX = .x86
endif
# Toolchain binaries
CC = $(CROSS_COMPILE)gcc
LD = $(CROSS_COMPILE)ld
STRIP = $(CROSS_COMPILE)strip
RM = rm -f
# Sets the output filename and object files
PROG := $(PROG)$(BIN_POSTFIX)
OBJS = $(SRCS:.c=$(BIN_POSTFIX).o)
DEPS = $(OBJS:.o=.o.d)
# pull in dependency info for *existing* .o files
-include $(DEPS)
.DEFAULT_GOAL := all
all: $(PROG)
$(PROG): $(OBJS) Makefile
$(CC) $(CFLAGS) $(OBJS) $(LIBS) $(LDFLAGS) -o $@
$(STRIP) $@
%$(BIN_POSTFIX).o: %.c
$(CC) -c $(CFLAGS) -o $@ $<
$(CC) -MM $(CFLAGS) $< > $@.d
clean:
$(RM) $(OBJS) $(PROG) $(DEPS)
.PHONY: all clean

4
pos-demo/README.md Normal file
View file

@ -0,0 +1,4 @@
# POS Demo
Point of sale demo example in GTK+ and Glade
###<img src="https://github.com/bhuvanchandra/images-repo/raw/master/images-pos/2016-02-02-094708_800x480_scrot.png" width="800" height="480">

87
pos-demo/co-proc-lib.h Normal file
View file

@ -0,0 +1,87 @@
/*
Toradex AG
CoProcLib.h
*/
#ifndef __COPROC_LIB_H__
#define __COPROC_LIB_H__
#include <sys/utsname.h>
#ifdef __cplusplus
extern "C" {
#endif
//wince data type
#ifndef DWORD
#define DWORD unsigned int
#endif
#define CPL_VER_MAJ 2
#define CPL_VER_MIN 0
#define CPL_VER_BUILD 0
// SoC family Type
#define PXA 1
#define TEG 2
#define VF 3
#define CPU_UNKNOWN 0
#define MAGIC_NO 4
//Defines for getPROCID
#define TYPE_PXA270 0x11
#define TYPE_MONAHANS 0x02
#define TYPE_PXA320 0x02
#define TYPE_PXA300 0x08
#define TYPE_PXA310 0x09
#define TYPE_TEGRA2 0x411FC09
#define TYPE_TEGRA3 0x412FC09
#define TYPE_VYBRID 0x410FC05
#define TYPE_IMX6 0x412FC09 + MAGIC_NO /* FIXME */
#define MODULE_FAMILY_COLIBRI 0
#define MODULE_FAMILY_APALIS 1
#define CPU_INFO "/proc/cpuinfo"
#define SOC_ID "/sys/bus/soc/devices/soc0/soc_id"
/*
Gets CPUID (Coprocessor 15, cr0)
Processor information
*/
DWORD getCPUID();
/*
Get Processor ID
Use this function to detect on which processor your program is running
*/
DWORD getPROCID();
/*
Description: Returns the library Version
Parameter:
Out-Parameter:
- pVerMaj: Returns the major version number. Set this parameter to NULL if not required.
- pVerMin: Returns the minor version number. Set this parameter to NULL if not required.
- pBuild: Returns the build number. Set this parameter to NULL if not required.
Return Value: No return value.
*/
void CPLGetLibVersion(DWORD *pVerMaj, DWORD *pVerMin, DWORD *pBuild);
//-------------------------------------------------------------------------
/// To findout SoC family type
/// @param[out] CPU_TYPE: choose between soc family i.e PXA or tegra
DWORD GetSoCType();
/*
Returns
CPU_TYPE: MODULE_FAMILY_COLIBRI or MODULE_FAMILY_APALIS
*/
DWORD getModuleFamily(char *moduleName);
#ifdef __cplusplus
}
#endif
#endif

178
pos-demo/co-proc.c Normal file
View file

@ -0,0 +1,178 @@
#include "co-proc-lib.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
//-------------------------------------------------------------------------
/// To findout SoC family type
/// @param[out] CPU_TYPE: choose between soc family i.e PXA or tegra
DWORD GetSoCType()
{
DWORD CPUtype = CPU_UNKNOWN;
if((getPROCID() == TYPE_PXA320)|
(getPROCID() == TYPE_PXA300)|
(getPROCID() == TYPE_PXA310)|
(getPROCID() == TYPE_PXA270)){
CPUtype = PXA;
}
else if((getPROCID() == TYPE_TEGRA2)|
(getPROCID() == TYPE_TEGRA3)){
CPUtype = TEG;
}
else if (getPROCID() == TYPE_VYBRID){
CPUtype = VF;
}
return CPUtype;
}
DWORD getCPUID(){
static unsigned int cpu_id = 0; /* this will stay for as long as the programm is executing */
if(cpu_id == 0){ /* first time this gets calculated */
char buf[256];
char *numStr;
FILE *file;
unsigned int res;
/* CPU type */
/*
012345678901234567890123456789
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x1
CPU part : 0xc09
CPU revision : 0
*/
file = fopen(CPU_INFO, "r");
if (file){
while (fgets(buf, 255, file)) {
if (strstr(buf, "CPU implementer")){
numStr = strstr(&buf[14], ": ");
(void)sscanf(&numStr[4], "%x", &res);
cpu_id = (res & 0xff) << 24;
}
else if (strstr(buf, "CPU variant")){
numStr = strstr(&buf[10], ": ");
(void)sscanf(&numStr[4], "%x", &res);
cpu_id |= (((res <<4) & 0xf0) | 0xf) << 16;
}
else if (strstr(buf, "CPU part")){
numStr = strstr(&buf[8], ": ");
(void)sscanf(&numStr[4], "%x", &res);
cpu_id |= (res & 0xfff) << 4;
}
else if (strstr(buf, "CPU revision")){
numStr = strstr(&buf[11], ": ");
(void)sscanf(&numStr[2], "%u", &res);
cpu_id |= (res & 0xf) ;
}
}
fclose(file);
}
else{
printf("CPU info not available!");
exit(-1);
}
cpu_id >>= 4;
file = fopen(SOC_ID, "r");
if(file){
while(fgets(buf, 255, file)){
if(strstr(buf, "i.MX6")){ /* Check for the id */
cpu_id += MAGIC_NO; /* If ID matches to i.MX6xx we are adding constant to cpuID inorder to make it unique:FIXME */
}
}
fclose(file);
}
}
return cpu_id; /* subsequent calls just return the pre-calculated value */
}
DWORD getPROCID(){
DWORD procID;
procID = getCPUID();
//procID = procID>>4; //Remove Stepping
if((((procID >> 4) >> 12) & 0x0f) == 5){ //PXA
return (procID & 0x03F); // Return only Product ID
}
else{
return procID; //return processor ID
}
}
void CPLGetLibVersion(DWORD *pVerMaj, DWORD *pVerMin, DWORD *pBuild){
if(pVerMaj)
*pVerMaj = CPL_VER_MAJ;
if(pVerMin)
*pVerMin = CPL_VER_MIN;
if(pBuild)
*pBuild = CPL_VER_BUILD;
}
DWORD getModuleFamily(char *moduleName){
#if 0
uname(&uNameData);
if(strstr(uNameData.nodename, "colibri")){
return MODULE_FAMILY_COLIBRI;
}
else if(strstr(uNameData.nodename, "apalis")){
return MODULE_FAMILY_APALIS;
}
#endif
char buf[256], hardware[128] = {0};
FILE *file = NULL;
char *start = NULL, *numStr = NULL, *end = NULL;
size_t len = 0;
file = fopen(CPU_INFO, "r"); /* Used for non-dt kernels */
if (file){
while (fgets(buf, 255, file)) {
if(strstr(buf, "Hardware")){
numStr = strstr(&buf[7], ":");
sprintf(hardware, "%s", numStr);
}
}
fclose(file);
start = strstr(hardware, "Toradex");
if (start != NULL) {
start += 8;
end = strstr(start, "Module");
if(end) len = end - start - 1;
else len = strcspn(start, "\n");
} else {
file = fopen("/sys/firmware/devicetree/base/model", "r"); /* e.g: Toradex Colibri VF61 on Colibri Evaluation Board */
if (file == NULL) {
file = fopen("/sys/bus/soc/devices/soc0/machine", "r"); /* e.g: Toradex Apalis iMX6Q on Apalis Evaluation Board */
}
if (file) {
while(fgets(buf, 255, file)){
start = strstr(buf, "Toradex");
if (start == NULL) {
printf("Invalid Machine!");
exit(-1);
}
start += 8;
end = strstr(start, "on");
if (end) len = end - start - 1;
else len = strlen(start);
}
fclose(file);
}
}
} else {
printf("CPU info not available!");
exit(-1);
}
strncpy(moduleName, start, len); /* for showing the module name on window title */
if (strstr(moduleName, "Colibri")) {
return MODULE_FAMILY_COLIBRI;
} else if (strstr(moduleName, "Apalis")) {
return MODULE_FAMILY_APALIS;
}
return -1;
}

BIN
pos-demo/co-proc.o Normal file

Binary file not shown.

1
pos-demo/co-proc.o.d Normal file
View file

@ -0,0 +1 @@
co-proc.o: co-proc.c co-proc-lib.h

View file

@ -0,0 +1,10 @@
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon[C]=pos-icon.png
Exec=/usr/bin/pos
Name[C]=POS Demo
Name=POS Demo
Icon=pos-icon.png
Name[en_IN]=POS Demo

View file

@ -0,0 +1,40 @@
*******************************
Toradex Apalis T30 Module
*******************************
CPU Name NVidia Tergra 3
CPU Type ARM Cortex-A9
CPU Cores 4x
CPU clock 1.4 GHz
RAM 2GB DDR3(32bit)
Flash 2GB NAND(8Bit eMMc)
Display Dual(Independent)
Graphics GeForce GPU
2D/3D Yes
HDMI No
VGA No
RGB 2048 x 1536 24bpp
Touch 4-wire
Audio Yes
Ext Bus 16 Bit
USB 3 + 1
I2C 3x + DDC
SPI 2x
One-Wire 1x
CF -
SD/MMC 2x
UART 4x
IrDA 1x
PWM 4x
GPIO up to 127
Analog I/P 4x
PCIe 1x1, 1x4
SeralATA 1x
SDIO/SD/MMC 1x8bit, 1x4bit
Ethernet 10/100/1000 Mbit
Camera 2x
CAN 2x
OS WinCE2013/7/6,Linux
Size 82.0x45.0x6.0 mm
Temperature 0 to 70 Degree C
Power 1.4 - 6.0 W
Availability till 2018

View file

@ -0,0 +1,36 @@
*******************************
Toradex Colibri PXA270 Module
*******************************
CPU Name Marvell PXA270
CPU Type Intel Xscale ARM
CPU Cores 1x
CPU clock 312/520 MHz
RAM 64MB SDRAM(32bit)
Flash 32MB NOR
Display Single
Graphics Inbuilt Controller
2D/3D No
HDMI No
VGA No
RGB 1024 x 768 18bpp
Touch 4/5-wire
Audio Yes
Ext Bus 32 Bit
USB 2x
I2C 1x
SPI 3x
One-Wire No
CF Yes
SD/MMC 1x
UART 3x
IrDA 1x
PWM 4x
GPIO up to 85
Analog I/P 4x
Ethernet 10/100 Mbit
Camera 1x
OS WinCE 5.0 & 6.0
Size 67.6x36.7x6.2 mm
Temperature -10 to 70 Degree C
Power 0.45 - 1.4 W
Availability till 2017

View file

@ -0,0 +1,36 @@
*******************************
Toradex Colibri PXA300 Module
*******************************
CPU Name Marvell PXA300
CPU Type Intel Xscale ARM
CPU Cores 1x
CPU clock 208 MHz
RAM 64MB DDR(16bit)
Flash 128MB NAND(8Bit)
Display Single
Graphics Inbuilt Controller
2D/3D No
HDMI No
VGA No
RGB 1024 x 768 18bpp
Touch -
Audio -
Ext Bus 16 Bit
USB 2x
I2C 1x
SPI 3x
One-Wire 1x
CF -
SD/MMC 2x
UART 3x
IrDA 1x
PWM 4x
GPIO up to 92
Analog I/P -
Ethernet 10/100 Mbit
Camera 1x
OS WinCE 5.0 & 6.0
Size 67.6x36.7x6.2 mm
Temperature 0 to 70 Degree C
Power 0.35 - 0.85 W
Availability till 2017

View file

@ -0,0 +1,36 @@
*******************************
Toradex Colibri PXA310 Module
*******************************
CPU Name Marvell PXA310
CPU Type Intel Xscale ARM
CPU Cores 1x
CPU clock 624 MHz
RAM 128MB DDR(16bit)
Flash 512MB NAND(8Bit)
Display Single
Graphics Inbuilt Controller
2D/3D No
HDMI No
VGA No
RGB 1024 x 768 18bpp
Touch 4/5-wire
Audio Yes
Ext Bus 16 Bit
USB 2x
I2C 1x
SPI 3x
One-Wire 1x
CF -
SD/MMC 2x
UART 3x
IrDA 1x
PWM 4x
GPIO up to 92
Analog I/P 4x
Ethernet 10/100 Mbit
Camera 1x
OS WinCE 5.0 & 6.0
Size 67.6x36.7x6.2 mm
Temperature -20 to 85 Degree C
Power 0.7 - 1.5 W
Availability till 2017

View file

@ -0,0 +1,37 @@
*******************************
Toradex Colibri PXA320 Module
*******************************
CPU Name Marvell PXA320
CPU Type Intel Xscale ARM
CPU Cores 1x
CPU clock 806 MHz
RAM 128MB DDR(16bit)
Flash 512MB NAND(8Bit)
Display Single
Graphics Inbuilt Controller
2D/3D No
HDMI No
VGA No
RGB 1024 x 768 18bpp
Touch 4/5-wire
Audio Yes
Ext Bus 16 Bit
USB 2x
I2C 1x
SPI 3x
One-Wire 1x
CF Yes
SD/MMC 2x
UART 3x
IrDA 1x
PWM 4x
GPIO up to 93
Analog I/P 4x
Ethernet 10/100 Mbit
Camera 1x
OS WinCE 5.0 & 6.0
Size 67.6x36.7x6.2 mm
Temperature 0 to 70 Degree C
-40 to 85 Degree C
Power 0.7 - 1.7 W
Availability till 2017

View file

@ -0,0 +1,37 @@
*******************************
Toradex Colibri T20 Module
*******************************
CPU Name NVidia Tergra 2
CPU Type ARM Cortex-A9
CPU Cores 2x
CPU clock 1.0 GHz
RAM 256/512MB DDR2 32bit
Flash 512MB/1GB NAND 8Bit
Display Dual(Independent)
Graphics GeForce GPU
2D/3D Yes
HDMI No
VGA No
RGB 1920 x 1200 24bpp
Touch 4/5-wire
Audio Yes
Ext Bus 32 Bit
USB 2x
I2C 2x + DDC
SPI 3x
One-Wire 1x
CF -
SD/MMC 2x
UART 5x
IrDA 1x
PWM 4x
GPIO up to 110
Analog I/P 4x
Ethernet 10/100 Mbit
Camera 1x
OS WinCE 6.0/7.0,Linux
Size 67.6x36.7x6.2 mm
Temperature 0 to 70 Degree C
-40 to 85 Degree C
Power 1.1 - 2.8 W
Availability till 2017

View file

@ -0,0 +1,36 @@
*******************************
Toradex Colibri T30 Module
*******************************
CPU Name NVidia Tergra 3
CPU Type ARM Cortex-A9
CPU Cores 4x
CPU clock 1.4 GHz
RAM 1GB DDR3(32bit)
Flash 2GB NAND(8Bit eMMc)
Display Dual(Independent)
Graphics GeForce GPU
2D/3D Yes
HDMI No
VGA No
RGB 2048 x 1536 24bpp
Touch 4-wire
Audio Yes
Ext Bus 16 Bit
USB 2x
I2C 3x + DDC
SPI 5x
One-Wire 1x
CF -
SD/MMC 2x
UART 5x
IrDA 1x
PWM 4x
GPIO up to 110
Analog I/P 4x
Ethernet 10/100 Mbit
Camera 1x
OS WinCE 6.0/7.0,Linux
Size 67.6x36.7x6.2 mm
Temperature 0 to 70 Degree C
Power 1.4 - 5.1 W
Availability till 2018

View file

@ -0,0 +1,29 @@
*******************************
Toradex Robin Z510S Module
*******************************
CPU Name Intel Atom Z510
CPU Type x86
CPU Cores 1x
CPU clock 1.1 GHz
RAM 512MB DDR2 400MHz
Flash 2GB SSD on IDE
Display Dual(Independent)
Graphics Integrated Graphics
PCIe 1x1
USB 7 x USB2.0
I2C 1x
GPIOs 8xGPIO
Ethernet 10/100/1000 Mbit
Serial ATA 1x
SDIO/SD/MMC 2xSDIO
LPC 1x
SMB 1x
VideoDecoder MPEG2/HD/H.264
VGA 1920x1080
HDA 2x
OS WinXP Embedded/WePOS/Win7/WES7/WinCE6/Linux
BIOS Award
Size 84.0x55.0x10.8 mm
Temperature 0 to 60 Degree C
Power 4.7 - 6.9W
Availability till 2017

View file

@ -0,0 +1,29 @@
*******************************
Toradex Robin Z530L Module
*******************************
CPU Name Intel Atom Z530
CPU Type x86
CPU Cores 1x
CPU clock 1.6 GHz
RAM 1GB DDR2
Flash 4GB SSD on IDE
Display Dual(Independent)
Graphics Integrated Graphics
PCIe 1x1
USB 7 x USB2.0
I2C 1x
GPIOs 8xGPIO
Ethernet 10/100/1000 Mbit
SerialATA 1x
SDIO/SD/MMC 2xSDIO
LPC 1x
SMD 1x
VideoDecoder MPEG2/HD/H.264
VGA 1920x1080
HDA 2x
OS WinXP Embedded/WePOS/Win7/WES7/WinCE6/Linux
BIOS Award
Size 84.0x55.0x10.8 mm
Temperature 0 to 60 Degree C
Power 4.7 - 6.9W
Availability till 2017

View file

@ -0,0 +1,29 @@
*******************************
Toradex Robin Z530M Module
*******************************
CPU Name Intel Atom Z530
CPU Type x86
CPU Cores 1x
CPU clock 1.6 GHz
RAM 512MB DDR2
Flash 2GB SSD on IDE
Display Dual(Independent)
Graphics Integrated Graphics
PCIe 1x1
USB 7 x USB2.0
I2C 1x
GPIOs 8xGPIO
Ethernet 10/100/1000 Mbit
SerialATA 1x
SDIO/SD/MMC 2xSDIO
LPC 1x
SMD 1x
VideoDecoder MPEG2/HD/H.264
VGA 1920x1080
HDA 2x
OS WinXP Embedded/WePOS/Win7/WES7/WinCE6/Linux
BIOS Award
Size 84.0x55.0x10.8 mm
Temperature 0 to 60 Degree C
Power 4.7 - 6.9W
Availability till 2017

View file

@ -0,0 +1,9 @@
*******************************
Please visit our website
www.toradex.com
*******************************

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
pos-demo/pos Executable file

Binary file not shown.

385
pos-demo/pos-elinux.c Normal file
View file

@ -0,0 +1,385 @@
#include <gtk/gtk.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <termios.h>
#include <sys/stat.h>
#include "pos-elinux.h"
#include "co-proc-lib.h"
void close_app(GtkWidget* widget,gpointer user_data)
{
printf("quit\n");
gtk_main_quit();
}
int serial_init(void)
{
struct termios tio;
struct termios old_stdio;
int ttyFd;
char *ttyDevPath;
tcgetattr(STDOUT_FILENO, &old_stdio);
memset(&tio,0,sizeof(tio));
tio.c_iflag = 0;
tio.c_oflag = 0;
/* 8n1, see termios.h for more information */
tio.c_cflag = CS8 |CREAD | CLOCAL;
tio.c_lflag = 0;
tio.c_cc[VMIN] = 1;
tio.c_cc[VTIME] = 5;
ttyDevPath = "/dev/ttyLP2";
switch (getPROCID()){
case TYPE_PXA270:
case TYPE_PXA320:
case TYPE_PXA300:
case TYPE_PXA310:
break;
case TYPE_TEGRA2:
ttyDevPath = "/dev/ttyHS3";
break;
case TYPE_TEGRA3:
ttyDevPath = "/dev/ttyHS3";
break;
case TYPE_VYBRID:
ttyDevPath = "/dev/ttyLP2";
break;
case TYPE_IMX6:
ttyDevPath = "/dev/ttymxc2";
break;
default:
ttyDevPath = "/dev/ttyLP2";
break;
}
ttyFd = open(ttyDevPath, O_RDWR | O_NONBLOCK);
if (ttyFd < 0)
perror("tty open failed!");
cfsetospeed(&tio, BAUD_RATE); /* 9600 baud */
cfsetispeed(&tio, BAUD_RATE); /* 9600 baud */
tcsetattr(ttyFd, TCSANOW, &tio);
return ttyFd;
}
void serial_print(char *filePath)
{
FILE *fileDescriptor;
int fileSize, tty_fd;
unsigned char c = 'D';
struct stat st; /* for finding the size of the file */
fileDescriptor = fopen(filePath, "r+b");
stat(filePath, &st);
fileSize = st.st_size;
tty_fd = serial_init();
while (1) {
if (fileSize > 1) {
fread(&c, 1, 1, (FILE *) fileDescriptor);
write(tty_fd, &c, 1);
fileSize -= 1;
} else {
fread(&c, 1, 1, fileDescriptor);
write(tty_fd, &c, 1);
fileSize = 0;
break;
}
}
fclose(fileDescriptor);
close(tty_fd);
//tcsetattr(STDOUT_FILENO, TCSANOW, &old_stdio);
}
void pxa270_clicked_cb(GtkButton *button, gpointer user_data)
{
serial_print(PXA270);
serial_print(END);
g_print("pxa270 clicked\n");
}
void pxa300_clicked_cb(GtkButton *button, gpointer user_data)
{
serial_print(PXA300);
serial_print(END);
g_print("pxa300 clicked\n");
}
void pxa310_clicked_cb(GtkButton *button, gpointer user_data)
{
serial_print(PXA310);
serial_print(END);
g_print("pxa310 clicked\n");
}
void pxa320_clicked_cb(GtkButton *button, gpointer user_data)
{
serial_print(PXA320);
serial_print(END);
g_print("pxa320 clicked\n");
}
void colibri_t20_clicked_cb(GtkButton *button, gpointer user_data)
{
serial_print(COLIBRIT20);
serial_print(END);
g_print("colibriT20 clicked\n");
}
void colibri_t30_clicked_cb(GtkButton *button, gpointer user_data)
{
serial_print(COLIBRIT30);
serial_print(END);
g_print("colibriT30 clicked\n");
}
void apalis_t30_clicked_cb(GtkButton *button, gpointer user_data)
{
serial_print(APALIST30);
serial_print(END);
g_print("apalisT30 clicked\n");
}
void z530l_clicked_cb(GtkButton *button, gpointer user_data)
{
serial_print(ROBINZ530L);
serial_print(END);
g_print("robinz530L clicked\n");
}
void z530m_clicked_cb(GtkButton *button, gpointer user_data)
{
serial_print(ROBINZ530M);
serial_print(END);
g_print("robinz510S clicked\n");
}
void z510s_clicked_cb(GtkButton *button, gpointer user_data)
{
serial_print(ROBINZ510S);
serial_print(END);
g_print("robinz510S clicked\n");
}
void done_clicked_cb(GtkWidget *widget, customData *data)
{
g_print("Quotation\n");
}
void tb_good_item_toggled_cb(GtkToggleButton *tButton, customData *data)
{
if(gtk_toggle_button_get_active (tButton)) {
gtk_label_set_text(data->good_item, "Good Item");
} else {
gtk_label_set_text(data->good_item, "Bad Item");
}
}
void select_colibri_clicked_cb(GtkWidget *widget, customData *data)
{
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_colibri_pxa270, TRUE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_colibri_pxa300, TRUE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_colibri_pxa310, TRUE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_colibri_pxa320, TRUE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_colibri_t20, TRUE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_colibri_t30, TRUE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_colibri_eval_board, TRUE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_iris_board, TRUE);
}
void select_apalis_clicked_cb(GtkWidget *widget, customData *data)
{
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_apalis_t30, TRUE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_apalis_eval_board, TRUE);
}
void select_robin_clicked_cb(GtkWidget *widget, customData *data)
{
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_robin_z530l, TRUE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_robin_z530m, TRUE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_robin_z510s, TRUE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_daisy_board, TRUE);
}
void select_all_clicked_cb(GtkWidget *widget, customData *data)
{
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_colibri_pxa270, TRUE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_colibri_pxa300, TRUE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_colibri_pxa310, TRUE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_colibri_pxa320, TRUE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_colibri_t20, TRUE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_colibri_t30, TRUE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_colibri_eval_board, TRUE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_iris_board, TRUE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_apalis_t30, TRUE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_apalis_eval_board, TRUE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_robin_z530l, TRUE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_robin_z530m, TRUE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_robin_z510s, TRUE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_daisy_board, TRUE);
}
void deselect_all_clicked_cb(GtkWidget *widget, customData *data)
{
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_colibri_pxa270, FALSE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_colibri_pxa300, FALSE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_colibri_pxa310, FALSE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_colibri_pxa320, FALSE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_colibri_t20, FALSE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_colibri_t30, FALSE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_colibri_eval_board, FALSE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_iris_board, FALSE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_apalis_t30, FALSE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_apalis_eval_board, FALSE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_robin_z530l, FALSE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_robin_z530m, FALSE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_robin_z510s, FALSE);
gtk_toggle_button_set_active((GtkToggleButton *)data->cb_daisy_board, FALSE);
}
void colorMe(GtkWidget *objectId)
{
GdkColor color;
gdk_color_parse( "#000052528888", &color );
gtk_widget_modify_bg(GTK_WIDGET(objectId), GTK_STATE_NORMAL, &color);
gtk_widget_modify_bg(GTK_WIDGET(objectId), GTK_STATE_PRELIGHT, &color);
gtk_widget_modify_bg(GTK_WIDGET(objectId), GTK_STATE_ACTIVE, &color);
}
int main (int argc, char **argv)
{
GtkBuilder *gtkBuilder;
GtkWidget *mainwin;
GtkWidget *pxa270, *pxa300, *pxa310, *pxa320, *colibriT20, *colibriT30, *apalisT30, *z530L, *z530M, *z510S;
GtkWidget *select_colibri, *select_apalis, *select_robin, *select_all, *deselect_all, *done;
GtkWidget *tb_good_item, *remove_item, *bad_item, *print_bill, *quit, *clear_good_stock, *clear_bad_stock, *g_item, *g_in_stock, *b_item, *b_in_stock;
GtkWidget *c_pxa270, *c_pxa300, *c_pxa310, *c_pxa320, *c_t20_v1, *c_t20_v2, *c_t30_v1, *c_t30_v2;
customData data;
gtk_set_locale();
/* Initialize the widget set */
gtk_init (&argc, &argv);
/* Create the main window */
gtkBuilder= gtk_builder_new();
gtk_builder_add_from_file(gtkBuilder, POS_ELINUX_GLADE, NULL);
gtk_builder_connect_signals (gtkBuilder, &data);
mainwin= GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "window"));
pxa270 = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "pxa270"));
colorMe(pxa270);
pxa300 = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "pxa300"));
colorMe(pxa300);
pxa310 = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "pxa310"));
colorMe(pxa310);
pxa320 = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "pxa320"));
colorMe(pxa320);
colibriT20 = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "colibri-t20"));
colorMe(colibriT20);
colibriT30 = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "colibri-t30"));
colorMe(colibriT30);
apalisT30 = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "apalis-t30"));
colorMe(apalisT30);
z530L = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "z530l"));
colorMe(z530L);
z530M = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "z530m"));
colorMe(z530M);
z510S = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "z510s"));
colorMe(z510S);
select_colibri = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "select-colibri"));
colorMe(select_colibri);
select_apalis = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "select-apalis"));
colorMe(select_apalis);
select_robin = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "select-robin"));
colorMe(select_robin);
select_all = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "select-all"));
colorMe(select_all);
deselect_all = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "deselect-all"));
colorMe(deselect_all);
done = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "done"));
colorMe(done);
remove_item = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "remove-item"));
colorMe(remove_item);
bad_item = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "bad-item"));
colorMe(bad_item);
print_bill = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "print-bill"));
colorMe(print_bill);
clear_good_stock = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "clear-good-stock"));
colorMe(clear_good_stock);
clear_bad_stock = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "clear-bad-stock"));
colorMe(clear_bad_stock);
quit = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "quit"));
colorMe(quit);
tb_good_item = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "tb-good-item"));
colorMe(tb_good_item);
data.good_item = GTK_LABEL(gtk_builder_get_object(gtkBuilder,"good-item"));
c_pxa270 = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "c-pxa270"));
colorMe(c_pxa270);
c_pxa300 = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "c-pxa300"));
colorMe(c_pxa300);
c_pxa310 = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "c-pxa310"));
colorMe(c_pxa310);
c_pxa320 = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "c-pxa320"));
colorMe(c_pxa320);
c_t20_v1 = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "c-t20-v1"));
colorMe(c_t20_v1);
c_t20_v2 = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "c-t20-v2"));
colorMe(c_t20_v2);
c_t30_v1 = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "c-t30-v1"));
colorMe(c_t30_v1);
c_t30_v2 = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "c-t30-v2"));
colorMe(c_t30_v2);
g_item = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "g_item"));
colorMe(g_item);
g_in_stock = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "g_in-stock"));
colorMe(g_in_stock);
b_item = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "b_item"));
colorMe(b_item);
b_in_stock = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "b_in-stock"));
colorMe(b_in_stock);
data.cb_colibri_pxa270 = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "cb-colibri-pxa270"));
data.cb_colibri_pxa300 = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "cb-colibri-pxa300"));
data.cb_colibri_pxa310 = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "cb-colibri-pxa310"));
data.cb_colibri_pxa320 = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "cb-colibri-pxa320"));
data.cb_colibri_t20 = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "cb-colibri-t20"));
data.cb_colibri_t30 = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "cb-colibri-t30"));
data.cb_colibri_eval_board = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "cb-colibri-eval-board-v3.1"));
data.cb_iris_board = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "cb-iris-base-board-v1.1"));
data.cb_apalis_t30 = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "cb-apalis-t30"));
data.cb_apalis_eval_board = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "cb-apalis-eval-board-v1.0"));
data.cb_robin_z530l = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "cb-robin-z530l"));
data.cb_robin_z530m = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "cb-robin-z530m"));
data.cb_robin_z510s = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "cb-robin-z510s"));
data.cb_daisy_board = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "cb-daisy-pico-itx-carrier-board"));
g_object_unref ( G_OBJECT(gtkBuilder) );
/* Show the application window */
#ifdef FULL_SCREEN
gtk_window_fullscreen((GtkWindow *) mainwin);
#endif
gtk_widget_show(mainwin);
/* Enter the main event loop, and wait for user interaction */
gtk_main();
return 0;
}

2577
pos-demo/pos-elinux.glade Normal file

File diff suppressed because it is too large Load diff

35
pos-demo/pos-elinux.h Normal file
View file

@ -0,0 +1,35 @@
#include <stdio.h>
#define BAUD_RATE B9600
#define PXA270 "/usr/share/doc/POSDemoQuickInfo/ColibriPXA270.txt"
#define PXA300 "/usr/share/doc/POSDemoQuickInfo/ColibriPXA300.txt"
#define PXA310 "/usr/share/doc/POSDemoQuickInfo/ColibriPXA320.txt"
#define PXA320 "/usr/share/doc/POSDemoQuickInfo/ColibriPXA320.txt"
#define COLIBRIT20 "/usr/share/doc/POSDemoQuickInfo/ColibriT20.txt"
#define COLIBRIT30 "/usr/share/doc/POSDemoQuickInfo/ColibriT30.txt"
#define APALIST30 "/usr/share/doc/POSDemoQuickInfo/ApalisT30.txt"
#define ROBINZ510S "/usr/share/doc/POSDemoQuickInfo/RobinZ510S.txt"
#define ROBINZ530L "/usr/share/doc/POSDemoQuickInfo/RobinZ530L.txt"
#define ROBINZ530M "/usr/share/doc/POSDemoQuickInfo/RobinZ530M.txt"
#define END "/usr/share/doc/POSDemoQuickInfo/end.txt"
#define POS_ELINUX_GLADE "/usr/share/glade/pos-linux.glade"
#define FULL_SCREEN
typedef struct _customData
{
GtkWidget *cb_colibri_pxa270;
GtkWidget *cb_colibri_pxa300;
GtkWidget *cb_colibri_pxa310;
GtkWidget *cb_colibri_pxa320;
GtkWidget *cb_colibri_t20;
GtkWidget *cb_colibri_t30;
GtkWidget *cb_colibri_eval_board;
GtkWidget *cb_iris_board;
GtkWidget *cb_apalis_t30;
GtkWidget *cb_apalis_eval_board;
GtkWidget *cb_robin_z530l;
GtkWidget *cb_robin_z530m;
GtkWidget *cb_robin_z510s;
GtkWidget *cb_daisy_board;
GtkLabel *good_item;
} customData;

BIN
pos-demo/pos-elinux.o Normal file

Binary file not shown.

563
pos-demo/pos-elinux.o.d Normal file
View file

@ -0,0 +1,563 @@
pos-elinux.o: pos-elinux.c \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/gtk-2.0/gtk/gtk.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/gtk-2.0/gdk/gdk.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/gio/gio.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/gio/giotypes.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/gio/gioenums.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib-object.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/gobject/gbinding.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/galloca.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gtypes.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/lib/glib-2.0/include/glibconfig.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gmacros.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gversionmacros.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/garray.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gasyncqueue.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gthread.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gatomic.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gerror.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gquark.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gutils.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gbacktrace.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gbase64.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gbitlock.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gbookmarkfile.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gbytes.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gcharset.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gchecksum.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gconvert.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gdataset.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gdate.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gdatetime.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gtimezone.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gdir.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/genviron.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gfileutils.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/ggettext.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/ghash.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/glist.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gmem.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gnode.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/ghmac.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gchecksum.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/ghook.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/ghostutils.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/giochannel.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gmain.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gpoll.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gslist.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gstring.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gunicode.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gkeyfile.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gmappedfile.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gmarkup.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gmessages.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/goption.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gpattern.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gprimes.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gqsort.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gqueue.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/grand.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gregex.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gscanner.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gsequence.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gshell.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gslice.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gspawn.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gstrfuncs.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gstringchunk.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gtestutils.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gthreadpool.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gtimer.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gtrashstack.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gtree.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/glib-2.0/glib/gurifuncs.h \
/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi