SmartX New Framework 사용 권장 | ||
---|---|---|
|
SmartX Framework 설치파일입니다. 자동설치 및 수동설치 파일이 포함 되어 있습니다.
설치환경 : Windows XP, Windows Vista, Windows 7, Windows 10
개발 Tool : Visual Studio 2005/2008
SmartX Framework 설치파일 지원 | IEC266 - Series | IEC667 - Series | IEC1000 - Series | 지원 툴(Visaul Studio) |
---|---|---|---|---|
.NET Compact Framework 2.0 Base SmartX Framework | 지원 | 지원 | 미지원 | Visual Studio 2005/2008 |
.NET Compact Framework 3.5 Base SmartX Framework | 미지원 | 지원 | 지원 | Visual Studio 2008 |
- SmartX Framework 설치 프로그램 설치 시 필요한 항목을 선택하여 설치할 수 있도록 기능이 개선되어 SmartX Framework을 사용하지 않은 경우에도 개발 환경 자동 설치(필수 항목)를 선택적으로 설치할 수 있도록 하였습니다.
2. SmartButton- SmartButton에서 SpecialFunction 속성이 SmartX.SmartButton.SPECIALFUNC.SAFE, SmartX.SmartButton.SPECIALFUNC.REPT,
SmartX.SmartButton.
SPECIALFUNC.SAFE_REPT일 경우 프로그램에서 CPU 사용률이 100%일 때 SmartButton의 입력이 안 되거나 불규칙적으로 동작하는 문제가 발생합니다.
SAFE, SAFE_REPT, REPT 모드에서 CPU 사용률이 100%인 경우에도 버튼 입력이 정상적으로 동작하도록 개선하였습니다.
- SmartMemory에서 시스템 메모리와 CPU 사용량을 확인하는 모니터링 창(MemoryStatusInfomationShow) 출력 시 Loop문의 사용으로 CPU의 사용량이 100%가 일정 시간 유지할 경우 모니터링 정보의 갱신이 안 되는 현상을 개선하였습니다.
4. SmartUPDown- SmartUPDown에서 TextLabel의 정렬 관련 속성 TextAlign, TextVAlign 적용 시 항상 기준점이 좌측 상단으로 적용되어 정확한 정렬 처리에 문제가 있어 이를 개선하였습니다. 또한, 영역의 기준을 폼 디자이너에서 편리하게 확인할 수 있도록
TextLabelBoundaryLine 속성을 추가하여 정렬 관련 속성값을 편리하게 수정할 수 있습니다.
※ TextLabel 정렬 기능이 개선되어 기존의 프로젝트에서 SmartX Framework 업데이트를 적용하실 경우 TextLocation, TextLabelWidth, TextLabelHeight 속성값의 조정이 필요할 수 있습니다.
- SetWriteOnlySTX(), SetWriteOnlyETX() 메서드로 외부 장치와 프레임 구조의 통신 처리 시 송/수신 STX 또는 ETX가 서로 다른 경우 송신 데이터의 STX 또는 ETX의 코드를 별도로 지정할 수 있는 기능을 추가했습니다.
2. SmartConfigs- USBWirelessIPSettings.SetUSBWirelessLANConfig_CheckRetr() 메서드로 AP와 연결 상태를 리턴하며 인자값에 따라 무선랜과 AP의 연결을 재시도 처리하실 수 있도록 기능을 추가했습니다.
3. SmartThread- Worker Thread로 반복적이면서 빠른 연산 처리 시 사용자 인터페이스(UI)를 갱신하기 위한 RaportProgress() 메소드로 빠른 반복 처리를 함과 동시에 일정한 조건에 따라 사용자 인터페이스(UI)를 업데이트할 수 있도록 기능을 추가했습니다.
버그수정 1. SmartComboBox- Text 속성 입력 시 항목에 없는 Text가 적용되는 문제와 화면 갱신의 문제를 수정했습니다.
2. SmartTCPClient- None Blocking 방식으로 Client Socket을 사용할 경우(SetBlocking(False)로 설정할 경우) 수신 처리 이벤트가(OnReceiveHandler) 발생되지 않는 문제를 수정했습니다.
기존 PortXDetection_LevelChange(), PortXDetection_NegativeEdge(), PortXDetection_PositiveEdge() 메소드의 사용성을 개선하기 위해 기능을 통합한 PortDetection() 메소드를 추가했으며, 기존 메소드는 제거함
1-2. SmartUpdate업데이트 상태 표시창 배경 이미지 변경
- PortDetection() : 기존 PortXDetection_LevelChange(), PortXDetection_NegativeEdge(), PortXDetection_PositiveEdge() 메소드의 기능을 하나로 통합
- PortDetection_Initialize() : Polling 방식으로 입력신호를 감지하는 경우 PortDetection() 메소드와 관련하여 포트의 이전 상태를 초기화
- ReceiveIndicator : 현재 오픈된 포트의 데이터 수신 상태를 확인하며, 시리얼 통신에 문제가 발생하는 경우 오픈된 포트에 실제 데이터 수신 여부를 확인하여 문제 발생 원인을 파악 가능
- ReceiveIndicatorStart() : 시리얼 포트의 데이터 수신 감지를 시작
- ReceiveIndicatorStop() : 시리얼 포트의 데이터 수신 감지를 중지
- ShowDialog_NoneBlocking() : 기존 ShowDialogNoneBlock() 메소드의 이름 변경
- CloseDialog_NoneBlocking() : ShowDialog_NoneBlocking() 메소드로 출력한 None-Blocking 방식의 모달 창을 닫음
- ShowDialog() : 자식 폼으로 추가되지 않은 폼을 Modal 방식으로 호출
- SetDoubleClickEnable() : SmartLabel을 여러 번 클릭 시 DoubleClick 이벤트 발생을 방지
2-5. SmartConfigs - USBWirelessIPSettings : IEC-Series에서 무선랜(신형, 구형)의 IP 설정을 변경할 수 있는 기능 추가 (IEC266-Series 미지원)
- SetUSBWirelessLANConfig() : USBWirelessIPSetting 속성으로 위치 변경
- AddFont() : Static 메소드로 폰트를 제품의 Fonts 폴더에 등록하지 않고 동적으로 등록하여 적용 및 사용 가능
- Start() / Finished() : Static 메소드로 SmartSplash 사용 전 항상 인스턴싱해야하는 기존 Start(), Finish() 메소드를 개선
2-7. SmartRemotePC- 프로그램 실행 시 관리자 권한을 묻는 기능 추가
- 파일명 변경 시 HNS 로고 및 홈페이지 주소를 제거하는 기능 추가
- ReceiveFrameDebugMode : 속성값이 True일 때 설정한 ErrorCheckMode와 다른 데이터가 수신되는 경우 에러가 발생하는 버그 수정
3-2. SmartSound- Volume : 제품의 Volume을 설정했을 때 SmartSound의 Volume 설정값에 올바르게 적용되지 않는 버그 수정
3-3. SmartPWM- Polarity1 / Polarity2 : StartPWM() 메소드 호출 전 설정 시 파형이 올바르게 반전되지 않는 버그 수정
3-4. SmartButton- DisableImage : 디자이너 속성창에서 Enable 속성값 변경 시 RunTime 모드에서 이미지가 올바르게 적용되지 않는 버그 수정
3-5. SmartDraw- SetBackImage : Chart 기능 구현 시 SetBackImage로 설정한 이미지가 지워지는 버그 수정
3-6. SmartProgressBar- TextAutoRotation : IEC1000-Series에서 SmartProgressBar의 Direction 속성값이 Vertical일 때, TextAutoRotation 속성값이 True인 경우 Text가 출력되지 않는 버그 수정
3-7. SmartKeyboard - Mode : SmartKeyBoard를 2개 사용하여 각 Mode 속성값을 Nomal, Numerical로 할 경우 Nomal 키보드의 Shift 클릭 후 Numerical 키보드의 키를 클릭하면 Nomal 키보드의 Shift 입력이 해제되는 버그 수정
- TABKeyDisable : 속성값이 True일 때 SmartKeyBoard의 Mode 속성값이 Numerical인 경우 숫자키 “7”이 눌리지 않는 버그 수정
- DecButDisableImage / IncButDisableImage : Enabled 속성값 변경 시 버튼의 Disable 이미지가 올바르게 표시되지 않는 버그 수정
- AddFont() : Static 메소드로 폰트를 제품의 Fonts 폴더에 등록하지 않고 동적으로 등록하여 적용 및 사용 가능
- SetApply() : IEC1000-Series에서 SetApply() 메서드 호출 시 IP가 올바르게 적용(Rebind)되지 않는 버그 수정
3-10. SmartRemote- Start() 메소드 호출 후 SmartRemotePC와 연결하지 않고 포트 포워딩으로 접근할 경우 CPU 사용량이 100%로 고정되는 버그 수정
3-11. SmartFile- WriteString_Begin() : 인덱스를 지정하여 호출 시 파일의 마지막 줄에 개행 문자가 삽입되는 버그 수정
3-12. SmartUpdate- Message 영역의 Text가 영어일 때 문장이 길어질 경우 자동으로 개행 되지 않고 잘려져서 보이는 버그 수정
3-13. SmartPlayer- Volume : 소리의 증가/감소 설정 시 호출될 때마다 설정한 값에서 1씩 더해져서 적용되는 버그 수정
- SetUSBWirelessLANConfig() : USB 무선랜 사용 시 AP에 연결할 수 있는 기능 추가 (IEC266-Series 미지원)
- IEC-Series SDK 설치 확인 및 진행
- Windows Mobile Device Center 설치 확인 및 진행
- Windows Mobile 2003 기반 장치 연결 서비스 시작
-.NET Compact Framework Target 파일 설치
- SmartX Framework 설치
SmartScreenSaver는 IEC-Series를 고정된 화면으로 장시간 켜놓는 경우 LCD패널에서 발생할 수 있는
다양한 문제(불량화소 및 BackLight-LED 수명감소)를 방지하기 위해 지정된 시간동안 화면터치 입력이
없는 경우 화면보호 기능을 최소의 코딩으로 편리하게 구현할 수 있도록 만들어진 컴포넌트입니다.
1. 다양한 스크린 세이버 모드 지원
- 이벤트 컨트롤, 백라이트 컨트롤, 텍스트 출력 모드, 외부 프로그램 실행
2. 스크린 세이버 동작 시간 설정 가능
3. 텍스트 출력 모드일 경우 다양한 속성 지원
- 텍스트 출력 방식 선택 가능 (대각선 이동, 랜덤 출력)
- 텍스트 출력 빈도 및 속도 설정 가능
- 텍스트 폰트, 크기, 색상 설정 가능
- SetPenStyle() : 선의 스타일(실선, 파선)을 설정하는 기능 추가
2. SmartUpdate- SetFontName(string strFontName) : 다이얼로그 창의 텍스트를 사용자 폰트로 지정하는 기능 추가
3. SmartConfigssmartConfigs1_ONTouch_MouseClick이벤트에서 MOUSESTATECODE인자 추가 : MOUSE_DOWN, MOUSE_UP 의 상태를 반환
프로그램 종료시 smartConfigs1.Display.Touch_MouseClickStop();를 반드시 호출해야함
4. SmartTcpClient- Connect(int iTimeout) : iTimeout 인자 추가. TCP클라이언트에서 TCP서버로 연결시 네트워크의 문제 로 연결이 안되는경우 최대 설정 시간(iTimeout)만큼 서버와의 연결을 시도하되 연결 성공 시 바로 리턴
- Release() : SmartPlayer Stop이후 프로그램 종료시 메모리에 SmartPlayer프로세스가 남아있는것을 방지하는 기능
6. SmartMemory- Release() : CPU사용량 관련 기능의 리소스를 모두 해제합니다.
- SmartComboBox에서 포커스가 벗어났을 때 ItemList가 닫히지 않는 현상 수정
- SmartComboBox가 SmartGroupBox에 추가되어 있을 때 itemList가 SmartGroupBox를 벗어나는 경우
ItemList가 보이지 않는 현상 수정
- IEC266-Series에서 smartRemote1.Start() 호출 시 MissingMethodException이 발생하는 현상 수정
3. SmartConfigs- GetSystemDateTime() 호출 시 변경된 시스템 시간을 올바르게 가져오지 못하는 현상 수정
4. SmartTCPClient- 서버에 연결 또는 연결 해제 시 간혹 ObjectDisposeException이 발생하는 현상 수정
- smartTCPClient1.SetBlocking(false) 로 하여 SmartTCPClient를 NoneBlocking으로 사용 할 때
smartTCPClient1.Connect() 함수 호출 후 프로그램 종료 시 프로세스가 남아있는 현상 수정
- MDI방식의 프로젝트에서 SmartPlayer와 SmartGroupBox를 함께 사용하는 경우 SmartPlayer의 영상이
재생이 안되거나 부드럽게 재생되지 못하는 현상 수정
- RoundRadius의 값을 1이하로 변경하는 경우 인덱스범위초과 현상 수정
- Start()함수를 호출하지 않고 Finish()함수를 호출하는 경우 NullReferrenceException이 발생하는 현상 수정
7. SmartPlayer- 동영상을 연속으로 재생하는 경우 간헐적으로 발생하는 에러 현상 수정
SmartSerialPort의 FrameSeparetionType에 Binary Data를 전송시 STX또는 ETX가 Data에 포함되어 있는 경우 ReadTimeOut속성값을 사용하여 데이터를 올바르게 처리하는 STXANDETX_READTIMEOUT, ETXONLY_READTIMEOUT, STXONLY_READTIMEOUT 기능 추가
2. SmartMessageBox
- SetButsText_NoneBlocking() : SmartMessageBox가 NoneBlocking 방식일 때 SmartMessageBox의 버튼 텍스트를 변경할 수 있는 메서드
- SetCaption_NoneBlocking() : SmartMessageBox가 NoneBlocking 방식일 때 SmartMessageBox의 캡션 텍스트를 변경할 수 있는 메서드
- SetMessage_NoneBlocking() : SmartMessageBox가 NoneBlocking 방식일 때 SmartMessageBox의 메시지 텍스트를 변경할 수 있는 메서드
- Close_NoneBlocking() : SmartMessageBox가 NoneBlocking 방식일 때 SmartMessageBox를 Close하는 메서드
AnimationGIFPlay()와 AnimationGIFStop()을 반복 호출하는 경우 메모리 릭 발생 에러 수정
2. SmartMemoryIEC266-Series에서 CPU사용량 체크 관련 메서드 사용시 MissingMethodException 발생 PinInvoke DLL SmartCPUUsage.dll을 찾을수 없습니다 에러발생 수정
3. SmartSerialPortIEC1000 Lite모델에서 모드변환스위치를 485포트로 설정하고 데이터를 송신 시 "HardWare Framing Error” 발생 개선
4. SmartConfigs
- IEC667 .NET Compact Framework 3.5 버전일 때 smartConfigs1.ControlPanel.TouchCalibration(); 호출시
NullReferenceException 발생하는 에러 수정
- IEC266에서 smartConfigs1.ControlPanel.SyncDateTime(); 호출시 MissingMethodException이 발생하는 에러 수정
IEC266 에서 SmartFTP의 메서드 호출시 MissingMethodException이 발생하는 에러 수정
GetOPMode() : 현재 장비가 Developer모드인지, RunTime모드인지 확인하는 메서드
2. SmartSerialPortSmartSerialPort1_OnPortError : 데이터 송/수신시 수신측 포트 에서 발생하는 에러를 캐치하는 이벤트
ActiveViewToBackImage() : ActiveViewToBackImage()를 호출한 후 BackErase()를 호출해도 도형이 지워지지 않는 문제 수정
PortEWatchStart() 호출 이후 PortEWatchStop() 호출시 프로그램이 멈추는 문제 수정
IEC1000-Series에서 SmartPWM의 ReleasePWM()기능을 호출하거나 SmartPWM의 기능을 사용한 프로그램의 종료시 전압값이 High(3.3v)로 설정되는 버그 수정
EvtExternalStorageAttached : 외부저장장치가 연결/해제 될때마다 2번씩 이벤트 발생하는 문제 수정
UI 디자인 화면에서 일정(스케쥴) 표시 및 관리를 편리하게 사용 할 수 있도록 만들어진 컴포넌트
- 다양한 형태의 디자인 구현 가능
- 캘린더의 크기를 자유롭게 정의할 수 있습니다.
- 모든 디자인적 요소의 이미지 사용 및 투명 처리 기능 제공
- 편리한 이벤트 기능지원
- 일 Marker기능 지원
- 다양한 디자인 효과 관련 설정 기능
SmartKeyBoard에서 키보드 상의 레이아웃, 이미지, 키의 위치/개수, 전체 사이즈 등을 변경하도록
지원하는 컴포넌트 입니다.
- 모든 형태의 키보드를 구현 가능
- 필요한 키만을 정의할 수 있어 커스텀 하기 쉽도록 하였습니다.
- 키 입력 처리 관련 이벤트 제공
- 이미지 설정 및 투명 처리 지원으로 모든 디자인 적용 가능
- 키 레이어 설정으로 한영 및 기타 기호 등의 처리 가능
SmartLaunch는 바탕화면에 사용할 프로그램의 바로가기를 만들고 재부팅해도 바로가기가 제거되지 않도록 하는프로그램 입니다. 이 프로그램은 IEC667/1000-Series에서 사용 가능하며, SmartLaunch는 SmartXFramework의 기능중 일부분 입니다.
- 바탕화면에 바로가기를 생성
- 제품을 재부팅해도 바로가기를 유지
- Flash Disk\Run\Run1 폴더를 이용한 RunTime 모드
EvtExternalStorageAttached 이벤트를 사용하여 외부 저장 장치 연결 해제를 바로 감지하는 이벤트
- ExtStorageDetectionStart() 추가 : EvtExternalStorageAttached 이벤트 기능 활성화
- ExtStorageDetectionStop() 추가 : EvtExternalStorageAttached 이벤트 기능 비활성화
- EvtExternalStorageAttached 추가 : IEC-Series에 외부 저장장치(USB메모리, SD Card)가 연결 및 연결해제 되는 것을 바로 감지하여 지연현상을 방지하는 이벤트
- 범용 Modbus 프로토콜에 맞게 WriteMultipleCoil에서 iNumberOfCoil(코일개수), iByteCount(총바이트개수)를 지정할 수 있는 오버로딩 함수 추가
- WriteMultipleCoil() : 범용 Modbus 프로토콜에 맞게 iNumberOfRegister(레지스터개수), iByteCount(총바이트개수) 를 지정할 수 있는 오버로딩 함수 추가
- Read, Write관련 메서드가 SmartModbusSlave에서 전송한 예외응답정보를 수신하는 기능
모드버스 통신도중 슬레이브(Slave)에서 예외발생시 해당 예외를 마스터(Master)로 송신하는 기능 추가
bSkipSendResponse 속성추가
- 슬레이브에서 마스터(Master)로 데이터의 송신 여부를 설정
SendExceptionResponse 메서드 추가
- 예외응답정보를 마스터(Master)로 전송
- NoneBlocking 방식의 모달창 출력 기능 추가
- SmartX.SmartFormNoneBlockingDialog : NoneBlocking의 모달창 출력지원
- IEC-Series가 Runtime모드일 때 프로그램 종료시 Shell을 로딩하도록 수정
IEC-Series가 Runtime모드일 때 프로그램 종료시 Shell을 로딩하도록 수정
6. SmartSerialPort
STXONLY 속성 추가
- STX(1Byte 또는 2Byte)만으로 Frame구성가능
LabelSelect 메서드 추가
- LableSetTextChange를 사용하여 컨트롤 객체의 텍스트를 수정한 경우 다음키 입력위치가 처음으로 이동하는 현상을 개선할 수 있습니다.
LabelSelect 메서드 추가
- LableSetTextChange를 사용하여 컨트롤 객체의 텍스트를 수정한 경우 다음키 입력위치가 처음으로 이동하는 현상을 개선할 수 있습니다.
Show_NoneBlocking 메서드 추가.
- SmartMessageBox창을 Modal방식으로 띄우고 부모폼(배경이 되는폼)은 NoneBlocking 방식으로 처리
SetBlocking 메서드 추가
- 클라이언트와 서버(SmartTcpMultiServer)의 연결을 동기식(true)으로 할지, 비동기식(false)으로 할지 결정하며 비동기식으로 하는 경우 Connection 실패 시 연결 대기시간을 단축
OnSent 이벤트 추가
- 서버와 클라이언트를 비동기 통신방식, SetBlocking(false)으로 연결하는 경우에 서버에서 클라이언트로 데이터를 전송할 때마다 발생하는 이벤트
SetBlocking 메서드 추가
- 클라이언트(smartTCPClient)와 서버의 연결을 동기식(true)으로 할지, 비동기식(false)으로 할지 결정하며
비동기식으로 하는 경우 Connection 실패 시 연결 대기시간을 단축
OnConnected 이벤트 추가
- SetBlocking(false)으로 연결하는 경우에 클라이언트(smartTCPClient)가 서버에 연결될때(Connected)마다
발생하는 이벤트
OnSent 이벤트 추가
- SetBlocking(false)으로 연결하는 경우에 클라이언트(smartTCPClient)에서 서버로 데이터를 전송할 때(sent)마다 발생하는 이벤트
IEC-Series의 터치를 활성화(TouchEnable(True)) 또는 비활성화(TouchEnable(False)) 시키는 기능과 현재 터치상태를 표시하는 기능(bTouchEnable) 제공
ReadDataDetailFiltering() : 기존대비 외부 입력 속도 개선
ReadDataFast() : 고속으로 아날로그 신호를 입력받는 경우 사용(IEC1000-Series에서만 사용)
- 프로그램상에서 MacAddress를 설정 및 읽을 수 있는 기능 추가
SetMACAddress() : MacAddress를 등록한다. 제품 리부팅을 해야 적용
GetMACAddress() : MacAddress를 읽어온다.
- SetLCDRotation_Save() : 프로그램상에서 화면을 회전하고 저장하는 기능 추가
- 시스템 시간을 불러올 때 밀리초(millisecond) 표현하는 기능 추가
DateTime aaa = smartConfigs1.ControlPanel.GetSystemDateTime();
smartLabel1.Text = "Time : " + aaa.ToString("hh:mm:ss.fff");
- 화면터치 또는 마우스 클릭을 O/S 레벨에서(Event Hooking) 전역적 Click Event 발생기능 지원
Touch_MouseClickStart() 메서드 : 화면의 모든영역에서 사용자 터치 또는 마우스 클릭을 감지 시작
Touch_MouseClickStop() 메서드 : 화면의 모든영역에서 사용자 터치 또는 마우스 클릭을 감지 중지
Display_ONTouch_MouseClick 이벤트 : 사용자가 터치 또는 마우스 클릭한 경우 발생하는 이벤트
화면상의 사용자 터치 또는 마우스 클릭한 지점의 X좌표와 Y좌표를 인자값으로 전달
Capture 기능추가(외부입력 속도가 고속일 때 외부 입력신호를 큐에 저장 후 이벤트 프로세스가 이벤트를 발생하여 입력된 신호를 처리)
EvtPortXDatasChangeCapture 이벤트 추가
- 외부 입력신호를 큐에 저장 후 이벤트 프로세스가 이벤트(EvtPortXDatasChangeFast)를 발생하여 큐에 저장된 입력신호를 출력
IsPortAWatchStart 속성 추가
- 해당 포트의 입력감지시작(WatchStart)여부를 확인
SetPortXWatchPriority() 메서드 추가
- 포트의 입력신호 우선순위를 조절하여 외부 입력신호 수신 안정성을 높일수 있음
SetPortXWatchIdleInterval() 메서드 추가
- 입력 큐의 호출 속도를 조절. 기본값은 10000이며 사용범위는 (100000~10)사이
PortXDetection_LevelChange()메서드 추가
- A~H포트로 입력되는 신호(HIGH > LOW 또는 LOW < HIGH)를 감지
PortADetection_NegativeEdge() 메서드 추가
- A~H포트로 입력되는 신호(HIGH > LOW)를 감지
PortADetection_PositiveEdge() 메서드 추가
- A~H포트로 입력되는 신호(LOW > HIGH)를 감지
GetPortAQueueWaitingCount() 메서드 추가
- 입력 큐의 데이터 개수를 파악하는 기능
WordWrap을 true로 설정하고 Text 속성값 설정 시 문자의 길이가 3자 미만으로 입력 시 에러가 발생하는 버그 수정
2. SmartConfigsIpSettings.DeviceIP를 설정하는 부분에서 에러가 발생하는 버그 수정
3. SmartUpDownForm1위에 SmartUpdown 컴포넌트를 올리고 솔루션 배포 후 프로그램 종료 시 에러가 발생하는 버그 수정
4. SmartKeyboard한글 모드로 키를 입력할때 SmartKeyboard.LabelClear()를 호출하여 TargetObject를 초기화하고 나서 키보드입력을 하는 경우 LabelClear()하기전의 마지막 문자가 삭제되지 않고 출력되는 버그 수정
5. SmartSerialPort기존 IEC266-Series의 RS485SoftwareDetection 속성 값을 true로 설정하는 경우 수신측 장비에서 데이터 수신 시 첫 데이터가 수신되지 않는 문제점 수정 (※ IEC266-Series만 해당)
6. SmartListBoxSmartListBox에서 항목 선택 후 RemoveItem()메서드를 호출 하여 선택한 항목을 지우면 SelectedItemIndex가 -1로 초기화 되지 않는 문제점 수정
7. SmartLockReferenceSNKeys에 키값의 마지막에 세미콜론(;)이 입력되는 경우 RegistrationFormShow()으로 호출된 수동 입력창에서 Registration 키를 클릭 시 프로그램이 정상 등록되는 문제점과 수동 입력창에서 키보드 엔터키 클릭시 프로그램이 정상 등록되는 문제점 수정
8. SmartModbusSmartModbus의 Read, Write관련 메서드에서 올바른 Exception을 리턴하지 못하는 버그 수정
SmartForm과 SmartForm 또는 SmartForm과 SmartInnerForm을 사용하여 MDI형식으로 화면을 구성할 때 UI 디자인에 SmartComboBox를 사용하면 InvalidCast Exception 이 발생하는 문제점 수정
.Net Compact Framework 3.5 환경에서 사용되는 SmartX 버전 2017년 6월 8일 이후에서 smartButton1.Enabled 의 속성값을 false로 하는 경우 smartButton1의 Image가 Disable Image로 변경되지 않는 문제점 수정 (본 내용은 SmartX 버전 2017년 6월 8일 이전 사용자나 .Net Compact Framework 2.0 버전 사용시 관련이 없습니다)
SmartRadioButton1.Checked = false 일때 동일 그룹 아이디의 RadioButton들의 Checked 상태를 전부 검사하여 속도가 느려지는 현상을 개선
2. SmartRemotePCSmartRemotePC 프로그램에서 User Password Setting의 Connection Password를 별표로 처리
Button Click Event에서 SmartButton이 만들어진 Form을 Close 처리시 발생되는 예외(Object Disposed Exception) 발생처리 문제 해결
2. SmartPlayer동영상의 끝 부분 즉, 종료(Finish)되는 시점에서 IsComplete속성이 True 값으로 변경되지 않는 문제점 수정
3. SmartKeyboard Ctrl 키를 클릭하는 경우 targetObject 에 문자 ‘c’ 가 입력되는 문제점 수정
Alt 키를 클릭하는 경우 SmartKeyboard가 비활성화 되는 문제점 수정
Function Code가 0x06인 Preset Single Register(Write Single Register)을 사용하여 SmartModbus Master → SmartModbusSlave로 Data를 요청(Request)하고 SmartModbusSlave → SmartModbus Master로 Data를 반환(Response)하는 경우 The Data Address of the register(시작주소)가 누락되는 문제점 수정과 The value to write (데이터 값)이 2Byte가 아닌 1Byte만 반환되는 문제점 수정.
기존 SmartGPIO의 입력성능을 대폭 개선하여 고속의 입력 처리를 쉽게 구현하도록 만들어진 컴포넌트 입니다. SmartInputCounter는 InputCounter Block과 함께 사용해야 합니다. 별도로 입력을 담당하는 MCU가 있어 고속의 입력신호를 직접 카운팅 합니다.
- SmartGPIO의 입력대비 고속의 입력 처리기능 지원(별도 MCU 처리)
기존 IEC-Series SmartGPIO의 Input 성능 대비 약 27,000배 성능 향상
기존 InputBlock은 22Hz(41ms)에 비해 SmartInputCounter는 680Khz(0.00147ms)속도로 수신가능
- 최대 8채널(ch) 및 최대 64Bit Data Width 지원
- CheckSum Exception 기능 지원으로 데이터 신뢰성 보장
SmartSerialPort는 시리얼 통신을 처리하기 위한 컴포넌트로 Event 또는 Polling방식의 기능을 지원하며 Frame구조와 None-Frame 구조의 통신을 모두 지원하여 다양한 통신환경에 쉽고 편리하게 적용하여 개발할 수 있도록 만들어 진 컴포넌트 입니다.
- Event 또는 Polling 방식의 수신 기능 지원
- Event 수신 시 수신 Queue 지원
- 프레임 구조의 송/수신 기능 지원
- 비 프레임 구조 송/수신 기능 지원
- Error Check 기능 지원
- 송/수신 데이터 표현 방식
- RS485 통신 지원
SmartComboBox 컨트롤(컴포넌트)은 Visual Studio 2005/2008에서 제공되는 ComboBox컨트롤의 부족한 기능을 확장시킨 컴포넌트 입니다. 다음과 같은 특징을 가지고 있습니다.
- 배경 투명 처리 효과 및 스킨 처리
- 각 부분별 이미지 적용 기능
- 모든 디자인 요소의 자동 및 수동 사이즈 조절 기능
- 다양한 스타일을 적용할 수 있도록 모든 디자인 요소 색상 및 형태 변경 기능
- IsConnect() 추가 : IEC-Series(서버)와 PC(클라이언트)의 원격 연결 여부 확인 기능
- ErrorMsgBoxShow 설정 별도로 MessageBox를 출력하는 대신 OnErrorMessageEvent를 발생 하도록 추가
- 버튼 이미지 지원 처리(투명기능 처리)
- 클릭 시 이동 방식 추가
- ConvertUnicodeStringToKSC5601Byte(), ConvertKSC5601ByteToUnicodeString() 한글변환 함수 추가
7. SmartFileini파일의 읽기/쓰기를 지원하는 기능추가
- GetPrivateProfileString : ini파일에서 내용을 읽어오는 static method
- WritePrivateProfileString : ini파일에 내용을 쓰는 static method
- LayoutStyle 속성추가 : 기본 디자인 모드 지원으로 이미지 미 사용 기능 지원 및 편리하게 Layout 설정할 수 있도록 함 (Custom-Default, Right1,Right2, Bottom)
- RepeatIntervalAccelerate 속성 추가 : 반복 입력 즉 누르고 있는 경우 입력 가속도 설정 기능 추가
- OutLinePixel 속성 추가 : 버튼 테두리(외곽선) 두께 조절 기능 기본값 변경. (3→1)
- RepeatIntervalAccelerate 속성 추가 : 반복 입력 즉 누르고 있는 경우 입력 가속도 설정 기능 추가
- 화면상의 좌표(X좌표와 Y좌표)를 인자값으로 입력 받아 해당 좌표를 클릭하는 기능
편리한 레이아웃 설정기능(Custom, Right1, Right2, Bottom, 정렬)추가, 입력 가속도 설정 기능 추가
2. SmartProgressBarBackColor 속성 값 미 설정시 메시지 창 출력. 그림판에서 스포이드로 정확하게 알 수 있음
3. SmartSerialPort, SmartTCPMultiServer, SmartTcpClient 함수명 변경 - 기존 ConvertByteToASCII()를 ConvertAsciiByteToString()로 변경
- 기존 ConvertByteToUnicode()를 ConvertUnicodeByteToString()로 변경
초기 Value값 0이 디자인 모드에서 안 보이는 버그 수정
2. SmartListBoxSelectItemIndex 폼 디자인 속성값 설정 시 Error 발생 버그 수정
3. SmartTrackBar - Bar 끝 쪽 라운드 부분 문제 개선
- 크기에 따라 라운드 모서리 부분 흰색 점 제거
- SmartTrackBar Height 44이하일 때 좌/우 끝부분에 흰색 점이 생김
- Bar Drag 이동시 Step 값에 따라 터치와 Bar의 위치 오차 개선
- BackPictureBox, 1, 2 속성 적용시 메모리 낭비 현상 개선
- IEC1000-Series 에서 SmartTrackBar의 수가 많을 경우 SmartTrackBar의 배경 깨지는 문제점 개선
(버튼 이미지 지원에 따른 문제점 임)
IEC266-Series B4~B7번의 포트 방향을 출력으로 설정하고 HIGH/LOW 신호를 주는 경우 B6핀의 동작 버그 수정
5. SmartRemote런타임 모드에서 원격 연결 해제 후 재 연결 시 연결 되지 않는 문제점 수정
기존 SmartX Framework의 모델별 또는 .Net Compact Framework 버전별로 SmartX Framework 설치파일을 재설치 및 재 참조하는 불편함을 개선
기존 | 모델별로 또는 .Net Compact Frame work 버전별로 SmartX Framework 재설치 및 재 참조 필요 |
---|---|
▼ | |
SmartX Framework 2.8.0 버전 | SmartX Framework 2.8.0 이상 버전의 경우 SmartX의 버전을 각 모델 별로 독립적으로 설치가 가능하여 다양한 SmartX Framework 버전의 설치 및 사용이 보다 편리합니다. |
아날로그 게이지를 그림 또는 선, 도형으로 그려주는 메서드입니다.
2. SmartConfigs의 메서드 isLite() 추가IEC-Series 에서 코드를 사용하여 비Lite/Lite를 구분하는 메서드입니다.
3. SmartConfigs의 메서드 BacklightControlDialogBox() 오버로드 추가인자 값은 Int TimeOutMilliSecond 로서 사용자가 설정한 시간동안 DialogBox가 Modal방식으로 동작
4. SmartTcpMultiServer, SmartTcpClient 컴포넌트 신규 추가TCP Server(동시접속지원)&Client Socket 프로그램 개발을 쉽게 할 수 있도록 만들어진 컴포넌트입니다.
5. SmartMessageBox의 SetButtonFont(), SetCaptionFont(), SetMessageFont() 추가SmartMessageBox의 Button, Caption, MessageFont의 글자체, 폰트사이즈 등을 지정 가능
6. SmartConfigs의 PingIP() 추가기존 Ping()메서드에 비해 목적지 서버가 살아있는지 빠르게 체크 가능
SmartUART에서 STX, ETX를 사용하여 FrameWriteBytes()로 데이터를 전송하는 경우 기존 SmartX Framework 버전에서는 ETX코드에 상관없이 전송 데이터의 배열크기만큼을 전송하는 문제점이 있어 ETX코드위치까지 데이터를 전송하도록 버그수정 하였습니다.
초기화 실패 또는 SmartVideo 모듈이 연결되지 않는 경우 False 를 반환하도록 수정
IEC-Series에서 SmartListBox를 사용하여 아이템을 입력할때 Column 관련 기능을 사용하여 Column 정렬 및 입력을 편리하게 처리할 수 있습니다.
[지원기능]
1. 폰트에 상관없이 ColumnOffsets 을 사용 하여 원하는 위치에 정렬 가능
2. 수평정렬(HAlign) 을 3가지 방식 (Left, Center, Right)로 제공
3. 삽입되는 데이터의 길이에 자유롭게 정렬
SmartFileSetting은 제품 생산시 개발자가 IEC-Serise를 자신의 업체에 맞게 한번에 제품 세팅이 되도록 하는 프로그램입니다. 이 프로그램은 IEC-Series(266/667/1000)에서 사용 가능합니다. SmartFileSetting은 SmartX Framework의 기능중 일부분 입니다.
[지원기능]
1. SD Card에서 FlashDisk의 Run폴더로 실행파일 복사
2. Fonts폴더의 Font구성 (폰트는 ttc, ttf 사용)
3. 바탕화면의 배경화면 이미지 적용
4. BootLogo 이미지 적용
5. 기타 사용자가 원하는 폴더 복사
※ 홈페이지의 자료실 ▶ SmartX Framework 관련 ▶ 6. SmartFileSetting 프로그램 [자료 다운로드]
사용자가 원하는 타임서버를 인자로 입력하여 시스템 날짜/시간을 동기화 처리
smartConfigs1.IPSettings.DHCPEnable = 1 로 유동IP사용으로 설정한후
smartConfigs1.IPSettings.PrimaryDNS 또는 smartConfigs1.IPSettings.SecondaryDNS에
특정 IP를 입력하면 널(NULL)값이 입력되는 문제점 수정
최초 수신된 데이터부터 누적된 데이터 수(Byte Size)가 FrameBufferSize(수신 측)를 초과하게 되면 하나의 Frame 데이터를 누락시키는 문제점 수정
현재 자판(한/영)상태를 토글 해주는 메서드 입니다.
[CASE-1]SmartKeyboard의 현재 자판상태가 한글이라면
SmartKeyboard1.HanYoungKeyToggle(); // 현재 한글→영문으로 토글
SmartKeyboard1.Show(); // 자판이 영문으로 표시됩니다.
SmartKeyboard의 현재 자판상태가 영문이라면
SmartKeyboard1.HanYoungKeyToggle(); // 현재 영문→한글로 토글
SmartKeyboard1.Show(); // 자판이 한글로 표시됩니다.
SmartKeyboard의 한/영 키를 클릭할 때 또는 SmartKeyboard의 HanYoungKeyToggle() 메서드가 호출될 때 마다 발생되는 이벤트입니다.
[응용]프로그램 시작시 SmartKeyboard의 자판 상태는 항상 영어입니다.
현재 자판의 상태를 확인 가능하고 이를 응용하여 SmartKeyboard의 Hide(), Show()를 사용할 경우 원하는 자판의 형태로 불러올 수 있습니다.
SmartUART 관련하여 수신데이터가 많거나 빈번하게 수신될 경우 StopRead() 기능이 정상적으로 종료 되지 않는 문제를 개선하였습니다.
2. SmartFile관련 Read / Write 기능 개선
Read / Write 관련 File이 Open이 되지 않은 상태에서 Read / Write를 하게 된 경우 |
위 상황인 경우 CPU 점유율이 급격하게 상승 하였으며 이러한 Read / Write기능을 개선하여 CPU 점유율이 상승 하지 않게 처리하였습니다.
제품(IEC-Series)이 Run모드로 설정 되어 프로그램이 구동(부팅)될 경우 외부 저장장치(SD Card, USB Memory)의 인식이 지연 됩니다. 이는 장치 응용프로그램이 로딩이 완료 된 후부터 운영체제가 외부 저장장치를 인식하는 순서로 동작하여 발생하는 현상으로 프로그램에서 처음부터 외부저장장치를 접근할 경우 I/O Exception Error가 발생할 수 있습니다. 이러한 경우 외부 저장장치의 정확한 인식 시점을 알 수 있도록 추가된 기능 입니다.
* StorageMountCheckStart()
//외부 저장장치로부터 연결 되었는지 확인
(인자 값 : 시간 간격 / 연결 확인 횟수 / 저장 장치의 해당 파일 연결 경로)
* StorageMountCheckStop() //저장 장치 연결 확인 기능 종료
설 명 : 외부 저장 장치의 파일 경로 로부터 연결 확인 횟수만큼 시간간격(Interval)마다 접근하여 외부 저장 장치 연결 확인을 시도 합니다.
* smartConfigs1_OnStorageMounted
// 저장 장치 정상 연결 확인 시 이벤트 발생
* smartConfigs1_OnStorageMountCheckOverCount
// 저장 장치 연결 실패시 이벤트 발생
StartReadNoneFrame로 Port Open 을 하게 되면 STX, ETX를 설정 및 사용 하지 않고도 프레임 단위로 Data만 송/수신을 할 수 있는 기능이며 StartRead와 동일한 방식으로 백그라운드에서 수신 Thread가 동작하고 있어 멀티태스킹 방식으로 사용 할 수 있습니다.
List Item이 선택 될 경우 발생합니다.
ETX를 멀티바이트로 사용하는 경우 에러 체크 모드(None, CheckSum8, CheckSum16, CRC16, CRC32)에서 데이터가 비정상 송/수신되는 문제점 수정
1. 송수신 데이터에 STX 또는 ETX와 동일한 Data가 오면 안됩니다.
2. ETX는 2Byte로 크기를 제한 합니다.
3. 동일Byte로 구성된 ETX를 멀티바이트(ETX Only 의 경우)로 사용시 데이터의 맨 뒷부분에 ETX와 동일한 Data가 오면 Data와 ETX의 첫 바이트가 결합하여 ETX로 인식됩니다. 이 경우에는 ETX를 Data와 중복 안 되는 서로 다른 값으로 설정하여 사용바랍니다.
기존 | 1. SN Key 길이에 따른 프로그램 자동등록이 안 되는 버그 2. IEC-Series 에서 SN Key 등록 완료 후 SN Key 파일 삭제 시 등록이 안 되는 버그 |
---|---|
수정 | 1. SN Key 길이 검증 (하나의 SN Key는 최소5~최대20Byte로 연속200Byte길이까지 사용가능) 2. IEC-Series 제품에서 자동 등록 완료 후 SN Key 파일 삭제하고 제품 리부팅 후 프로그램 등록 여부 확인 |
* 감소버튼 클릭해제 이벤트 : OnDecButMouseUp
* 증가버튼 클릭해제 이벤트 : OnInButMouseUp
마우스 포인터를 요소에 올려놓고 마우스 버튼을 눌렀다 뗄때 발생합니다.
마우스 누를 때 발생 | 마우스 땔때발생 | |
---|---|---|
Dec 관련 이벤트 | OnDecButClick이벤트 | OnDecButMouseUp이벤트 |
Inc 관련 이벤트 | OnIncButClick이벤트 | OnIncButMouseUp이벤트 |
SmartUpdwon에서 SpecialFunction의 REPT 속성값에 의해 IncButClick/DecButClick 이벤트가 재호출 되는 경우 RepeatInterval의 값을 변경시 결과가 프로그램에 즉시 반영되지 않는 버그를 즉시 반영되도록 수정
SuspendLayout Interval 0 → Default 기능 비활성화 | SuspendLayout Interval 1 기능 활성화 | |
---|---|---|
설명 | Default 값 | SmartX 2.7버전(7월 24일부터) 기능 활성화 |
장점 | 1. 컴포넌트의 Enable, Visible 속성값
설정이 됨(추가 처리가 필요하지 않음) 2. 화면 전환 속도가 1에 비해 빠름 |
1. 화면 전환 잔상 발생 안 함 |
단점 | 1. 화면 전환 잔상 발생 함 | 1. 컴포넌트의 Enable, Visible 속성값 설정이
안됨(중요) 2. 화면 전환 속도가 0에 비해 느림 |
SmartX 신규 버전을 다운로드 하여도 SuspendLayoutInterval 0이 Default값이라서 해당 속성의 기능이 비활성화되어 화면 전환 시 잔상이 발생할 수 있으나 컴포넌트의 Enable, Visible 속성값 설정이 안 되는 문제점이 나타나지 않습니다.
SmartFile을 사용하여 File 오픈시 Open 메소드 내부에 인자로 BufferSize를 기록하여 읽기/쓰기 가능한 버퍼 용량을 확보 가능합니다. 확보된 BufferSize만큼 파일 기록이 가능합니다. 최대 설정가능한 버퍼용량은 IEC266/667-Series(.net CF2.0의 경우 1000,000Byte), IEC667/1000-Series(.net CF3.5의경우 5000,000Byte) 입니다.
2. SmartThread의 Priority 속성 기능 추가SmartThread로 생성된 스레드의 우선 순위 값 조정이 필요한 경우에 사용이 가능하며 Lowest Thread ~ Highest Thread까지 5단계로 조정 가능합니다.
SmartX Framework 2.7 버전의 SmartUART, SmartModbus에 COM7 포트가 새로 추가 되었습니다.
FTDI VCP(Virtual COM PORT) 드라이버 지원합니다. (USB to Serial Port Converter)
※ SmartUART
SmartX.SmartUART.COMPORTNO.COM7 // COM7을 사용합니다.
※ SmartModbus
SmartX.SmartModbus.COMPORTNO.COM7 // COM7을 사용합니다.
※ SmartModbusSlave
SmartX.SmartModbusSlave.COMPORTNO.COM7 // COM7을 사용합니다.
[지원정보] | |
---|---|
SmartX Framework 버전 | 2.7 이상 지원 |
[제품별 운영체제 빌드 버전] | |
IEC266 Series | 미지원 |
IEC667 Series | 빌드 20이상 |
IEC1000 Series | Windows Embedded CE 6.0 빌드 2 이상 Windows Embedded Compact 7 미지원 |
SmartModbusSlave 컴포넌트는 IEC-Series 제품에서 Modbus-Slave 기능을 지원하며 Event 방식으로 처리하도록 설계되어 프로그램 구현이 편리합니다. 현재 SmartModbus와 SmartModbusSlave는 RTU 방식만 지원합니다.
3. SmartThread Component 추가SmartThread는 기존의 Thread 프로그램시 코딩을 최소화하여 Thread의 구현을 직관적으로 처리 할 수 있도록 하였습니다.
[SmartThread 특징]
1. 이벤트 형식으로 Thread 루틴을 등록하여 구현의 편리함
2. Thread의 다양한 종료 기능제공 및 명확한 처리
3. Work Thread와 User Interface Thread 각각 기능 제공
[Work Thread와 UI Thread 비교] | |
---|---|
Work Thread | UI Thread |
UI Thread에 비해 고속 | Work Thread에 비해 저속 |
화면 UI Component에 직접 접근 불가능 | 화면 UI Component에 직접 접근 가능 |
※ SetHardwareWatchEnable : Hardware WatchDog 기능을 활성화/비활성화 설정 ※ GetHardwareWatchEnable : Hardware WatchDog 기능이 활성화/비활성화 되었는지 확인 가능
[지원정보] | |
---|---|
SmartX Framework 버전 | 2.7 이상 지원 |
[제품별 운영체제 빌드 버전] | |
IEC266 Series | 미지원 |
IEC667 Series | 빌드 20이상 |
IEC1000 Series | Windows Embedded CE 6.0 빌드 2 이상 Windows Embedded Compact 7 미지원 |
SmartUART는 기본적으로 프레임(Frame) 단위 통신을 하도록 설계되어 있으며 송/수신시 프레임 데이터의 오류를 검증하기 위하여 Checksum, CRC등의 오류 코드를 적용할수 있는 기능을 포함하고 있습니다. HeadErrorCodeOffset, TailErrorCodeOffset 속성은 STX/ETX Size가 달라지는 경우에 실제 데이터의 길이를 설정 할 수 있는 기능 입니다.
6. SmartMessageBox의 TopMost 기능추가Form 속성 중에 TopMost의 속성을 True로 설정하는 경우 MessageBox.Show() 기능이 Form 뒤로 표시되어 선택되지 않는 현상 개선
7. SmartRadioButton 기능추가OutputOnly 속성 값을 True로 설정할 경우 외부의 입력(Click)으로 선택 상태가 변경되지 않으며 오직 프로그램에서 Checked 속성 값에 의해서만 선택 상태가 변경됩니다. 이 기능은 상태표시를 하는 사용자 인터페이스 컨트롤에 적합하도록 추가된 기능 입니다.
WriteSingleCoil, WriteSingleRegister, WriteMultipleCoil, WriteMultipleRegister 기능이 정상적으로 수행되더라도 처리 상태 리턴값은 Time Out Error를 리턴하는 버그를 수정 하였습니다.
기존의 Visual Studio 2005/2008의 솔루션 빌드(컴파일)시간을 개선하여 프로그램의 개발시간을 단축 시킬 수 있도록 기능을 개선 하였습니다.
기존 빌드(컴파일)시간 | VS | 개선 빌드(컴파일)시간 |
---|---|---|
1분 이상 | 5초이내 ※ 10배 이상의 속도 개선 |
(1) 개발PC의 성능과 개발 프로젝트의 용량(사이즈)에 따라 약간의 시간편차가 발생 할 수 있습니다.
(2) SmartX Framework Solution 2.6버전 설치만 하시면 사용가능합니다.
(3) Visual Studio 2005/2008에서 적용가능 합니다.
※ 본 기능 개선은 SmartX Framework 적용여부와 상관없이 발생되는 문제였으며, SmartX Framework 사용하지 않는 경우에도 설치만 하셔도 빌드시간이 개선됩니다.
SmartForm과 SmartInnerForm을 사용하여 MDI 구현시 화면 전환 후 발생 되는 Event 입니다. OnEventFormChanged Event는 MainForm 즉 SmartForm에서 Main으로 설정된 Form에서만 발생되는 Event 입니다.
[활용 예 : SmartForm(메인폼)에서 SuspendLayoutInterval 속성값이 0일 경우 ]
SmartForm과 SmartInnerForm을 사용하여 MDI구현시 SmartForm의 속성값 중 SuspendLayoutInterval 속성값이 0일경우 각각의 폼들의 사용자 인터페이스 컨트롤들이 Visible, Enabled 속성 값을 변경할 경우 화면전환이 발생하면 속성값이 임의로 변경되는 문제가 발생합니다.
이러한 경우 SmartForm의 OnEventFormChanged 이벤트를 활용하시면 위 문제를 해결 할 수 있습니다.
자세한 사용 방법은 SmartX Programming Guide → SmartForm의 OnEventFormChanged 이벤트를 참고바랍니다. 본 내용은 SmartX Framework 2.6 버전부터 적용되는 내용입니다.
기존코드 | 변경코드 |
---|---|
((MainForm)(Parent)).SmartForm1.Show(0); | ((MainForm)(Owner)).smartForm1.Show(0); |
배경이미지 및 사용자 인터페이스 Layout에 따른 SuspendLayoutInterval 권장 속성값 | ||
---|---|---|
설 명 | 폼 전환 시 사용자 인터페이스 컨트롤이 겹치는(Overlap)현상을 방지 할 경우 메인 폼의 SmartForm의 SuspendLayoutInterval 속성 값을 설정 하여 개선 할 수 있으며 약간의 폼 전환 속도가 저하될 수 있습니다. | |
Component | SmartForm(Main Form) | |
속성 값 | SuspendLayoutInterval → 0 (default) | SuspendLayoutInterval → 1 |
배경이미지 및
컨트롤에 따른 권장화면 |
화면 전환 시 컨트롤 잔상 및 겹침과정 숨김 각 화면들이 다른 색깔이나 이미지 사용 UI 컴포넌트의 위치가 다른 경우 | 화면 전환 시 컨트롤 잔상 및 겹침 과정 보임 각 화면들이 동일 색깔이나 이미지 사용 UI 컴포넌트의 위치가 동일한 경우 |
이미지 | ||
전환속도 | SuspendLayoutInterval 1보다 상대적으로 약간 지연 |
SuspendLayoutInterval 0보다 상대적으로 빠름 |
특징 | 화면전환 시 컨트롤 잔상 및 겹침 현상 방지 | 화면전환 시 컨트롤 잔상 및 겹침 현상 발생 |
SmartForm속성 | SmartForm, SmartInnerForm 내부의 UI컨트롤 속성 | |
---|---|---|
Enable | Visible | |
SuspendLayoutInterval 0 | 사용불가 | 사용불가 |
SuspendLayoutInterval 1 | 사용가능 | 사용가능 |
InitVisible 속성 | |||
---|---|---|---|
SmartFrom & SmartInnerForm 형태의 MDI 화면 구성 시 공통적인 UI 부분이 있을 경우 해당 사용자 컴포넌트가 사라지는 현상을 방지하며 화면 전화 시 좀더 부드럽게 처리 할 수 있으며 이러한 경우 공통적인 사용자 인터페이스 컨트롤의 InitVisible 속성 값을 False로 설정 하시면 화면 전환 시 좀더 자연스럽게 처리됩니다. | |||
설정 값 | True | 화면 전환시 해당 컨트롤은 숨김 처리됨(기본 설정 값) | |
False |
Case-1 (필수) |
SmartForm과 SmartInnerForm(LCD Size : Customize)을 이용한 MDI 구성시 공통 영역 부분의 사용자 인터페이스 컨트롤을 항상 표시하기 위하여 반드시 False로 설정하여야 합니다. | |
True | Case-2 (권장) |
SmartForm과 SmartInnerForm에서 각화면 마다 동일한 위치의 동일한 사용자 인터페이스 컨트롤일 경우 해당 컨트롤들은 False 로 설정 할 경우 화면 전환이 자연스럽게 전환 됩니다. | |
적용 Component |
SmartDraw, SmartButton, SmartLabel, SmartProgressBar, SmartUpDown, Smart CheckBox, SmartListBox, SmartGroupBox, SmartRadioButton, SmartSeparatorLine, SmartTrackBar |
NestedClickEventPrevent 속성 |
---|
버튼 클릭 이벤트가 이벤트 처리 코드의 실행이 완료되지 않은 상태에서 또다시 버튼 클릭 이벤트가 발생하고 이러한 현상이 연속적으로 발생할 경우 시스템의 오동 작 및 시스템 성능저하가 발생될 수 있습니다. 이는 사용자가 지나치게 버튼을 아주 빠르게 인위적으로 입력할 경우 발생되는 문제로 이를 개선 하고자 추가된 기능으로 기존에 추가되었던 기능이었지만 ButtonMode가 Normal에서도 기능을 활성화 처리하였습니다. |
※ MDI 구현 시 폼 전환 버튼 입력이 아주 빨리 연속적으로 입력될 경우 화면 전 환시 문제가 발생 할 수 있으며 이러한 문제를 방지할 수 있습니다.
SmartKeyboard의 대상 입력 Control이 SmartLabel 또는 Label이고 SmartKeyboard의 특정키가 눌러진 경우 LableSetTextChange 메서드를 이용하여 컨트롤 객체에 Text 수정기능
기존 MessageBox의 기능 및 디자인을 터치 인터페이스에 맞게 개선
- Windows 8.1 Style의 세련된 디자인 적용
- MessageBox의 색상을 테마 별 쉽게 변경
- MessageBox의 크기 변경 기능
- Button Text 변경 및 ICON 이미지 변경 기능
- 기존의 함수 인터페이스 동일하여 코드의 수정을 최소화하여 적용이 용이함
- 터치 인터페이스에 적합하도록 버튼위치 및 크기 변경
- FlashDisk, USB, SD Card 내부의 효율적인 파일 검색을 지원합니다.
- SmartListBox와 연동하여 OpenFileDialog기능을 쉽게 구현할 수 있습니다.
- FileSearch 기능을 사용한 SmartImgViewer(이미지 뷰어), SmartTxtViewer(텍스트 뷰어) 예제 추가
*SmartImgViewer, SmartTxtViewer예제자료는 [자료실]-[Application Note]에서 참고하시길 바랍니다.
SmartLabel의 멀티 라인 기능을 지원합니다.
4. SmartADC GetDetailFilteringADCData() 기능 추가SmartADC에서 쉽게 Filtering 기능을 제어하여 원하는 입력 값을 얻을 수 있도록 S/W 적인 Filtering 기능을 지원합니다.
SmartGPIO를 사용하여 데이터 입력 시 속도개선 및 최적의 입력 속도를 제공하여 데이터 손실을 최소화 함
SmartXFramework 설치시 발생하던 에러메시지를 개선
IEC1000 Series 제품에서 새롭게 변경된 Windows Embedded CE6.0 적용 제품에서 SmartX Framework을 사용하기 위해서 반드시 Ver.2.5를 설치하여 사용하시기 바랍니다.
설치버전 | Win CE 7.0 | Win CE 6.0 |
---|---|---|
SmartX Framework 2.5 버전 | 설치가능 | 설치가능(필수) |
SmartX Framework 2.4 버전 | 설치가능 | 설치불가 |
IEC266 Series에서 PWM단자의 출력이 기본적으로 High로 출력되는 문제를 수정함
InputPanelControl.NumLockKey()
장치에 USB 키보드를 연결시 NumLock의 상태를 On/Off로 토글 처리합니다.
구조체수가 많은 경우 각각의 데이터를 Buffer를 사용하여 읽는 속도를 빠르게 개선
- ReadStructureBuffer(iIndex)Buffer(RAM)에서iIndex(인덱스)의 데이터(anyType)을 읽음
- WriteString_Begin() / WriteString_End()WriteString() 메서드를 여러 번 호출하는것보다 Buffer(RAM)에 저장 후 마지막 기록시 사용하여 성능을 개선. TFAT 파일 시스템에서 효과 더크다
- WriteStructure_Begin() / WriteStructure_End()WriteStructure() 메서드를 여러 번 호출하는것보다 Buffer(RAM)에 저장 후 마지막 기록시 사용하여 성능을 개선. TFAT 파일 시스템에서 효과 더크다
※ 자세한 사항은 [SmartX Framework 프로그래밍 가이드]-[SmartFile]을 참고하시기 바랍니다.IEC1000에서 SmartADC의 AN4 또는 AN5 선택 후 Filtering Enable의 체크를 해제하면 Digitial 값이 정상 출력되지 않는 문제 수정
기능추가 SmartKeyboard 관련 기능IEC제품에서 OS가 영문OS인 경우 SmartKeyboard의 한/영 전환키를 비롯한 한글키가 깨져서 (네모박스) 보이게되며 따라서 한글 폰트를 추가하여 적용할 수 있는 기능 추가
기능개선 빌드 시간Visual Studio 2008에서 대규모 프로젝트의 빌드 시간 단축 10배 정도의 개선 효과 발생 SmartX Framework 설치 프로그램 설치시 자동으로 환경 설정 됨
- IEC667(3.5)에서 프로그램 배포하면 C#과 VB에서 Pinvoke 에러가 발생하는 버그 수정
- IEC266(2.0 C#), IEC667(2.0 C#), IEC667(3.5 C#), IEC1000(3.5 C#)에서 업데이트 화면이 정상 표시 되지 않는 버그 수정
DirectParameter()를 사용하여 Modbus통신시 응답이 없는 문제 수정
2. SmartUpdateIEC1000 Series에서 C#, VB에서 Restart 속성을 REBOOTING으로 설정 해도 시스템 리부팅이 안되는 버그 수정
3. SmartKeyboardSmartForm, SmartInnerform이 아닌 일반Form에서 SmartKeyboard를 사용시 SmartForm과 일반Form의 한/영 설정 정보가 전달되지 않는 버그 수정
IEC1000 Series(非-Lite)의 SmartADC 6채널 중 AN4, AN5 값이 정상 출력되지 않는 버그 해결
기능추가 1. SmartADCIEC1000의 SmartADC 6채널의 Tolerance값(떨림) 오차 범위 개선 (기존 30~100 정도의 떨림에서 7 ~ 15정도의 떨림으로 오차 개선하였습니다.)
SmartKeyboard 표시 후 한/영 키 버튼을 클릭하면 SmartKeyboard의 창이 닫히는 버그 해결
기능추가 1. SmartKeyBoard
SmartKeyboard 호출시 SetHangulFont (False / True)메서드 추가
SetHangulFont(False) ; // 한/영 키의 텍스트를 영어(E/H)로 표현
SetHangulFont(True) ; // 한/영 키의 텍스트를 한글(영/한)로 표현
SmartKeyboard 표시 후 한/영 키 버튼을 클릭하여 한글자판으로 변경 후 SmartKeyboard를 숨김 하고 다시 SmartKeyboard 표시하는 경우 자판은 영문이지만 키보드 입력시 한글로 입력되는 문제수정
2. SmartUpdateIEC1000 제품에서 SmartUpdate를 사용하는 경우 Update가 정상적으로 되지 않는 문제 수정
RAWWriteStrASCToChar( ), RAWWriteStrCharToASC( ), RAWWriteStrCharToChar( )를 사용하여 데이터를 송신하고 RAWReadBytes를 사용하여 데이터를 수신할 때 기존에는 Frame 방식을 사용하였으나 Frame을 사용하지 않고 데이터가 송수신 가능하도록 기능 개선
ETXCodes 속성 추가
기존의 ETXCode에서 1byte만 사용할 수 있었지만, 멀티 바이트를 사용 할수 있는 ETXCodes를 새롭게 추가하였습니다.
[업데이트 관련 버전]
.Net Compact Framework 2.0버전, .Net Compact Framework 3.5버전
자세한 사용방법은 SmartX Programming Guide의 SmartUART편을 참고하시기 바랍니다.
Sound에서 멈춤 후 일시정지 버튼을 누르게 되면 버그 발생 프로그램이 종료되는 문제 수정
2. SmartDrawSmartX 예제에서 ChartNowDraw 함수를 호출시 Channel 선 색상이 모두 동일한 색으로 변경 되는 버그를 수정
3. SmartBattery(IEC266 Series에서만 버그 발생)프로그램 배포시 Invoke Error 발생하는 버그를 수정
Ctrl, Alt, TABKeyDisable 관련 속성 추가
2. SmartMemoryGetCpuUsage메서드가 .Net Compact Framework 3.5 버전에서만 존재하여 2.0 버전에도 추가
SmartForm, SmartInnerForm, SmartGroupBox 사용시 내부에 SmartButton, SmartTrackBar, Smart Label, SmartRadioButton, SmartUpDown, SmartCheckBox, SmartListBox 생성시 내부 컴포넌트에서 BackPictureBox, BackPictureBox1, BackPictureBox2를 사용하지 않는 경우 또는 값을 설정 할 경우 폼디자이너를 닫은후 다시 오픈 할 경우 오류 발생 문제 해결
2. SmartModbusWriteSingleCoil, WriteSingleRegister Function 관련 응답이 무조건 실패로 리턴 하는 문제 수정
SmartForm과 SmartInnerForm을 같이 사용할 경우 폼 디자인 창을 닫은 후 다시 열면 폼이 SmartForm의 크기에 맞게 리사이즈 되는 현상을 SmartInnerForm이 있는 경우 리사이즈 하지 않도록 처리
구분선(선)을 폼에 직접 그리는 기능
2. SmartLock 컴포넌트 추가소프트웨어 방식의 락(Lock) 기능을 지원 하는 컴포넌트
3. SmartUpdate와 SmartLock 컴포넌트를 SmartXCommonExt.DLL으로 편입 하여 기존의 자주 사용되는 컴포넌트 적용 시 다운로드 속도를 개선 할 수 있도록 하였습니다.기존 Project에서 Smart Update Component를 사용한 경우 SmartX CommonExt.dll을 참조 추가 바랍니다. (자세한 사항은 공지 및 SmartX Framework 프로그래밍가이드를 참고하시기 바랍니다.)
기존 SmartSound에서 UpDownVolumeStep값을 셋팅하면 적용되지 않고 2500으로 값이 고정되는 현상을 수정하였습니다.
2. SmartGroupBox(1) 기존 SmartGroupBox를 사용하는 경우 폼 디자인 속성이나 소스파일에서 Text를 입력하지 않는 경우 FrameLine의 좌측 상단의 선이 연결되지 않는 현상을 연결되도록 수정하였습니다.
(2) 기존 SmartGroupBox에서 사이즈를 설정 후 프로젝트를 저장하고 다시 프로젝트를 열면 Smart GroupBox의 사이즈가 수정 전으로 회귀하는 현상을 수정하였습니다. (기존의 문제는 폼디자인 화면에서만 문제가되고 제품에서 실행시 발생안됨)
(3) BackPictureBox2 속성값이 설정된 Components(SmartListBox, SmartRadio, SmartUpdown, SmartTrackBar, SmartCheckBox, SmartButton, SmartLabel)들의 배경이 투명해진 상태에서 폼디자인 창을 닫은 후 다시 디자인 창을 열면 투명효과가 사라지는 문제 수정 (이 문제는 폼 디자인에서만 발생되는 문제로 제품에서 실행시 발생 안됨)
기존 SmartKeyboard를 사용하는경우 폼 디자인모드의 속성에서 Keyboard타입을 Numerical로 지정하고 프로젝트 저장 후 다시 오픈하면 키보드 폼 디자인이 반만 표시되는 현상을 수정 하였습니다.
4. SmartUpdown(1)기존 SmartUpDown에서 SmartInnerForm을 배경에 두고 디자인 속성에서 BackImage를 삽입후 SmartUpdown의 디자인 속성에서 BackPictureBox2를 SmartInnerForm으로 지정시 배경 이미지가 투영되지 않는 현상을 수정하였습니다.(폼 디자인 모드에서만 문제)
(2)기존 SmartUpDown의 속성중에 BackPictureBox2가 누락되어 추가하였습니다.
인터페이스 속성 중 EndTime 속성값이 0인 경우 Tick Event가 발생 하지 않았습니다. default값을 100000000000(3년이상)으로 수정하여 EndTime값을 설정하지 않더라도 동작되도록 수정하였습니다. (디자인 폼에서 SmartTimer를 추가 할 경우 EndTime 속성값이 0이 아닌 값으로 설정 하게 됩니다.)
6. SmartTrackBar기존 SmartTrackBar에서 ValueChanged Event 사용시 Sender Object 인자 null 값을 this Object 인자 값으로 설정
SmartUpDown 사용시 실수형(double)으로 처리할경우 오차가 발생합니다. 이는 double, float형에서 발생하는 문제로 SmartUpDown에서 실수형 처리와 관련된 속성의 타입을 decimal 타입으로 수정 하였습니다. 따라서 데이터 타입을 변환 처리 및 상수 대입시 다음과 같이 처리 하셔야합니다.
[중요] 아래의 부분이 폼 디자인 코드에 있는경우 반드시 숫자 끝에 “M” 문자를 붙여 주시기 바랍니다.
smartUpDown1.fStepValue = 0.1M;
smartUpDown1.fMaxValue = 25.0M;
smartUpDown1.fMinValue = 0.0M;
smartUpDown1.fValue = 0.0M;
코드상에서 처리 할 경우 Type casting 하시기 바랍니다.
double dSet;
dSet = 123.0 / 5.0;
smartUpDown1.fValue = (decimal)dSet;
1. SmartTrackBar 사용시 BackPictureBox 속성 값이 NULL일경우 폼디자이너 Error발생 문제 해결
2. BackPictureBox1, BackPictureBox2 적용안되는 문제 해결
SmartConfigs.IPSettings.Ping() 메소드에서 메모리 누수(Memory leak)발생문제 해결
Backlight-Control에서 자동 Off 기능 시간 설정을 직접 변경 할 수 있도록 기능 추가 사용방법
[사용방법] smartConfigs1.Display.BacklightControlSetTime(3); //인자 단위는 Sec(초) 입니다.
[관련제품] IEC Series[.NET Compact Framework Ver. 3.5 / 2.0]
IEC Series에서 Smartconfigs.IPSettings 관련하여 고정 IP 설정 시 IP 정보 읽기에서 예외 발생 문제를 해결함
기존의 2013/07/01부로 SmartIIC 관련 UpDate에서 ACK처리를 개선하였으며, 이로 인하여 ReadByte에서 응답 신호(ACK)가 빠져 다음과 같이 ReadByte함수(메서드)의 ACK 제어인자 값이 추가 되었습니다.
[변경된 인터페이스]
Read_Byte() : ACK관련 인자 다시 추가됨(응답 ACK : Low or NACK : high)
기존의 SmartIIC에서 ACK관련 처리를 개선을 하였으며, 이로인 하여 다음과 같이 함수(메서드)인자 및 리턴 값들이 추가 및 제거 되었습니다.
[변경된 인터페이스]
- ACKWaitInterval : 아무런 기능을 수행하지 않음.
- Write_Byte() : ACK관련 인자 제거 및 응답 ACK값을 리턴 값 추가됨.
- Read_Byte() : ACK관련 인자 제거됨.
※ 따라서 기존 SmartIIC컴포넌트를 적용하신 개발자분들은 2013년 06월 28일로 SmartX Ver 2.3을 업데이트 하실 경우 위 내용과 관련하여 소스를 수정하셔야 합니다.
Dummy 수신 데이터 제거 처리(시작 데이터가 0인 경우 제거 처리함
전체 적인 호환성을 높이기 위하여 표준 Modbus Protocol적용 처리. 각 명령(function) 마다 마지막 데이터에서 ReadTimeOut 처리로 인한 Return 시간 지연 개선
2. SmartKeyboard 변경Control Key 표시 Text를 다음과 같이 변경 (변경 전) Alt -> (변경 후) Ctrl
파일의 라인수가 많은 경우 순차 ReadString() 읽기시간이 너무 오래 걸리는 문제점을 개선하기 위하여 기능 추가
[추가 기능 함수]
ReadStringAllBuffer(), ReadStringBuffer()
SmartButton Double Click Event 발생에 따른 Click Event Skip 현상수정으로 Double Click Event 발생 방지 처리
- SmartMemory에서 CPU 사용량 표시 기능 추가
- SmartTrackBar 컴포넌트 추가
- SmartPlayer 컴포넌트 추가
.Net Compact Framework 3.5 지원
Style 적용가능(투명효과, 색상 크기, 이미지 설정 추가기능)
Style 적용가능(투명효과, 색상 크기, 이미지 설정 추가기능)
Style 적용가능(투명효과, 색상 크기, 이미지 설정 추가기능)
2. SmartCheckBox 컴포넌트 추가Style 적용가능(투명효과, 색상 크기, 이미지 설정 추가기능)
- SmartButton에서 배경투명 처리를 위한 기능을 추가
- SmartKeyBoard에서 키보드 테마스타일 및 키 이미지를 사용자가 변경할수 있도록 처리
가로,세로 방향 지원 / Bar Style 지원
2. SmartSplash 컴포넌트 추가로딩중임을 화면에 표현할수 있는 컴포넌트
3. SmartInnerForm 컴포넌트 추가화면(MDI)프로그램 개발시 성능 및 메모리 최적화 처리 위한 컴포넌트
4. SmartMemory 컴포넌트 추가RAM과 Storage등 영역을 실시간으로 모니터링 및 설정기능
5. SmartTimer 컴포넌트 추가Timer기능 확장
6. SmartBattery 컴포넌트 추가IEC266/667Lite Series에서만 지원됨
7. SmartVideo 컴포넌트 추가IEC667 非Lite Series에서만 지원됨
기존 컴포넌트 기능
파일 읽고/쓰기 처리
2. SmartUpdate 컴포넌트 추가응용프로그램의 업데이트
3. SmarFTP 컴포넌트 추가FTP Client의 기능처리
4. SmartForm 컴포넌트 추가간편한 MDI창 구형
버그수정- SmartButton 기본 버튼 스킨 처리
- SmartConfig에서 인터넷 타임 서버를 통한 시간 동기화 기능
- SmartDraw의 배경 투명처리하여 이미지 그리기 기능
- SmartKeyboard의 Show메서드의 오버로드 처리
원격제어 관련 컴포넌트
2. SmartUpdown 컴포넌트 추가Visual Studio 2005/2008에 제공되는 기본 컨트롤인 NumericUpDown의 기능의 컴포넌트
3. SmartConfig 기능 추가마우스 커서 숨기기
4. SmartButton 기능 추가Text속성 추가
버그수정- SmartI2C 속도 관련 안전성 향상
- SmartLable, Button,Draw등이 여러 폼에서 동시에 Loading 될 경우 이벤트 및 화면 업데이트 이루어지지 않는 문제 해결
- SmartSound 사용시 프로그램 종료시 예외 발생 문제 해결
그래픽표현 구현을 위한 컴포넌트
IIC(I2C)를 통신하기 위한 컴포넌트
One chip의 WatchDog과 같은 기능의 컴포넌트
2. SmartButton 컴포넌트 추가버튼을 편리하게 사용하기 위한 컴포넌트
SmartGPIO, SmartUART, SmartADC, SmartPWM 기능지원으로 최초 SmartX Release됨
SmartX Framework 포함 된 컴포넌트의 예제소스를 제품 및 언어별로 다운로드 받아 참고 하시기 바랍니다.
지원언어 C#, Basic, C++(일부지원)
참 조 SmartX Framework 프로그래밍 가이드
[주 의] 본 자료실에 포함된 소스코드는 개발 시 참고용 자료(학습)이므로 버그가 포함 되어 있을 수 있습니다. 프로그램 개발 시 이러한 버그들을 수정 및 검증작업을 직접 하셔야 합니다.
Visual C++ | Visual C# | Visual Basic | |
---|---|---|---|
IEC266 - Series | 다운로드 | 다운로드 | 다운로드 |
Visual C++ | Visual C# | Visual Basic | |
---|---|---|---|
IEC667 - Series | 다운로드 | 다운로드 | 다운로드 |
IEC1000 - Series | 다운로드 | 다운로드 | 다운로드 |
(주)에이치앤에스('http://hnsts.co.kr/'이하 '(주)에이치앤에스 웹사이트')는 개인정보보호법에 따라 이용자의 개인정보 보호 및 권익을 보호하고 개인정보와 관련한 이용자의 고충을 원활하게 처리할 수 있도록 다음과 같은 처리방침을 두고 있습니다.
(주)에이치앤에스 웹사이트는 개인정보처리방침을 개정하는 경우 웹사이트 공지사항(또는 개별공지)을 통하여 공지할 것입니다.
○ 본 방침은 2011년 4월 1일부터 시행됩니다.