效果
如图:
用户登录 -> 功能选择 -> 相应的功能
思路-
对于整个软件的使用而言,触摸屏坐标点的获取是必不可缺的,所以我们单独开一个获取触摸屏坐标点的线程,从始至终运行
-
然后考虑到密码登录有两种形式,我们得开两个线程去处理,我们可以设置一个是否登录的全局变量,然后当未登陆的时候就一直循环,这样登陆得问题就得到解决了
-
接下来是功能页面,当用户登陆界面结束后,就跳转到功能选择页面,这里我做的是左边是“立即下单”,右边是“历史订单”
-
对于“立即下单”,我们要做的就是对每个商品能进行增加或者减少的操作,最终下单,下单后我们将这个单号的数据存储到对应的文件里面
-
对于“历史订单”我们需要注意对于订单号的存储信息处理以及布局即可,我这里省事所以就只显示10条记录
-
还有就是要创建一个获取温湿度的线程,然后在用户登陆后实时显示在左上角
为了更加清楚的看懂流程,我这里只展示main.c
的内容,其余内容请在Github中获取https://github.com/MangataTS/GEC6818-project
如果打不开的话,可以从这里快速下载:http://acm.mangata.ltd/file/2/project.zip
#include
#include
#include "picture.h"
#include "getxy.h"
#include "font.h"
#include "UARTdh11.h"
#include "RFID.h"
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define true 1
#define false 0
#define PASSLEN 4
//************素材内容************
char *number[]={//数字
"sucai/0.bmp",
"sucai/1.bmp",
"sucai/2.bmp",
"sucai/3.bmp",
"sucai/4.bmp",
"sucai/5.bmp",
"sucai/6.bmp",
"sucai/7.bmp",
"sucai/8.bmp",
"sucai/9.bmp",
};
char *del="sucai/del.bmp";
char *login="sucai/login.bmp";
char *background="sucai/back.bmp";
char *whiteblock="sucai/whiteblock.bmp";
char *shownumbers="sucai/shownumbers.bmp";
char *Error_login="sucai/errorlogin.bmp";
char *Login_Logo="sucai/login_logo.bmp";
char *NC[]={
"sucai/CMWZ.bmp",
"sucai/FMYZC.bmp",
"sucai/KKNC.bmp",
"sucai/LMBH.bmp"
};
char *JGB="sucai/JGB.bmp";
char *XIADAN="sucai/XDCN.bmp";
//************素材内容************
int locpass=0;
int tolid = 0;
struct Good{
int value;
int number;
char name[20];
};
int IDok; //身份识别默认失败 0失败 1成功
char a[20][40];
extern char WsdString[20];
void *Pcamera(void *arg);
#if 1
//初始化,从文件中读取信息
void Message_init(){
FILE *fp_message = fopen("Message_table.txt","r");
if(fp_message == NULL) {
fp_message = fopen("Message_table.txt","w");
fclose(fp_message);
return;
}
char buf[40];
while(fgets(buf,40,fp_message)){//读取这些订单信息
strcpy(a[tolid++],buf);
tolid %= 10;//限制读取十条
}
fclose(fp_message);
}
//显示主界面
void show_Main(){
show_anybmp(background,0,0);//背景
show_anybmp(Login_Logo,90,90);//logo
Init_Font();
Display_characterX(300,0,"全全奶茶",0x00D2691E,3);
UnInit_Font();
//显示数字键盘
for(int x = 310,i = 1;i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?