목록분류 전체보기 (102)
Automotive Software
개별 아답티브 플랫폼 머신의 생애 주기를 관장하기 위한 상태로 실행 관리자(이하 EM)는 최소 하나의 MachineFG이라는 이름을 가진 기능그룹(Function Group)을 가져야 하며, 이 기능 그룹은 PLATFORM_CORE로 구분된 소프트웨어 클러스터 내에 해당 설정 정보가 기록되어야 한다. 머신상에 존재할 수 있는 다양한 클러스터 중 PLATFOR_CORE로 정의된 클러스터는 일반적으로 플랫폼 프로세스들로 그룹화하며 머신 당 하나만 존재해야 한다. 대부분의 플랫폼 프로세스들이 이 머신 상태에 의해 제어될 수 있지만 강제 사항은 아니며, 필요에 따라 추가된 기능 그룹 상태 (Function Group State)의 제어를 받을 수 도 있다. 주요 머신 상태 Startup EM 자신에 의해 요청되..
개관 클래식 오토사의 ComM과 같이 아답티브 오토사에는 하나의 기능군(Functional Cluster)에 속하는 Communication Manger (하위, CM)가 있다. CM은 아답티브 오토사의 런타임환경에 속하는 ARA (AUTOSAR Runtime for Adaptive Applicaiton)를 구성하는 일부로써, 로컬 또는 원격지상 애플리케이션 간의 통신 경로를 관장하는 모듈이다. 서비스 지향 설계 (Service-Oriented Architecture, 하위 SOA)를 기본으로 하는 아답티브 오토사는 통신 또한 서비스 지향 설계 (Service-Oritented Communication)를 따르는데, 이는 서비스 탐색 (Service Discovery)을 통해 시스템 구동 중 애플리케이션..
포직스 표준과 호환되는 운영체제들은 각자의 내부설계와 구현방식에 따라 다양한 파일 시스템들을 제공하는데, 그중 QNX의 경우 아래와 같이 구분되는 파일 시스템들을 지원하나, 리눅스와 다른 파일시스템 내부 구조를 가지므로 이에 대한 사전 이해가 필요하다. 이미지(Image) 파일시스템 QNX 커널인 procnto 프로세스가 RAM 파일시스템과 함께 기본적으로 제공하는 파일 시스템 IFS (Image Filesystem) 또는 OS 이미지로 불리는 시스템으로 커널과 최소 필요 파일들을 포함 시스템 설계 초반 별도의 파일 시스템 구성 없이 사용 가능 읽기 전용으로 시스템 구성시 커널, 라이브러리 외 기본 유틸리티들을 파일 시스템상에 추가하여 사용 예외적으로 Shared RAM에 마운트 되는 tmp를 제공하여 ..
QNX의 경우 /tmp 폴더상에 사용자의 추가적인 작업 없이 사용할 수 있는 파일시스템이 커널에 의해 기본적으로 제공되는데, 이는 외관상으로는 일반적인 파일 시스템으로 보일 수 있으나 실제로는 공유메모리 장치 (/dev/shmem)를 투영하는 것으로 아래의 몇 가지 제약사항을 가진다. 디렉터리 생성 현재와 부모 디렉터리 접근을 위한 . 과 .. 엔트리 사용 하드 또는 소프트 링크 실행 프로세스(또는 런어블)에 대해 보호 : 실제 파일 시스템의 경우, 하나의 파일이 프로세스에 의해 사용중일 경우 EBUSY와 같은 에러를 보고 하지만, /dev/shmem의 경우 접근 프로세스가 임의 종료될 수 있다. 만약, 일반 어플리케이션에서 /tmp 상에 특정 폴더를 생성하고 파일을 일시적으로 저장하고자 하는 경우 또는..
로봇 프레임워크에서 현재까지는 파일의 존재 여부를 확인하기 위해 os 빌트인 키워드인 Should Exist를 사용할 수 있지만, 파일의 존재를 파악하여 추가적인 테스트 절차를 구현해야 하는 경우 이 키워드를 사용 시 해당 테스트를 종료하게 되므로 테스트 케이스 중간시점에 사용하기에는 적절하지 않다. 어찌 보면 간단한 방법으로 자신만의 파일 존재 확인 함수를 아래와 같이 os나 pathlib라이브러리를 이용한 파이썬으로 구현하여 로봇 프레임워크 라이브러리로 사용할 수도 있겠으나, from os.path import exists def file_exists(path_to_file): return exists(path_to_file) ################# or ################# fr..
테스트 케이스는 해당 섹션의 선언 후에 기술되는 첫 문장을 첫 테스트 케이스의 이름으로 인식하게 된다. *** Test Cases *** Hello World in ${SUITE NAME} Test Suit FOR ${index} IN RANGE 1 11 Log Hello world ${index} END 위의 예제에서와 같이 *** Test Cases *** 섹션 후, 기술된 Hello World in ${SUITE NATE} Test Suit 가 첫 번째 테스트 케이스명으로 인식되며 들여 쓰기 후에 기술된 키워드들로 해당 테스트 케이스를 구현하게 된다. 테스트 케이스명에서는 상기 예제와 같이 이미 정의된 자동 변수를 사용하여 좀 더 유연하게 이름을 정의할 수 도 있다. 테스트 케이스를 설명하기 위해서..