글

spring boot, ms-sql 연동시 java.security.cert.CertificateException 에러 발생(SSL 설정관련)

Spring boot와 ms-sql 연동시 SSL 접속 에러 1. 개발 및 배포 조건 os : linux(로키) spring boot :  2.6 java : 1.8 JDK ms-sql : 2012 2. 에러 증상 The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "Certificates do not conform to algorithm constraints". 3. 에러 원인 기존에 사용되는 java 1.8.0_262이하 버전에서는 특별한 SSL 설정이 필요하지 않았음 SSL 설정과 관련되어 java.security에 아래부분도 주석처리한다. # jdk.tls.disabledAlgorithms~~~~ # jdk.certpath.disabledAlgorithms~~~  java 1.8.0_392 이상을 사용하게 되면서 java.security에 " security.useSystemPropertiesFile" 항목이 추가되어 있어 다음과 같이 설정해줘야한다. security.useSystemPropertiesFile=false *java.security 위치 찾기 : find / -name java.security 4. 추가 확인 사항  java 11이상 버전에서도 적용이 되는지 확인 해야함 연동하는 mssql 서버에서 ssl 적용이 되었을 때만 해당되는지 확인해야 함

PIC16F15 펌웨어 개발

 PIC16F15XXX 펌웨어 개발 1. 사용한 이유  - MCU로써의 특징은 다른 사이트에서도 많이 기재되어 있어 특별히 언급하지 않는다.  - 저가형 보드를 개발해야 됨  - 필요한 기능 : PWM, Timer, UART(디버깅용), ADC 2. 개발 방향  - 간단한 기능을 목표여서 논리회로 구성만으로 제작하려고 했으나 막상 논리회로 구성해보니 오히려 단가가 더 높아져서 저렴한 MCU를 이용해 기능을 구현하기로 함  - 상태를 기억해야되는 기능도 있어서 flashROM 영역도 사용해야 함  - 많은 MCU들이 있지만 PIC 제품이 제일 가격이 낮음  - 센서를 이용한 LED 전등제어가 목표임  3. 진행  - PIC16의 개발은 MPLAB를 이용해서 개발  -  4. 결과

토양 증발산량(ETO) 계산 JAVA 버전

ETO - 토양 증발산량 토양 증발산량이란 토양에서 증발되는 계수를 의미한다. 가뭄과 관련된 직종 또는 직업에서 토양 증발산량을 필요로한다. 아래 내용은 토양 증발산량의 대표적인 측정법인  FAO Penman-Monteith 모형 을 기준으로 JAVA로 작성한 내용이다. ** 1시간 기준으로 토양 증발산량을 계산한 내용 ** j 값은 날짜를 365일변 변경한 값 public static DateTimeFormatter fm_day = DateTimeFormatter.ofPattern("D"); ** t 값은 현재 시간을 나타냄 public static DateTimeFormatter fm_hour = DateTimeFormatter.ofPattern("HH"); public class EtoCalcService {       //DEM, LAT, LONG 값은 지정된 장소에서 측정한다면 상수값으로 사용할 수있다. static final int DEM = 45; static final float LAT = 36.22f; static final float LONG = 127.21f; public double pmet(double j ,double Thr ,double RHhr ,double t ,double Rss ,double u2 ,double Pa)  {     /*     j 오늘 올해에 몇일(day)     DEM 해발(m) 현장 45m     lat 위도(현장 위도36.22)     lon 경도(현장 경도127.21) 공식계산할 때 필요없음, 이미 공식에서 실제 현장 데이터를 입력했음     Thr 한시간에 평균 온도(℃) 센서데이터     RHhr 한시간에 평균 상대습도(%) 센서데이터     t 현제시간(예:새벽2...
이미지
<JavaScript> - 초짜 자바스크립트 개발자  목적 : 현재 날짜와 6일전 날짜 가져오기 * 그래프를 만들때 기간을 조회할 때 유용하게 사용할 있다.   - 그래프는 기본적으로 기간이 필요하기 때문이다.

C 프로젝트에서 MQTT, JSON 사용하기

1. MQTT -> paho.mqtt.c 다운로드 받아서 컴파일해서 나오는 build/output/lib관련 파일을 makefile에 추가 해주면된다. 단 실행 파일 구동시 공유 파일로 되어있어야 되기 때문에 /usr/local/lib에 파일을 추가해주고 LD_LIBARY_PATH로 잡아줘야 한다. 2. JSON -> cJSON-master 다운받아서 컴파일해서 나오는 lib 파일을 makefile에 추가 해주면 된다. 단 실행 파일 구동시 공유 파일로 되어있어야 되기 때문에 /usr/local/lib에 파일을 추가해주고 LD_LIBARY_PATH로 잡아줘야 한다. *make 가 안될때 1.fatal error: openssl/ssl.h: - sudo apt - get install libssl - dev 2. nfs 상태의 파일을 컴파일하면 심볼릭 링크가 안된다. 윈도우와 리눅스 파일 시스템이 다르기 때문이다. 따라서 작업은 home 디렉토리 밑에서 해야한다. 3.cp -d : 심볼릭 링크 그대로 복사하기를 해야한다ㄴ 4. 링크 설정 : /usr/local/lib 에 복사해 놓으면    export LD_LIBRARY_PTAH=/usr/local/lib    이후 적용을 위해 ldconfig 를 실행한다.

linux error "cannot open shared object file:No such file or directory"

linux error "cannot open shared object file:No such file or directory"  (1 ) Find where the library is placed if you don't know it. sudo find / -name the_name_of_the_file.so (2) Check for the existence of the dynamic library path environment variable(LD_LIBRARY_PATH) $ echo $LD_LIBRARY_PATH if there is nothing to be displayed, add a default path value (or not if you wish to) $ LD_LIBRARY_PATH=/usr/local/lib (3) We add the desire path, export it and try the application. Note that the path should be the directory where the path.so.something is. So if path.so.something is in /my_library/path.so.something it should be : $ LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/my_library/ $ export LD_LIBRARY_PATH $ ./my_app

실리콘렙스 ember zigbee - 3

이미지
Simplicity Studio를 이용한 다운로드 1. ISA3에 PC에 연결하고 command "em3xx_isa.exe"를 이용해서 pc 네트워크에 포함될 수 있도록 수정한다. 2. 수정한 결과를 확인한다. 3. Simplicity Studio에 정상적으로 연결된 경우 아래와 같이 녹색이 들어온다. 4. upload 기능을 사용할수 있다. 5. 부트로더가 최초에 다운로드되지 않았다면 포함하여 다운로드해야 한다.

실리콘렙스 ember zigbee - 2

이미지
부트로더 올리기 ZCL Application Framework V2 설정하기 1. 시리얼 통신 사용하기 *빨간색 부분을 체크해야 시리얼통신 확인

실리콘렙스 ember zigbee - 1

이미지
1. 제품개발 관련하여 실리콘렙스의 em357을 사용 2. cortex-m3 기반 모듈 3. 실리콘렙스에서 제공하는 emberznet pro stack 사용 사용한 보드 : EM35X-DEV(개발용 보드) 스텍버전 : EmberZNet5.4.4 샘플버전 : ZCL Application Framework V2 -> EmberZNet 5.4.4.0 GA SoC 5.4.4.0              : -> HaSampleGateway, HaSampleLight, HaSampleSwitch 개발 툴 : Simplicity Studio4, 컴파일러 : IAR(ARM)7.30 다운로드 (툴): ISA3 Utilities 다운로드 방식 : *.s37 파일 업로드

CC2650 BLE 서비스 등록, READ, WRITE, NOTIFY 해보기

Ti에서 제공하는 BLE 스텍을 사용해서 통신하기 먼저 BLE 스텍에서 Profiles 그룹에 있는 서비스들을 이용하면 쉽게 구현할 수 있다. 서비스 API를 살펴보면서 하면 쉽게 할 수있다. 1. 먼저 static 함수들은 서비스파일에서만 사용할 수 있기때문에 그외의 파일에서 호출 할 수 없다. 따라서 2. 나머지 서비스 헤더 파일에 extern 되어 있는 함수들을 사용자 응용 파일에서 호출해서 사용하면된다. 예를 들면 서비스 등록, 콜벡 등록, 파라미터 수정, 읽기등이 해당된다. 3. 서비스 파일을 어떻게 설정하느냐에 따라서 서비스의 기능을 정할 수 있다.  Enabler Characteristic Properties에 해당되는 변수값을 설정하면 된다. 3가지 항목은 아래와 같다. -GATT_PROP_READ -GATT_PROP_WRITE -GATT_PROP_NOTIFY 이 외에도 여러가지가 있으니 gattservapp.h를 살펴보면 될것 가탇. 4. 서비스 등록에 관련된 내용은 아래와 같다. 사용자가 하고 싶은데로 설정하면 될것 같다. -Service attribute -Characteristic Properties -State Characteristic -Characteristic Configs -Characteristic User Description 이 외에도 여러가지가 있다. 5. Profile Attributes - Table을 통해서 프로파일의 구성을 설정할 수 있다. 6. readAttrCB 콜백함수를 통해서 Read로 들어오는 이벤트를 처리할 수 있다. 7. writeAttrCB 콜백함수를 통해서 Write로 들오는 이벤트를 처리할 수 있다. 8. AddService 함수를 통해서 사용자가 서비스를 등록할 수 있다. 9. SetParameter 함수는 사용자 코드에서 호출하여 파라미터를 설정해 놓을 수있다. 10. GetParameter 함수는 사용자 코드에서 변경된 파라미...

CC2650 UART 해보기

CC2650은 Coretex-M3로 ARM 구조를 따른다. 하지만 본인은 아직까지 ARM 구조를 다뤄본적이 없기 때문에 이번 기회를 통해서 제어 해보기로 한다. 기존해 해봤던 MSP430 이나 8051 구조에서는 각 핀이 할 수 있는일이 정해져있었다. 기본적으로 GPIO 제어는 대부분의 핀에서 할 수있었지만 해당핀의 고유 기능이 정해져있어서 고유 레이지스터를 통해서 정해진 핀을 사용할 수 있었다. 하지만 Coretex-M3에서는 모든 핀이 GPIO 뿐만아니라 사용자가 요구하는 기능을 수행 할 수 있다. 따라서 UART 통신을 구현할 때에도 정해진 핀이 없기 때문에 사용자가 먼저 핀에 대한 설정을 해줘야 한다. 이런 초반작업에 대한 내용을 사용자가 모두 알아야 되는 불편함 때문인지 아니면 사용자 편의 기능을 위해서인지 TI에서는 CC2650에 사용할 수 있는 TI-RTOS를 지원해준다. TI-RTOS를 사용하면 사용자는 간편하게 핀설정 뿐아니라 UART, I2C, PWM등 해당 칩이 지원하는 기능들을 손쉽게 사용할 수 있게 되어 있다. 어떻게 보면 내가 점점 더 TI칩을 사용하게 되는것이 이런 편의 기능을 계속 제공해주기 때문이라는 생각도 든다. 어쨌든 CC2650의 UART를 사용하기 위해서는 TI-RTOS에서 제공하는 API호출을 통해서 아래와 같이 사용할 수 있다. 핀설정은 아래와 같은 파일에서 확인 할 수 있다. *IOID에 대한 하드웨어 핀 확인은 datasheet를 보면 알 수 있다. #define Board_UART_RX                       IOID_12 #define Board_UART_TX                       IOID_4   먼저 사용하고자 하는 프로젝트에 사용할 ...

CC2650 BLE 만들기 #2 - Notify 해보기

#BLE 기본 설정에 대한 이해가 필하다.  : 기본적으로 대상이 되는 장비는 기본적으로 Advertsing 모드로 동작하고 스마트폰은 Scan 모드로 동작한다.  : 스마트폰은 Scan 모드를 통해서 접속할 장비를 검색을 할 수 있다.  : 접속하고 나면 두 장비는 Central 과 Peripheral 각각 하게 된다.  : 스마트폰이 Central 역할, 장비가 Peripheral 역할을 하게된다. #Read 기능  : 스마트폰에서 장치의 상태 정보를 확인 할 수 있다. #Write 기능  : 디바이스 정보를 수정 할 수 있다. #Notify가 가능하다.  : 디바이스에서 변경되는 정보를 자동으로 업데이트 받을 수 있다. #CC2650을 BLE 스텍을 이용한 테스트 방법  : Ti 사이트에서 BLE 스텍을 다운로드 받는다.  : 예제에서 다음 부분을 수정하면 내가 원하는 BLE 장비를 만들 수 있다. #디바이스 서비스 등록하기  * XX_AddService - Initializes the Simple Key service by registering  *                 GATT attributes with the GATT server. #디바이스 파라미터 프로파일 업데이트 /*  * XX_SetParameter - Set a Simple Key Profile parameter.  *  *    param  - Profile parameter ID  *    len    - length of data to right  *    pValue - pointer to data to write.  This...

CC2650 BLE 만들기 #1

1. Ti 에서 만들어 팔고있는 CC2650DK 보드를 이용한 BLE 예제 돌려볼때 주의할 점   #. Ti를 홈페이지를 통해서 CC2650에 사용할 수 있는 BLE 스텍을 다운로드 받는다.       : 로그인 해야 하는 불편함이 있음   #. 예제를 위한 IAR 컴파일러를 설치한다.       : 버전이 정확히 맞지 않으면 컴파일 에러가 발생하기 때문에 BLE 스텍 가이드 문서를 참조하여 똑같은 컴파일러 버전을 다운로드 받아서 사용한다.       : 30일 무료버전을 받을 수 있다.   #. BLE 스텍을 설치한 폴더에서 가지고 있는 보드에서 가능한 샘플을 선택한다.       : 여러보드들이 있어서 그런지 예제하나에 여러 보드를 설정을 통해서 사용할 수 있게 해놓았다.     #. 컴파일 해보기       : 컴파일시 사용자 지침서를 꼭 확인하고 컴파일을 해야한다.       : 예제 프로젝트 구성을 보면 APP, STACK 두가지의 프로젝트를 제공하는데 APP는 STACK을 사용하여 컴파일 하기 때문에 반드시 처음이나 STACK이 수정되었을 때 STACK을 꼭 컴파일 해줘야한다.       : 절차는 아래와 같다.         1. Select the new stack project.         2. Select Project→ Download→ Download Active Application to download the stack project.         3. Select the application project.        ...

CC1200 900Mhz #2 - CCA(Channel Clear Assessment) 설정하기

이미지
1. CCA 기본설정은 설정 안함으로 되어있다.  하지만 여러 노드들을 사용하다보면 통신이 겹칠 때가 있다. 그래서 CCA 설정을 하지 않으면 아래와 같은 결과를 볼 수 있다. <그림> <그림> 하단부분이 CCA 설정하지 않았을 때 결과 이고, 상단 부분이 CCA 설정을 했을 때 정상적으로 주고, 받기가 되고 있는 상황이다. 2. CCA 레지스터 설정은 아주 간단한다.  - CC1200 user guide를 비고 PKT_CFG2 레지스터 값을 사용자가 원하는데로 설정해주면 된다.

CC1200 900Mhz #1 - 시작하기

1. 제공하는 기본 예제 사용의 한계    - eszy_link 예제를 통한 통신 셋팅을 사용    - 기본 예제를 바탕으로 설정하였기 때문에 여러가지 기능이 있음에도 사용하지 못하는 문제    - 앞으로 CC1200을 이용해서  거창하게 RF 스텍은 아니 더라도 편하게 사용할 수 있는 RF 통신 스텍 비스무리 한걸 만들어 보고자 한다.    - 같이 할 펌웨어 블로거가 있으면 좋겠다. 2. MSP430F5438 + CC1200 을 이용    - 기본적으로 저전력과 여러가지 성능이 뛰어난 MSP 칩을 이용 3. Ti에서 제공하는 여러 예제를 참고하여 기본적인 설정을 시작 *CC1200 : Ti에서 개발한 400, 900Mhz RF 전용 칩이다. *MSP430F5438 : Ti에서 개발한 저전력 전용 MCU

linux 시스템 정보확인

cat /etc/*-release | uniq 명령어를 사용하면 시스템 정보를 확인 할 수 있다.

centos에서 gdal_landsat_pansharp 커멘드 사용하기

gina-alaska에서 제공하는 dans-gdal-scripts 사용 방법 1. 기본사용 방법    a. GitHub에서 dans-gdal-scripts를 검색하면 기본적으로 우분투를 사용해서 설치하는 방법을 제공한다.    b. 우분투 사용자라면 쉽게 설치를 할 수 있다. 하지만 centos 사용자에 대한 설치 방법은 제공하고 있지 않기 때문에 아래와 같이 하면 해결할 수 있다. 문제 : centos에서 dans-gdal-scripts 설치 안되는 문제 해결방법 : dans-gdal-scripts를 centos에서 사용하려면 기본적으로 gdal 과 boost lib를 설치해야 한다. (gdal의 사용법은 본 블로그에서 검색하면 알 수 있다.) boost lib는 yum으로 설치할 수 있으나 버전의 호환성을 가지기 때문에 나는 소스를 다운로드 받아 설치하였다.  http://www.boost.org/doc/libs/1_46_1/more/getting_started/unix-variants.html 경로를 통하면 boost 소스파일을 다운로드 받을 수 있고 또한 설치 방법도 소개하고 있기 때문에 따라하면 된다. boost 설치방법 1. 다운로드 받은 파일을 압축해제한다. 2. 압축해제한 폴더로 이동한다. 3. ./bootstrap.sh 또는  ./bootstrap.sh --prefix= path / to / installation / prefix 4.  ./bjam install 명령어를 실행하면 정상적으로 설치된다. gdal 과 boost가 정상적으로 설치되면 gans-gdal-scripts를 압축해제한 폴더에서 아래와 같은 명령어를 입력한다. 1. ./autogen.sh 2. ./configure # --prefix=/your/favorite/prefix 3. make 4. make install

scidb version 14.8 중단에 따른 14.12설치

scidb version 14.8 중단에 따른 14.12설치 원인 : Paradigm4에서 14.8을 이제 지원하지 않기로 했나보다, 기존에 설치되던 파일을 이용해서 설치했더니 에러가 나서 사이트에서 확인 했더니 정말 14.8관련된 ftp가 지워졌다.  해결방법 : 그래도 설치해야 되니 다음 버전으로 설치했다. 최신버전은 아니지만 회사에서 사용했던 경험이 있는 분의 도움으로 아래와 같이설치하면 된다.  설치방법 : scidb 14.12 설명서(pdf본)을 받으면 2가지 설치 방법에 대해서 설명한다. 1. single : 이 방법은 기본 설치 방법으로 여러대의 cluster를 사용하지 않고 한대로 간단한 테스트를 할 수 있는 정도의 환경을 꾸며주는 것으로 판단된다. 따라서 설치도 쉽고 간단하다.   #우분투를 이용한 설치 방법   wget https://downloads.paradigm4.com/scidb-14.12-repository.deb   dpkg -i scidb-14.12-repository.deb   apt-get update   apt-get install scidb-14.12-installer      #CentOS or RHEL   yum install -y https://downloads.paradigm4.com/scidb-14.12-repository.rpm   yum install -y scidb-14.12-installer 2. cluster   #클러스터는 설치 테스트를 진행하지 못 함

HP 서버 OS 설치시 HDD를 잡지 못하는 문제

HP 서버 OS 설치시 HDD를 잡지 못하는 문제 원인 : 1. HDD를 1개만 구매했을 경우 RAID를 만들지 못하기 때문에 서버구입 이후 최초 OS 설치시에 설정을 해줘야 한다. 2. 기본으로 설정 값이 RAID를 구성했을경우이기 때문에 정상적으로 HDD가 잡히지 않는다. 해결방법 1. 최초 부팅시 F9로 System Utility로 진입한다. 2. BIOS/Platform Configuration(RBSU) 메뉴 선택 3. System Option 선택 4. SATA Controller Option 선택 5. Enable STAT Configuration 선택 6. Enable SATA AHCI Support 으로 선택 7. 저장 그리고 나서 Boot모드를 UEFI에서 Leracy ~~ Mode를 선택하고 저장 후 리부팅 설치를 CD 또는 USB로 할지를 선택 후 OS 설치를 하면 정상적으로 HDD가 보이고 설치할 수 있다.

window hosts 설정

C:\Windows\System32\drivers\etc 아래에 hosts 파일에 수정하면 바로 적용된다. # Copyright (c) 1993-2009 Microsoft Corp. # # This is a sample HOSTS file used by Microsoft TCP/IP for Windows. # # This file contains the mappings of IP addresses to host names. Each # entry should be kept on an individual line. The IP address should # be placed in the first column followed by the corresponding host name. # The IP address and the host name should be separated by at least one # space. # # Additionally, comments (such as these) may be inserted on individual # lines or following the machine name denoted by a '#' symbol. # # For example: # #      102.54.94.97     rhino.acme.com          # source server #       38.25.63.10     x.acme.com              # x client host # localhost name resolution is handled within DNS itself. # 127.0.0.1       localhost # ::1   ...