지문인식기 이닛
initCommPort(String port, {int baundrate = 115200, bool asciiMode = false})
typedef _InitCommPortFunc = Int32 Function(
Pointer<Utf8> commPort, Int baudrate, Bool asciiMode);
typedef _InitCommPort = int Function(
Pointer<Utf8> commPort, int baudrate, bool asciiMode);
Future<String> initCommPort(String port,
// UfRetCode initCommPort(String port,
{int baudrate = 115200, bool asciiMode = false}) async {
// 라이브러리 열기
_dylib = DynamicLibrary.open('SFM_SDK.dll');
final _InitCommPort initCommPort = _dylib
.lookupFunction<_InitCommPortFunc, _InitCommPort>('UF_InitCommPort');
closeCommPort();
int res = initCommPort(port.toNativeUtf8(), baudrate, asciiMode);
loadDB();
return UfRetCode.find(res).toString();
}
포트 닫기
closeCommPort()
typedef _CloseCommPortFunc = Int32 Function();
typedef _CloseCommPort = int Function();
UfRetCode closeCommPort() {
_dylib = DynamicLibrary.open('SFM_SDK.dll');
final _CloseCommPort closeCommPort = _dylib
.lookupFunction<_CloseCommPortFunc, _CloseCommPort>('UF_CloseCommPort');
return UfRetCode.find(closeCommPort());
}
디비 저장, 불러오기
saveDB() loadDB()
typedef _SaveDBFunc = Int32 Function(Pointer<Utf8> fileName);
typedef _SaveDB = int Function(Pointer<Utf8> fileName);
UfRetCode saveDB() {
_dylib = DynamicLibrary.open('SFM_SDK.dll');
final _SaveDB saveDB = _dylib
.lookupFunction<_SaveDBFunc, _SaveDB>('UF_SaveDB');
String fileName = 'zelotec_finger_print_data.db';
final backwardsUtf8 = fileName.toNativeUtf8();
int res = saveDB(backwardsUtf8);
return UfRetCode.find(res);
}
fileName에 정해진 이름으로 파일 저장 같은 이름일때는 덮어쓰기
typedef _LoadDBFunc = Int32 Function(Pointer<Utf8> fileName);
typedef _LoadDB = int Function(Pointer<Utf8> fileName);
UfRetCode loadDB() {
_dylib = DynamicLibrary.open('SFM_SDK.dll');
final _LoadDB loadDB = _dylib
.lookupFunction<_LoadDBFunc, _LoadDB>('UF_LoadDB');
String fileName = 'zelotec_finger_print_data.db';
final backwardsUtf8 = fileName.toNativeUtf8();
int res = loadDB(backwardsUtf8);
return UfRetCode.find(res);
}
fileName에 정해진 이름으로 디비 적용
지문 남아있는 최대 공간 확인
getMaxCapacity()
typedef _MaxCapacityFunc = Int32 Function(Pointer<Int32> maxNo);
typedef _MaxCapacity = int Function(Pointer<Int32> maxNo);
UfRetCode getMaxCapacity() {
_dylib = DynamicLibrary.open('SFM_SDK.dll');
final _MaxCapacity maxCapacity = _dylib
.lookupFunction<_MaxCapacityFunc, _MaxCapacity>('UF_GetMaxNumOfTemplate');
var maxNo = calloc<Int32>();
int res = maxCapacity(maxNo);
print('maxNo id: ${maxNo.value}');
return UfRetCode.find(res);
}
설정 가져오기