Add ShimLib.c
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,7 +1,6 @@
|
|||||||
/cmake-build-debug/
|
/cmake-build-debug/
|
||||||
/.idea/*
|
/.idea/*
|
||||||
/.idea/
|
/.idea/
|
||||||
/src/ShimLib/ShimLib.c
|
|
||||||
/project/
|
/project/
|
||||||
/src/styles/
|
/src/styles/
|
||||||
/cmake-build-release/
|
/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