Add ShimLib.c

This commit is contained in:
Krad
2021-12-07 15:15:05 +08:00
parent 1b8809d8db
commit 0847c52728
2 changed files with 115 additions and 1 deletions

1
.gitignore vendored
View File

@@ -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
View 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 "";
}