logo
한국어 Select Language
FF 포럼
포럼지기에게 한 마디
공지사항
뉴스 EZ보드 통합 메뉴얼
FA-VUS 개발환경 !강추! 타켓보드 부팅-HyperTerminal 타켓보드 부팅-Tutty 타켓보드 부팅-minicom Windows환경-타겟 Linux 구동 Linux환경-타겟 Linux 구동 개발 시스템 구축 유형 페도라 설치 CentOS 설치 크로스 컴파일러 설치 TFTP 환경 구축 NFS 파일 시스템 구축 삼바 서버 구축 부트로더 부트로더 쓰기 커널 이미지 제작 및 설치 램디스크 이미지 제작 및 설치
임베디드 제품 사용기 오늘의 영어 휴게실 Appliance
강좌 & 팁
강좌 & 팁 EZ-보드 그래픽 & 멀티미디어 네트워크 프로그래밍 디바이스 드라이버 ImJa 솔루션 임베디드 FLEX 안드로이드 iOS 개발 FAIDE 하드웨어 C/C++ go언어 GNU C 레퍼런스 메뉴얼 ARM 루아 응용 프로젝트 이클립스 지그비 개발자 노트 권장도서 FPGA
VIVADO DSP HSIO Logic Zynq
함수설명
C 라이브러리 함수 커널 API 그래픽 라이브러리 - gxLib
자료실
자료실 FALINUX SDK ARM PC-V210 S3C6410
G100-S3C6410 S100-S3C6410 C221-S3C6410 N200-S3C6410 EZ-S3C6410
S5PV210
G100-S5PV210 S100-S5PV210 N200-S5PV210 C221-S5PV210
EZ-S3C2440 EZ-PXA270 EZ-X5 EZ-S2410 Auto Package
도와주세요
FAQ 도와주세요

  • 회원가입
  • ID/PW 찾기
 
  1. FAQ

  2. 도와주세요


최근 글

  • [특판][성Y인Y용Y품][...
  • 요즘 잘 나가는,,,
  • 요즘은 vmware 말고 ...
  • [docker] buildx 를 ...
  • buildroot 사용 관련
  • GPIO 제어 방법 문의 [1]
  • 임베디드 리눅스 개발...
  • make wandboard_quad ...
  • LCD 초기화 코드 좀 ... [1]
  • 임베디드 리눅스 커널...

최근 댓글

  • 오래 전에 해결법을 터득해서 ...
  • 비트 코인으로 작업하는 것은 ...
  • 10년차 임베 엔지니어 입니다. ...
  • 임베디드쪽이라면 SOC 쪽 displ...
  • 그렇군요 제가 질문이 잘못됬었...
  • 취준생으로서 포트폴리오를 만...
  • 제가 현재 취업준비생입니다. ...
  • 에프에이리눅스 보드는 아래 링...
  • 전체
  • 일반
  • X5
  • S2410
  • ESP-NS
  • S3C2440
  • EP9312
  • 구매
  • 기타

X5 [re] 터치패드...

2006.06.23 23:47

오상록 조회 수:8342

qwsmanager_qws.cpp입니다..
/****************************************************************************
** $Id: qt/src/kernel/qwsmanager_qws.cpp   2.3.7   edited 2003-06-30 $
**
** Implementation of Qt/Embedded window manager
**
** Created : 000101
**
** Copyright (C) 2000 Trolltech AS.  All rights reserved.
**
** This file is part of the kernel module of the Qt GUI Toolkit.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
** licenses for Qt/Embedded may use this file in accordance with the
** Qt Embedded Commercial License Agreement provided with the Software.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
**   information about Qt Commercial License Agreements.
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#include "qwsmanager_qws.h"

#ifndef QT_NO_QWS_MANAGER

#include "qdrawutil.h"
#include "qapplication.h"
#include "qaccel.h"
#include "qstyle.h"
#include "qwidget.h"
#include "qpopupmenu.h"
#include "qpainter.h"
#include "qregion.h"
#include "qevent.h"
#include "qcursor.h"
#include "qgfx_qws.h"
#include "qwsdisplay_qws.h"
#include "qwsregionmanager_qws.h"
#include "qwsdefaultdecoration_qws.h"


#ifndef QT_NO_CURSOR
typedef QCursorShape CursorShape; // keep more source-compatible with qt/main
#endif

enum WMStyle {
    Default_WMStyle = 1, /* Starting at zero stuffs up menus */
    KDE_WMStyle,
    KDE2_WMStyle,
    BeOS_WMStyle,
    Windows_WMStyle,
    Hydro_WMStyle,
};


#ifndef QT_NO_QWS_WINDOWS_WM_STYLE
#include "qwswindowsdecoration_qws.h"
QWSDefaultDecoration *new_Windows_WMDecorations() { return new QWSWindowsDecoration(); }
#endif // QT_NO_QWS_WINDOWS_WM_STYLE
#ifndef QT_NO_QWS_KDE_WM_STYLE
#include "qwskdedecoration_qws.h"
QWSDefaultDecoration *new_KDE_WMDecorations() { return new QWSKDEDecoration(); }
#endif // QT_NO_QWS_KDE_WM_STYLE
#ifndef QT_NO_QWS_KDE2_WM_STYLE
#include "qwskde2decoration_qws.h"
QWSDefaultDecoration *new_KDE2_WMDecorations() { return new QWSKDE2Decoration(); }
#endif // QT_NO_QWS_KDE2_WM_STYLE
#ifndef QT_NO_QWS_BEOS_WM_STYLE
#include "qwsbeosdecoration_qws.h"
QWSDefaultDecoration *new_BeOS_WMDecorations() { return new QWSBeOSDecoration(); }
#endif // QT_NO_QWS_BEOS_WM_STYLE
#ifndef QT_NO_QWS_HYDRO_WM_STYLE
#include "qwshydrodecoration_qws.h"
QWSDefaultDecoration *new_Hydro_WMDecorations() { return new QWSHydroDecoration(); }
#endif // QT_NO_QWS_HYDRO_WM_STYLE

#include "qwsdefaultdecoration_qws.h"
QWSDefaultDecoration *new_Default_WMDecorations() { return new QWSDefaultDecoration(); }


struct WMStyleFactoryItem {
        WMStyle WMStyleType;
        QString WMStyleName;
        QWSDefaultDecoration *(*new_WMDecorations)();
} WMStyleList[] = {
#ifndef QT_NO_QWS_WINDOWS_WM_STYLE
    { Windows_WMStyle, QT_TRANSLATE_NOOP("QWSDecoration", "Windows"), new_Windows_WMDecorations },
#endif // QT_NO_QWS_WINDOWS_WM_STYLE
#ifndef QT_NO_QWS_KDE_WM_STYLE
    { KDE_WMStyle, QT_TRANSLATE_NOOP("QWSDecoration", "KDE"), new_KDE_WMDecorations },
#endif // QT_NO_QWS_KDE_WM_STYLE
#ifndef QT_NO_QWS_KDE2_WM_STYLE
    { KDE2_WMStyle, QT_TRANSLATE_NOOP("QWSDecoration", "KDE2"), new_KDE2_WMDecorations },
#endif // QT_NO_QWS_KDE2_WM_STYLE
#ifndef QT_NO_QWS_BEOS_WM_STYLE
    { BeOS_WMStyle, QT_TRANSLATE_NOOP("QWSDecoration", "BEOS"), new_BeOS_WMDecorations },
#endif // QT_NO_QWS_BEOS_WM_STYLE
#ifndef QT_NO_QWS_HYDRO_WM_STYLE
    { Hydro_WMStyle, QT_TRANSLATE_NOOP("QWSDecoration", "Hydro"), new_Hydro_WMDecorations },
#endif // QT_NO_QWS_HYDRO_WM_STYLE

    { Default_WMStyle, QT_TRANSLATE_NOOP("QWSDecoration", "Default"), new_Default_WMDecorations },
    { Default_WMStyle, NULL, NULL }
};


QWSDecoration *QWSManager::newDefaultDecoration()
{
    return new QWSDefaultDecoration;
}


QWidget *QWSManager::active = 0;
QPoint QWSManager::mousePos;

QWSManager::QWSManager(QWidget *w)
    : QObject(), activeRegion(QWSDecoration::None), managed(w), popup(0)
{
    dx = 0;
    dy = 0;

    menuBtn = new QWSButton(this, QWSDecoration::Menu);
    closeBtn = new QWSButton(this, QWSDecoration::Close);
    minimizeBtn = new QWSButton(this, QWSDecoration::Minimize);
    maximizeBtn = new QWSButton(this, QWSDecoration::Maximize, TRUE);
}

QWSManager::~QWSManager()
{
#ifndef QT_NO_POPUPMENU
    if (popup)
        delete popup;
#endif
    delete menuBtn;
    delete closeBtn;
    delete minimizeBtn;
    delete maximizeBtn;

}

QRegion QWSManager::region()
{
    return QApplication::qwsDecoration().region(managed, managed->geometry());
}

QWSDecoration::Region QWSManager::pointInRegion(const QPoint &p)
{
    QWSDecoration &dec = QApplication::qwsDecoration();
    QRect rect(managed->geometry());

    for (int i = QWSDecoration::LastRegion; i >= QWSDecoration::Title; i--) {
        if (dec.region(managed, rect, (QWSDecoration::Region)i).contains(p))
            return (QWSDecoration::Region)i;
    }

    return QWSDecoration::None;
}

bool QWSManager::event(QEvent *e)
{
    if ( QObject::event( e ) )
        return TRUE;

    switch (e->type()) {
        case QEvent::MouseMove:
            mouseMoveEvent( (QMouseEvent*)e );
            break;

        case QEvent::MouseButtonPress:
            mousePressEvent( (QMouseEvent*)e );
            break;

        case QEvent::MouseButtonRelease:
            mouseReleaseEvent( (QMouseEvent*)e );
            break;

        case QEvent::MouseButtonDblClick:
            mouseDoubleClickEvent( (QMouseEvent*)e );
            break;

        case QEvent::Paint:
            paintEvent( (QPaintEvent*)e );
            break;

        default:
            return FALSE;
            break;
    }

    return TRUE;
}

void QWSManager::mousePressEvent(QMouseEvent *e)
{
    mousePos = e->globalPos();
    dx = 0;
    dy = 0;
    activeRegion = pointInRegion(mousePos);
    switch (activeRegion) {
        case QWSDecoration::Menu:
            menu(managed->geometry().topLeft());
            break;
        case QWSDecoration::Close:
            closeBtn->setClicked(TRUE);
            break;
        case QWSDecoration::Minimize:
            minimizeBtn->setClicked(TRUE);
            break;
        case QWSDecoration::Maximize:
            maximizeBtn->setClicked(TRUE);
            break;
        default:
            break;
    }
    if ( activeRegion != QWSDecoration::None &&
         activeRegion != QWSDecoration::Menu ) {
        active = managed;
        managed->grabMouse();
    }
    if ( activeRegion != QWSDecoration::None &&
         activeRegion != QWSDecoration::Close &&
         activeRegion != QWSDecoration::Minimize &&
         activeRegion != QWSDecoration::Menu) {
        managed->raise();
        managed->setActiveWindow();
    }
    
    if (e->button() == Qt::RightButton) {
        menu(e->globalPos());
    }
}

void QWSManager::mouseReleaseEvent(QMouseEvent *e)
{
    managed->releaseMouse();
    if (e->button() == Qt::LeftButton) {
        handleMove();
        mousePos = e->globalPos();
        QWSDecoration::Region rgn = pointInRegion(e->globalPos());
        QWSDecoration::Region activatedRegion = activeRegion;
        activeRegion = QWSDecoration::None;
        active = 0;
        switch (activatedRegion) {
            case QWSDecoration::Close:
                closeBtn->setClicked(FALSE);
                if (rgn == QWSDecoration::Close) {
                    close();
                    return;
                }
                break;
            case QWSDecoration::Minimize:
                minimizeBtn->setClicked(FALSE);
                if (rgn == QWSDecoration::Minimize)
                    minimize();
                break;
            case QWSDecoration::Maximize:
                maximizeBtn->setClicked(FALSE);
                if (rgn == QWSDecoration::Maximize)
                    toggleMaximize();
                break;
            default:
                break;
        }
    } else if (activeRegion == QWSDecoration::None) {
        active = 0;
    }
}

void QWSManager::mouseMoveEvent(QMouseEvent *e)
{
#ifndef QT_NO_CURSOR
    static CursorShape shape[] = { ArrowCursor, ArrowCursor, ArrowCursor,
                            SizeVerCursor, SizeVerCursor, SizeHorCursor,
                            SizeHorCursor, SizeFDiagCursor, SizeBDiagCursor,
                            SizeBDiagCursor, SizeFDiagCursor, ArrowCursor,
                            ArrowCursor, ArrowCursor, ArrowCursor, ArrowCursor};

    // cursor
    QWSDisplay *qwsd = QApplication::desktop()->qwsDisplay();
    if (activeRegion == QWSDecoration::None)
    {
        if ( !QWidget::mouseGrabber() ) {
            QWSDecoration::Region r = pointInRegion(e->globalPos());
            qwsd->selectCursor(managed, shape[r]);
        }
    } else
        qwsd->selectCursor(managed, shape[activeRegion]);
#endif //QT_NO_CURSOR
    // resize/move regions

    // don't allow dragging to where the user probably cannot click!
    QPoint g = e->globalPos();
    extern Q_EXPORT QRect qt_maxWindowRect;
    if ( qt_maxWindowRect.isValid() ) {
        if ( g.x() < qt_maxWindowRect.x() )
            g.setX(qt_maxWindowRect.x());
        if ( g.y() < qt_maxWindowRect.y() )
            g.setY(qt_maxWindowRect.y());
        if ( g.x() > qt_maxWindowRect.right() )
            g.setX(qt_maxWindowRect.right());
        if ( g.y() > qt_maxWindowRect.bottom() )
            g.setY(qt_maxWindowRect.bottom());
    }

    dx = g.x() - mousePos.x();
    dy = g.y() - mousePos.y();

    handleMove();

    // button regions
    QWSDecoration::Region r = pointInRegion(e->globalPos());
    menuBtn->setMouseOver(r == QWSDecoration::Menu);
    closeBtn->setMouseOver(r == QWSDecoration::Close);
    minimizeBtn->setMouseOver(r == QWSDecoration::Minimize);
    maximizeBtn->setMouseOver(r == QWSDecoration::Maximize);
}

void QWSManager::handleMove()
{
    if (!dx && !dy)
        return;

    int x = managed->geometry().x();
    int y = managed->geometry().y();
    int w = managed->width();
    int h = managed->height();

    QRect geom(managed->geometry());

    switch (activeRegion) {
        case QWSDecoration::Title:
            geom = QRect(x + dx, y + dy, w, h);
            break;
        case QWSDecoration::Top:
            geom = QRect(x, y + dy, w, h - dy);
            break;
        case QWSDecoration::Bottom:
            geom = QRect(x, y, w, h + dy);
            break;
        case QWSDecoration::Left:
            geom = QRect(x + dx, y, w - dx, h);
            break;
        case QWSDecoration::Right:
            geom = QRect(x, y, w + dx, h);
            break;
        case QWSDecoration::TopRight:
            geom = QRect(x, y + dy, w + dx, h - dy);
            break;
        case QWSDecoration::TopLeft:
            geom = QRect(x + dx, y + dy, w - dx, h - dy);
            break;
        case QWSDecoration::BottomLeft:
            geom = QRect(x + dx, y, w - dx, h + dy);
            break;
        case QWSDecoration::BottomRight:
            geom = QRect(x, y, w + dx, h + dy);
            break;
        default:
            return;
    }

    if (geom.width() >= managed->minimumWidth()
            && geom.width() <= managed->maximumWidth()) {
        mousePos.setX(mousePos.x() + dx);
    } else if (geom.width() < managed->minimumWidth()) {
        if ( x != geom.x() ) {
            geom.setX(x+(w-managed->minimumWidth()));
            mousePos.setX( geom.x() );
        } else {
            mousePos.setX( x+managed->minimumWidth() );
        }
        geom.setWidth(managed->minimumWidth());
    } else {
        geom.setX(x);
        geom.setWidth(w);
    }
    if (geom.height() >= managed->minimumHeight()
            && geom.height() <= managed->maximumHeight()) {
        mousePos.setY(mousePos.y() + dy);
    } else if (geom.height() < managed->minimumHeight()) {
        if ( y != geom.y() ) {
            geom.setY(y+(h-managed->minimumHeight()));
            mousePos.setY( mousePos.y()+(geom.y()-y) );
        } else {
            mousePos.setY( y+managed->minimumHeight() );
        }
        geom.setHeight(managed->minimumHeight());
    } else {
        geom.setY(y);
        geom.setHeight(h);
    }

    if (geom != managed->geometry()) {
        QApplication::sendPostedEvents();
        managed->setGeometry(geom);
    }

    dx = 0;
    dy = 0;
}

void QWSManager::paintEvent(QPaintEvent *)
{
    QWSDecoration &dec = QApplication::qwsDecoration();
    QPainter painter(managed);

    // Adjust our widget region to contain the window
    // manager decoration instead of the widget itself.
    QRegion r = managed->topData()->decor_allocated_region;
    int rgnIdx = managed->alloc_region_index;
    if ( rgnIdx >= 0 ) {
        QRegion newRegion;
        bool changed = FALSE;
        QWSDisplay::grab();
        const int *rgnRev = qt_fbdpy->regionManager()->revision( rgnIdx );
        if ( managed->alloc_region_revision != *rgnRev ) {
             newRegion = qt_fbdpy->regionManager()->region( rgnIdx );
             changed = TRUE;
        }
        painter.internalGfx()->setGlobalRegionIndex( rgnIdx );
        QWSDisplay::ungrab();
        if ( changed ) {
            r &= newRegion;
        }
    }
    painter.internalGfx()->setWidgetDeviceRegion( r );

    painter.setClipRegion(dec.region(managed, managed->rect()));
    dec.paint(&painter, managed);
    painter.setClipRegion(dec.region(managed, managed->rect()));
    dec.paintButton(&painter, managed, QWSDecoration::Menu, menuBtn->state());
    dec.paintButton(&painter, managed, QWSDecoration::Close, closeBtn->state());
    dec.paintButton(&painter, managed, QWSDecoration::Minimize, minimizeBtn->state());
    dec.paintButton(&painter, managed, QWSDecoration::Maximize, maximizeBtn->state());
}

void QWSManager::menu(const QPoint &pos)
{
#ifndef QT_NO_POPUPMENU
    if (!popup) {
        popup = QApplication::qwsDecoration().menu(managed, managed->pos());

        // Add Style menu
        QPopupMenu *styleMenu = new QPopupMenu();
        for (int i = 0; WMStyleList[i].WMStyleName != NULL; i++)
            styleMenu->insertItem( qApp->translate("QWSDecoration", WMStyleList[i].WMStyleName), WMStyleList[i].WMStyleType );
        styleMenu->connect(styleMenu, SIGNAL(activated(int)), this, SLOT(styleMenuActivated(int)));
//        popup->insertSeparator();
//        popup->insertItem(QObject::tr("Style"), styleMenu);

        connect(popup, SIGNAL(activated(int)), SLOT(menuActivated(int)));
    }
    popup->setItemEnabled(QWSDecoration::Maximize, !managed->isMaximized());
    popup->setItemEnabled(QWSDecoration::Normalize, managed->isMaximized());
    popup->popup(pos);
#endif
}

#include <qcdestyle.h>
#include <qcommonstyle.h>
#include <qcompactstyle.h>
#include <qmotifplusstyle.h>
#include <qmotifstyle.h>
#include <qplatinumstyle.h>
#include <qsgistyle.h>
#include <qwindowsstyle.h>

void QWSManager::styleMenuActivated(int id)
{
    for (int i = 0; WMStyleList[i].WMStyleName != NULL; i++) {
            if (id == WMStyleList[i].WMStyleType) {
            qApp->qwsSetDecoration( WMStyleList[i].new_WMDecorations() );
            }
    }

    // Force a repaint of the WM regions
    const QSize s = managed->size();
    managed->resize( s.width() + 1, s.height() );
    managed->resize( s.width(), s.height() );
}

void QWSManager::menuActivated(int id)
{
    switch (id) {
        case QWSDecoration::Close:
            close();
            return;
        case QWSDecoration::Minimize:
            minimize();
            break;
        case QWSDecoration::Maximize:
        case QWSDecoration::Normalize:
            toggleMaximize();
            break;
        case QWSDecoration::Title:
            mousePos = QCursor::pos();
            activeRegion = QWSDecoration::Title;
            active = managed;
            managed->grabMouse();
            break;
        case QWSDecoration::BottomRight:
            mousePos = QCursor::pos();
            activeRegion = QWSDecoration::BottomRight;
            active = managed;
            managed->grabMouse();
            break;
        default:
            break;
    }
}

void QWSManager::close()
{
    active = 0;
    QApplication::qwsDecoration().close(managed);
}

void QWSManager::minimize()
{
    QApplication::qwsDecoration().minimize(managed);
}


void QWSManager::maximize()
{
    QApplication::qwsDecoration().maximize(managed);
    maximizeBtn->setOn(TRUE);
}

void QWSManager::toggleMaximize()
{
    if ( !managed->isMaximized() ) {
        managed->showMaximized();
        maximizeBtn->setOn(TRUE);
    } else {
        managed->showNormal();
        maximizeBtn->setOn(FALSE);
    }
}

/*
*/
QWSButton::QWSButton(QWSManager *m, QWSDecoration::Region t, bool tb)
    : flags(0), toggle(tb), type(t), manager(m)
{
}

void QWSButton::setMouseOver(bool m)
{
    int s = state();
    if (m) flags |= MouseOver;
    else flags &= ~MouseOver;
    if (state() != s)
        paint();
}

void QWSButton::setClicked(bool c)
{
    int s = state();
    if (c) flags |= Clicked;
    else flags &= ~Clicked;
    if (state() != s)
        paint();
}

void QWSButton::setOn(bool o)
{
    int s = state();
    if (o) flags |= On;
    else flags &= ~On;
    if (state() != s)
        paint();
}

void QWSButton::paint()
{
    QWSDecoration &dec = QApplication::qwsDecoration();
    QPainter painter(manager->widget());
    painter.setClipRegion(dec.region(manager->widget(), manager->widget()->rect()));
    dec.paintButton(&painter, manager->widget(), type, state());
}

#endif //QT_NO_QWS_MANAGER

그리고 mk712.c는 제가 pi용 커널 이미지밖에 없어서요...

CD를 잃어버려서...

저번에 전화드렸더니..

zImage.x5.pi-no-ide 커널 이미지와..

ramdisk.x5.pi-12M.gz 램디스크이미지를 메일로 보내주셔서..

어떻게 소스를 볼 방법을 모르겠습니다...

>안녕하세요...
>
>좌표 출력 메시지를 보면 linux-2.4.19-x5-v07 커널을 사용하셨다면 커널에서 보내는 메세지가 아닙니다.
>
>커널의 drivers/char/mk712.c 를 확인 해 보세요..
>
>381     if ( debug_proc )
>382     {
>383         printk( "[%04x:%04x]n", x, y );
>384     }
>
>mk712.c 소스중 위의 부분에서 메세지를 출력하게 되어 있습니다. 그리고 이 디버깅 메세지의 출력은
>
>$ echo "1" > /proc/mk712   하셔야만 출력하게 되어 있습니다.
>
>
>1. 커널의 mk721.c 소스를 올려 주세요.
>2. QT/E의 qwsmanager_qws.cpp 소스를 올려 주세요.
>
>올려 주시면 한번 확인 해 보겠습니다.
>
>
>그럼 수고하세요..
>
>
>
>>10632번에 질문올린사람인데요..
>>
>>답변이 없으셔서 다시 올립니다..
>>
>>제가 QT/E-2.3.7로 해서 터치패드를 구동했는데요..
>>
>>터치패드는 잘됩니다..
>>
>>하지만 어플리케이션을 띄우면
>>
>>처음에는 예제프로그램 잘 떴다가..
>>
>>커서를 움직이면 검은화면에 좌표값(?)이 뜨면서..
>>
>>예제 프로그램이 다 깨집니다..
>>
>>어떻게 해결해야되는지..ㅜ.ㅜ
>>
>>그리고 제가 구현한 프로그램이 MCU에 시리얼통신으로 신호를
>>
>>보내는 프로그램인데요...
>>
>>미니컴으로 연결해서 실행했는데..
>>
>>커서를 움직일때마다 시리얼로 연결되어 있는 MCU에
>>
>>계속 값을 보내더군요...
>>
>>ON이라는 버튼을 클릭하면 특정신호를 보내는 프로그램인데요...
>>
>>도와주세요..^^
>>
>>제가 보드 화면 캡쳐 방법을 잘몰라서...
>>
>>디카로 찍어서 사진 올렸습니다..
>>
>>현제 pi보드용 커널 이미지 사용하구 있구요...
>>
>>qt에서 수정한건 강좌에 올라와있는 파일
>>
>>mouse_qws.cpp를 그대로 카피해서 컴파일 한게 다입니다..
>>
>>그리고 게시판답변을 보니...
>>
>>마우스와 터치패드는 같이 못쓴다고 되있던데요...
>>
>>마우스를 안쓸려면 따로 명령어를 넣어줘야하나요??
>>
>>아니면 마우스를 그냥 포트에만 안꽂으면 되는거 아닌가요??
>>
>>보드에서 설정해준 부분입니다..
>>
>>export QTDIR=/app/qt
>>export LD_LIBRARY_PATH=/app/qt/lib
>
이 게시물을
  • Twitter
  • Facebook
  • Delicious
수정 삭제 목록

댓글 0

목록
번호 제목 글쓴이 날짜 조회 수
공지 포럼의 메뉴가 보이지 않아요! 장길석 2014.02.06 957665
공지 [중요 공지]제품 사용 및 기술 문의는 전화 상담을 받지 않습니다. 장길석 2012.11.09 1408552
공지 답글에 대한 공지 사항. falinux 2006.11.20 2424050
15341 [특판][성Y인Y용Y품][비아][시알][여성흥분제] 전부 1+1 vv8282.top 지금 확인해보세요~! dde33 2026.10.15 2
15340 요즘 잘 나가는,,, dde33 2026.09.12 845
15339 buildroot 사용 관련 로즈마리 2021.02.01 38167
15338 GPIO 제어 방법 문의 [1] 단순최고 2021.01.25 51084
15337 임베디드 리눅스 개발 보드 추천 nam 2019.12.06 48864
15336 make wandboard_quad 실행시 문제 gasi 2019.08.27 47085
15335 LCD 초기화 코드 좀 봐주세요 [1] 김용수 2019.07.12 63137
15334 임베디드 리눅스 커널 소스에 관해 질문드립니다 ! ekthatkxkd 2019.06.28 43729
15333 numpy,scipy 를 arm-linux-XXXX 로 크로스컴파일 하여 올릴수 있나요? 초보자 2019.06.24 49288
15332 I2C - deal with arbitration loss 오류가 궁금합니다. [1] S1eepingBeauty 2018.12.10 56771
15331 구형 EM-PXA270 보드 혹시 보유하시분 연락 주시면 감사드릴께요. file 존 2018.11.24 42753
15330 리눅스 GPIO 관련 센서의 단선 또는 고장유무 판별법이 궁금합니다. [2] S1eepingBeauty 2018.11.12 55126
15329 임베디드 리눅스에서 c 언어 디버깅 궁금합니다. [1] 존 2018.09.14 47073
15328 부팅 시간 문의 [1] nam 2018.06.29 45795
15327 localport? port? 검은고래 2018.06.29 39961
15326 fork()의 thread 멈추는 현상 [4] HwangRoy 2018.05.09 58616
15325 임베디드 리눅스 습득용 보드 판매하시나요? 임베디드초급자 2018.04.27 39719
15324 (도와주세요)네트워크 디바이스 드라이버 수정문제입니다. [1] Chanmini 2018.03.04 43601
15323 Ez x5 구합니다!! khobaik 2018.01.26 38317
15322 실행중 symbol not found 를 발생시키는 u-boot 본적 있으신가요 ? sayyouandme 2017.12.17 57349
첫 페이지 1 2 3 4 5 6 7 8 9 10 끝 페이지
쓰기
태그
부탁드립니다. ^^
  • 글을 작성하시려면 회원으로 가입하시고 로그인 하셔야 합니다.
  • 회원 가입은 주민등록번호가 필요 없으며, 메일 주소만 있으면 간단하게 가입하실 수 있습니다.
  • 본 포럼에 등록된 모든 글의 저작권은 작성하신 분께 있으며, 저작자의 허락 없이 다른 곳에 펌이나 도용하시면 안 됩니다.
  • 또한, 전자우편 수집 프로그램이나 그 밖의 기술적 장치를 이용하여 무단으로 이메일 주소 및 자료 수집되는 것을 거부하며,
  • 이를 위반 시 정보통신망 법에 의해 형사 처벌됨을 유념하시기 바랍니다.
  • FF 포럼
  • 강좌 & 팁
  • 함수설명
  • 자료실
  • 도와주세요