FR_page.11

김수현·2025년 3월 26일

Suhyeon's 개발일지

목록 보기
14/34

산불에 필요한 데이터 F_tmep, F_humidity, F_pressure, F_gas을 socket으로 받아오면 packet을 처리하고, 화면에 보여주는 과정을 개발했다.

일단. socket.js파일에 protocol에 맞게 info와 item, size, format을 설정해주었다.

    { info: 0x50, item: 'F_Temp', size: 2, format: HEX100_, unit: '℃'},
    { info: 0x51, item: 'F_Humidity', size: 2, format: HEX100, unit: '%'},
    { info: 0x52, item: 'F_Pressure', size: 4, format: HEX},
    { info: 0x53, item: 'F_Gas', size: 4, format: HEX},

그런 다음에 pgadmin을 통해 위 4개의 열을 packet 테이블에 추가해주고, packet.model.js 에 아래 코드를 추가해주었다.

F_Temp: {
        type: DataTypes.DOUBLE,
        field: "f_temp"
      },
      F_Humidity: {
        type: DataTypes.DOUBLE,
        field: "f_humidity"
      },
      F_Pressure: {
        type: DataTypes.DOUBLE,
        field: "f_pressure"
      },
      F_Gas: {
        type: DataTypes.DOUBLE,
        field: "f_gas"
      },

추가한 후 hercules를 통해 나의 ip와 port number을 통해 connect 후 packet을 send했다.

그 결과 제대로 받고 protocol에 맞게 저장이 된 걸 확인할 수 있었다.

--> 막혔던 부분 : packet을 전송하는 과정에서 안에 protocol을 변경하고 보냈다. 하지만 우리 protocol은 내용에 따라 checksum / length가 변하기 때문에 건들면 안된다. 이걸 이해하고 소장님께 test packet을 받아와 테스트해보니 제대로 구현이 되었다.

ollectedDataList.js에도 아래 코드를 추가해준 후 (수집데이터)화면에서도 확인할 수 있었다.

			{ grow: 1, minWidth: 30, name: 'F_Temp', key1: 'F_Temp' },
			{ grow: 1, minWidth: 30, name: 'F_Humidity', key1: 'F_Humidity' },
			{ grow: 1, minWidth: 30, name: 'F_Pressure', key1: 'F_Pressure' },
			{ grow: 1, minWidth: 30, name: 'F_Gas', key1: 'F_Gas' },

0개의 댓글