#include #include #include "ShimLib.h" typedef void(*error_cb)(const char * msg); int statusCountFlag = 0; error_cb innerCallback = NULL; int InitLib(error_cb cb ){ innerCallback = cb; innerCallback("e 11111"); 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 ""; }