当前位置:   article > 正文

基于GEC6818的智能家居系统

基于gec6818的智能家居系统

目录

1、项目名字

2、项目实现功能

3、部分功能讲解

4、项目主函数

1、项目名字

基于GEC6818的智能家居系统

2、项目实现功能

1)开机画面

2)自动播放照片(bmp图片,jpg图面)

3)手动播放照片(上下选择)

4)MP3的播放,暂停,继续功能

5)MP4的播放,暂停,继续功能

6)读取目录里的文件信息,显示到GEC6818屏幕上

7)链表的形式存储图片信息

项目需要用到jpeg库,jpeg库的移植可参考我以下的这篇博客:

(31条消息) jpeg库的移植步骤(GEC6818)_ljpeg库_sakura0908的博客-CSDN博客

3、部分功能讲解

做项目的流程(供参考)
1.jpg的移植

2.mp3_mp4功能的测试

3.字库功能的测试

4.实现项目的框架

5.实现各个子功能
1).mp3
2).mp4
3).管理员
说明: 读取目录里面的文件信息,然后打印到GEC6818屏幕上。(需要使用到字库)
4).自动播放
说明:先读取目录里面的jpg图片和bmp图片,然后存入到双向循环链表中;最后遍历双向循环链表完成整张图片的自动播放;以上做完之后再做bmp图片的算法。
注意:读出来的文件名要区分jpg图片和bmp图片。
5).上下张
说明:比如说有3张图片1.jpg 2.jpg 3.jpg;那么按下一张后要从1.jpg跳到2.jpg再跳到3.jpg;
按上一张后要从3.jpg跳到2.jpg再跳到1.jpg

6).完成bmp图片的算法
说明:bmp图片的算法包括:百叶窗、左进、右进、上进、下进等等。
注意: bmp图片的分辨率可以通过解析bmp的头54个字节的信息来获取。

4、项目主函数

  1. int main(int argc,char **argv)
  2. {
  3. //硬件的初始化
  4. fd_lcd = open("/dev/fb0",O_RDWR);
  5. if(fd_lcd == -1)
  6. {
  7. printf("open lcd fail\n");
  8. return -1;
  9. }
  10. addr = mmap(NULL,800*480*4,PROT_READ|PROT_WRITE,MAP_SHARED,fd_lcd,0);
  11. if(addr == NULL)
  12. {
  13. printf("mmap lcd fail\n");
  14. return -1;
  15. }
  16. fd_bmp = open("/study/project_home/pic/xitong.bmp",O_RDWR);
  17. if(fd_bmp == -1)
  18. {
  19. printf("open bmp fail\n");
  20. return -1;
  21. }
  22. fd_ts = open("/dev/input/event0",O_RDWR);
  23. if(fd_ts < 0)
  24. {
  25. printf("open ts fail");
  26. return -1;
  27. }
  28. //链表的初始化
  29. node* head = initList();
  30. dp = opendir("/study/project_home/pic");
  31. if(dp == NULL)
  32. {
  33. printf("opendir fail");
  34. return -1;
  35. }
  36. chdir("/study/project_home/pic");
  37. int j =0;
  38. while(1)
  39. {
  40. ep = readdir(dp);
  41. if(ep == NULL)
  42. break;
  43. if(ep->d_name[0] == '.')
  44. continue;
  45. if(ep->d_name[2] == 'b')
  46. {
  47. node* new = newNode(ep->d_name);
  48. insertHead(head, new);
  49. }
  50. if(ep->d_name[2] == 'j')
  51. {
  52. node* new = newNode(ep->d_name);
  53. insertHead(head, new);
  54. }
  55. }
  56. show_bmp("/study/project_home/menu/kaiji.bmp");
  57. sleep(3);
  58. while(1)
  59. {
  60. // //功能界面
  61. show_bmp("/study/project_home/pic/xitong.bmp");
  62. get_xy(&x,&y);
  63. if(x>80&&x<280&&y>90&&y<150)
  64. {
  65. auto_play(head);
  66. }
  67. if(x>500&&x<700&&y>90&&y<150)
  68. {
  69. hand_play(head);
  70. }
  71. if(x>70&&x<190&&y>340&&y<390)
  72. {
  73. chdir("/study/project_home/mp3_mp4");
  74. mp3_play();
  75. chdir("/study/project_home/pic");
  76. }
  77. if(x>340&&x<460&&y>340&&y<390)
  78. {
  79. chdir("/study/project_home/mp3_mp4");
  80. mp4_play();
  81. chdir("/study/project_home/pic");
  82. }
  83. if(x>580&&x<730&&y>340&&y<390)
  84. {
  85. chdir("/study/project_home/usr_date");
  86. admin_info();
  87. chdir("/study/project_home/pic");
  88. }
  89. }
  90. //链表的释放
  91. head = destroy(head);
  92. //关闭硬件
  93. munmap(addr,800*480*4);
  94. close(fd_bmp);
  95. close(fd_lcd);
  96. close(fd_ts);
  97. closedir(dp);
  98. return 0;
  99. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/48189
推荐阅读
相关标签
  

闽ICP备14008679号