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 설치하기