개발

C#으로 하는 GPIB 통신 -6-

워시기 2024. 11. 15. 10:44
반응형

이제 현재 UI 작업하였고 클래스도 만들어 구조를 정하였습니다.

각각 클래스에 코드 작업을 하도록 하겠습니다.

 

  • JsonManager.cs (v)
  • DeviceInfo.cs
  • CommManager.cs
  • GpibManager.cs
  • ControlManager.cs
  • Form1.cs

위의 클래스를 코딩작업을 해야 합니다.

앞서 JsonManager.cs 클래스는 완료하였고 이제 DeviceInfo.cs를 작업하겠습니다.

구조를 정하고 각 기능 클래스들을 하나씩 작성하고 마지막으로 UI에 붙여주도록 하겠습니다.

 

DeviceInfo.cs 파일은 검색된 장비들에 대한 데이타를 보관할 클래스가 필요하다고 생각하여서 만들었습니다.

단일 장비일경우 활용도가 약할텐데 다수의 같은 구조의 데이타를 가진 장비의 정보를 가진 객체를 활용할려면 장비 정보에 대한 클래스를 만드는 것이 좋을것 같았기 때문입니다.

 

다수의 장비가 검색될때 Dictionary<"장비 별칭", "장비 정보 객체">를 만들어서 장비별칭으로 딕셔너리에서 검색해서 해당 객체내부의 세션을 통해 통신을 하려고 합니다.

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using Ivi.Visa;

namespace GPIB_Demo
{
    public class DeviceInfo
    {
        //==================================================
        // 다수의 검색된 장비들의 데이타를 보관하기 위한 클래스
        //==================================================
        public DeviceInfo(IMessageBasedSession session, string addr, string info)
        {
            this.session = session;
            this.addr = addr;
            this.info = info;
        }

        public IMessageBasedSession session = null;
        public string addr = string.Empty;
        public string info = string.Empty;
    }
}

 

코드는 위와 같습니다.

검색하여 장비와 연결되하고 [ "*IDN?" ] 명령을 통해 장비의 정보를 받아오는 상태가 검색완료인 상태입니다.

이때의 정보를 통신에 사용해야 하기에 장비의 정보를 저장하기 위해 위의 클래스를 사용합니다.

 

이제 위의 객체를 딕셔너리에 넣으면 키값을 통해 해당 정보들을 편하게 불러올 수 있게 됩니다.

 

이제 장비의 데이타를 객체를 통해 전달하는 준비가 되었네요.

 

다음에는 통신에 대한 부분을 하도록 하겠습니다.

반응형

'개발' 카테고리의 다른 글

C#으로 하는 GPIB 통신 -8-  (6) 2024.11.16
C#으로 하는 GPIB 통신 -7-  (16) 2024.11.15
C# Dictionary를 JSON으로 저장하기  (3) 2024.11.15
C#으로 하는 GPIB 통신 - 5 -  (5) 2024.11.14
CR(Carriage Return) LF(Line Feed)란?  (47) 2024.11.13