Add ShimLib.c
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,7 +1,6 @@
|
||||
/cmake-build-debug/
|
||||
/.idea/*
|
||||
/.idea/
|
||||
/src/ShimLib/ShimLib.c
|
||||
/project/
|
||||
/src/styles/
|
||||
/cmake-build-release/
|
||||
|
||||
115
src/ShimLib/ShimLib.c
Normal file
115
src/ShimLib/ShimLib.c
Normal file
@@ -0,0 +1,115 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include "ShimLib.h"
|
||||
typedef void(*error_cb)(const char * msg);
|
||||
|
||||
int statusCountFlag = 0;
|
||||
error_cb innerCallback = NULL;
|
||||
|
||||
|
||||
int InitLib(error_cb cb ){
|
||||
innerCallback = cb;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ScanControl(ScanAction actionType){
|
||||
switch (actionType) {
|
||||
case SCAN:
|
||||
printf("Do Scan!\r\n");
|
||||
statusCountFlag = 2;
|
||||
break;
|
||||
case PREVIEW_SCAN:
|
||||
statusCountFlag = 1;
|
||||
printf("Do preview!\r\n");
|
||||
break;
|
||||
case STOP:
|
||||
statusCountFlag = 0;
|
||||
printf("Stop everything!\r\n");
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
StatusInfo GetStatus(){
|
||||
StatusInfo inf;
|
||||
switch(statusCountFlag)
|
||||
{
|
||||
case 0:
|
||||
inf.status = READY;
|
||||
break;
|
||||
case 1:
|
||||
inf.status = SCANNING;
|
||||
inf.progress = 0.0f;
|
||||
break;
|
||||
case 2:
|
||||
inf.status = SCANNING;
|
||||
inf.progress = 0.3f;
|
||||
statusCountFlag++;
|
||||
break;
|
||||
case 3:
|
||||
inf.status = SCANNING;
|
||||
inf.progress = 0.6f;
|
||||
statusCountFlag++;
|
||||
break;
|
||||
case 4:
|
||||
inf.status = SCANNING;
|
||||
inf.progress = 0.9f;
|
||||
statusCountFlag++;
|
||||
break;
|
||||
case 5:
|
||||
inf.status = SCANNING;
|
||||
inf.progress = 1.0f;
|
||||
statusCountFlag=0;
|
||||
break;
|
||||
case 6:
|
||||
// case 7:
|
||||
// inf.status = BUSY;
|
||||
// statusCountFlag++;
|
||||
// break;
|
||||
// case 8:
|
||||
inf.status = BUSY;
|
||||
statusCountFlag=0;
|
||||
break;
|
||||
default:
|
||||
inf.status = BUSY;
|
||||
statusCountFlag=0;
|
||||
}
|
||||
return inf;
|
||||
}
|
||||
|
||||
//result, 0 success, other false
|
||||
int SetScanInfo(const char * jsonString, int empty){
|
||||
return 0;
|
||||
}
|
||||
|
||||
int preivew_change_flag = 0;
|
||||
|
||||
const size_t Row = 140;
|
||||
const size_t Col = 140;
|
||||
|
||||
#define BUFFER_SIZE Row * Col
|
||||
|
||||
const char * FRAME_FILE_PATH_1 = "./img1_v2.bin";
|
||||
const char * FRAME_FILE_PATH_2 = "./pre_image.bin";
|
||||
const char * GetPreviewData(){
|
||||
FILE *file;
|
||||
preivew_change_flag++;
|
||||
preivew_change_flag = preivew_change_flag%2;
|
||||
// _sleep(2000);
|
||||
if(file = fopen(preivew_change_flag?FRAME_FILE_PATH_1:FRAME_FILE_PATH_2,"rb")){
|
||||
unsigned char * buffer = malloc(sizeof(unsigned char)*BUFFER_SIZE);
|
||||
fread(buffer, sizeof(unsigned char),BUFFER_SIZE, file);
|
||||
fclose(file);
|
||||
return buffer;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
const char * GetDeviceInfo(DeviceInfo infoType){
|
||||
switch (infoType) {
|
||||
case MEAN_TEMPERATURE:
|
||||
return "28";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
Reference in New Issue
Block a user