This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

*/

SOME/IP Message Header와 CommonAPI의 fdepl파일 관계



SOME/IP Header 구조

  • Message ID(32 bit) : Message ID는 전체 차량에서 고유해야 한다.
    • Service ID(16 bit) : 각 서비스의 고유 값
    • Method ID(16 bit) : 0~32767까지의 값을 가진다. 이벤트는 32768~65535 값을가진다.
  • Length(32 bit) : Length다음부터 즉 Client ID부터 Payload를 포함한 길이. Byte 단위 
  • Client ID(16 bit) : ECU 내에서 호출하는 클라이언트의 고유 식별자
  • Session ID(16 bit) : Subscriber에 의해 선택된 unique number
  • Protocol Version(8 bit) : 프로토콜 버전
  • Interface Version(8 bit) : 인터페이스 버전
  • Message Type(8 bit) : 메세지 타입
  • Return Code(8 bit) : 리턴 코드
  • Payload(가변길이) : 전송하고자하는 data
  • Endian : BIG Endian

fdepl파일 예

위의 헤더중에 fdepl파일에서 사용되는 ID는 Service ID(SomeIpServiceID), Method ID(SomeIpMethodID)가 파일내에서 사용되며, fdepl파일내에서 InstanceId, SomIpInstanceID는 SOME/IP 헤더에는 없고 SOME/IP-SD(Service Discovery) 포멧에서 Entries array에 포함되어 있다.
commonapi-c-with-someip-example

    import "platform:/plugin/org.genivi.commonapi.someip/deployment/CommonAPI-SOMEIP_deployment_spec.fdepl"
    import "HelloWorld.fidl"
    define org.genivi.commonapi.someip.deployment for interface commonapi.HelloWorld {
      SomeIpServiceID = 4660 method sayHello {  // 각 서비스의 Unique value
         SomeIpMethodID = 31000                 // 0~32767까지의 값. 범위를 벗어나면 SomeIP Generator에서 오류생성
      }
    }
    define org.genivi.commonapi.someip.deployment for provider MyService {
      instance commonapi.HelloWorld {
         InstanceId = "test"                    // registerService(), buildProxy()에서 같은 값을 사용해야한다.
         SomeIpInstanceID = 22136               // 
      }
    }

    Reference

    관련 페이지

    files list file for package 'libgcc-5-dev:amd64' is missing final newline 오류

    환경 :
     - VMware
     - Ubuntu 16.04 x64

    시스템에 git을 설치하려 sudo apt-get install git 을 했는데 다음과 같은 오류 발생
    sudo apt-get install git

    여러가지  검색결과 여기서 해결방법을 찾았다.
    우선/var/lib/dpkg/info/에 있는 아래 파일들을 제거한다.
    $ ls /var/lib/dpkg/info/libgcc-5*
    /var/lib/dpkg/info/libgcc-5-dev:amd64.list
    /var/lib/dpkg/info/libgcc-5-dev:amd64.md5sums

    $ sudo rm /var/lib/dpkg/info/libgcc-5*

    2개파일을 지우고 다음 세개의 명령어를 실행한다.
    sudo dpkg --configure -a
    sudo apt update
    sudo apt upgrade
    그리고, 처음에 오류났던 git설치 작업을 계속한다.


    Ubuntu root 패스워드 설정하기

    Ubuntu linux를 사용하다 보면 root 계정으로 작업해야할 때가 있다
    그때 사용하는 명령어로 su, sudo 등이 있는데 password가 틀리다고 나올경우가 있다. 이럴때 패스워드를 새롭게 설정해주는 명령어로 passwd 가 사용된다.

    [  passwd 유저명 ]

    root 패스워드를 설정 : [ sudo passwd root ]

     $ sudo passwd root 

    현재 로그인되어 있는 계정의 패스워드를 입력하라는 메세지가 나온다.
    현계정의 패스워드를 입력하고나면 새로운 패스워드를 입력하라고 나오고, 확인을 위해 재입력하라는 메세지가 순차적으로 나온다.


    su : Super User의 약자로 최상위 사용자를 의미한다. 터미널에서 su명령어를 사용하면 해당 터미널에서 일시적으로 root권한을 사용할 수 있다.

    sudo : Super User do의 의미로 일시적으로 super user의 권한으로 명령어를 실행

    Windows환경에서 Qt 개발환경 구축하기 - 2/2

    Qt Creator 설치하기 - 2

    Windows환경에서 설치 

    Qt Creator 설치하기 - 1페이지에서 다운로드 받은 인스톨 파일(qt-unified-windows-x86-3.1.1-online.exe)을 실행한다.
    Qt계정, Qt확장모듈의 가격 등과 라이센스들을 확인할 수 있다. 그냥 "Next" 버튼을 클릭한다.
    Qt 계정이 있으면 기입하고, 계정이 필요하면 등록한다.. 여기서는 그냥 "Skip" 버튼을 클릭

    Setup 화면에서 Setting은 그대로 두고 "Next"버튼 클릭
    뭔가 보내는건 언제나 Disable.... "Next"
    설치 폴더를 정해주세요.. 그리고.. "Next"
    설치할 컴포넌트 선택에서 Qt버전은 1.12.6으로하고 거기에 컴파일러는 MinGW 7.3.0 64bit로선택한다.  선택해도 실제 컴파일러는 설치되지 않는다.
    MinGW 와 Cmake는 위와 같이 Developer and Designer Tools에서 선택하면 자동으로 설치된다. Visual Studio(MSVC)를 선택할 경우 별도로 설치해야한다.
    라이센스 사용에 동의 체크하고 "Next"
    "Install"버튼을 클릭하면 선택된 컴포넌트들이 차래로 설치된다.
    Completing the Qt wizard가 나오면 설치 끝...







    ImportError: DLL load failed: 지정된 모듈을 찾을 수 없습니다. 오류

    오류 발생 환경
     - Windows 10, x64
     - python 3.6.8
     - OpenCV
    tensorflow 설치후 DLL을 찾을수 없다는 오류가 발생

    C:\Users\user>python
    
    Python 3.6.8 (tags/v3.6.8:3c6b436a57, Dec 24 2018, 00:16:47) [MSC v.1916 64 bit (AMD64)] on win32
    
    Type "help", "copyright", "credits" or "license" for more information.
    
    <> import tensorflow as tf
    Traceback (most recent call last):
    File "C:\Users\user\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in
    from tensorflow.python.pywrap_tensorflow_internal import *
    File "C:\Users\user\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 28, in
    _pywrap_tensorflow_internal = swig_import_helper()
    File "C:\Users\user\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 24, in swig_import_helper
    _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
    File "C:\Users\user\AppData\Local\Programs\Python\Python36\lib\imp.py", line 243, in load_module
    return load_dynamic(name, filename, file)
    File "C:\Users\user\AppData\Local\Programs\Python\Python36\lib\imp.py", line 343, in load_dynamic
    return _load(spec)
    ImportError: DLL load failed: The specified module could not be found.
    MS에서 제공하는 msvcp140.dll과 충돌이 일어나서 발생하는 경우가 있다고 한다.
    Visual Studio 2015, 2017 및 2019용 Microsoft Visual C++ 재배포 가능 패키지( x64, vc_redist.x64.exe)를 재설치 하면 해결된다.

    Windows환경에서 Qt 개발환경 구축하기 - 1/2

    Qt Creator 설치하기 - 1

    Qt Creator 설치파일 다운로드 

    Qt개발환경인 Qt Creator는 https://www.qt.io/download에서 구매하거나 무료 다운로드 할 수 있다.
    여기에서는 아래와 같이 오픈소스유저를 위한 다운로드를 진행합니다.

    "Go open source"버튼을 클릭하여 Open Source Qt Use 페이지로 이동하여 Open Source에 관련된 내용을 확인 후 맨 아래쪽 "Download the Qt Online installer"를 클릭한다.
    Your download 페이지에서 현재 접속하고 있는 PC의 운영체제와 시스템을 확인하고 아래쪽 "Download"를 클릭한다.
    현재 PC의 운영체제에 맞는 실행 파일이 자동 다운로드된다.
    적당한 위치에 실행파일을 다운로드 받는다.

    다음 - Qt Creator 설치하기

    Window 환경에서 Python, OpenCV 설치하기

    설치할 PC환경

    OS : Windows 10, 64bit

    설치순서

    아래와 같이 Python, OpenCV, cmake, dlib순으로 설치한다.

    Python설치

    먼저 Python 홈페이지에서 Python 실행 파일을 현재 OS에 맞춰 다운받는다.

    최신버전이 아니라 특정 버전이 필요할 경우 페이지 아래쪽에서 필요버전을 찾아 다운로드할 수 있다.

    여기서는 Python 3.6을 설치하기위해 3.6버전대에서 마지막인 3.6.8버전의 실행 파일을 다운 받아 실행 시킨다.

    설치화일에서 우선 아래쪽 "Add Python 3.6 to PATH"를 체크하고, 디폴트로 설치할 경우 "Install Now"를 클릭하고, 무엇을 어떻게 설치하는지 알고싶거나 설치 디렉토리를 변경 혹은 설치항목을 변경하고자할 경우 아래와 같이 "Customize installation"을 클릭한다.

    부가적인 사항들을 선택한다. 디폴트로 모든 사항 체크.
    다음을 선택하면 고급옵션이 나온다. 여기에서 추가적으로 아래 붉은색으로 표기된 것을 체크해준다. 설치 디렉토리를 변경하고자할 경우 녹색으로 표기된 부분에 원하는 설치 디렉토리를 지정해 준다.
    "Install"버튼을 클릭하면 설치가 진행되며, 앞에서 선택한 것이 하나하나 설치된다.
    설치가 완료되면 아래와 같이 설치가 완료되었다고 표출된다. "Close"버튼을 누르는 것으로 설치는 다 끝난다.

    설치가 완료된후 윈도우 키를 눌러보면 메뉴바에 아래와 같이 Python 3.6이 설치된 것을 볼 수 있다.
    Pyphon을 사용하기 위해서는 메뉴에서 IDLE를 실행시키거나, 명령프롬프트(CMD)에서  "python"을 쳐도 실행된다.

    OpenCV설치

    cmd창에서 pip명령으로 opencv 라이브러리를 설치한다.
    pip install opencv-contrib-python


    cmake설치

    dlib를 설치하기위해서는 먼저 cmake를 설치해야한다
    . cmake가 설치되지 않으면 dlib설치시 cmake를 설치하라는 메세지가 나온다.
    pip install cmake

    dlib설치

    pip install dlib


    내 PC환경에서 dlib 설치시 위와 같은 오류가 발생했다.

        NMake Makefiles
          does not support platform specification, but platform
            x64
          was specified.

    해결 방법 1. 새로운 cmake를 설치
         기존 cmake를 제거 : pip uninstall cmake
         cmake-3.16.2-win64-x64.msi를 다운받아 설치한다.
         환경 설정의 PATH설정에서 새로 설치한 cmake의 PATH를 최상단으로 옮긴다.

       pip install dlib를 해본다.
      ㅡ.ㅡ 똑같다. 실패.

    해결 방법 2.
         MS Visual Studio Community Edition을 설치하고 cmake파일 위치를 PATH로 설정

    해결 방법 3.
          pip install https://pypi.python.org/packages/da/06/bd3e241c4eb0a662914b3b4875fc52dd176a9db0d4a2c915ac2ad8800e9e/dlib-19.7.0-cp36-cp36m-win_amd64.whl

         ref : https://stackoverflow.com/questions/48624415/how-to-fix-cmake-error-in-cmakelists-txt-generator-nmake-makefiles-does-not-sup

    참조