main.lua 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. --- 模块功能:video_play_demo
  2. -- @module video_play
  3. -- @author Dozingfiretruck
  4. -- @release 2021.09.06
  5. -- LuaTools需要PROJECT和VERSION这两个信息
  6. PROJECT = "video_play_demo"
  7. VERSION = "1.0.1"
  8. log.info("main", PROJECT, VERSION)
  9. -- sys库是标配
  10. _G.sys = require("sys")
  11. --添加硬狗防止程序卡死
  12. --wdt.init(15000)--初始化watchdog设置为15s
  13. --sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
  14. sys.taskInit(function()
  15. sdio.init(0)
  16. sdio.sd_mount(0,"/sd",0)
  17. local spi_lcd = spi.deviceSetup(0,20,0,0,8,2000000,spi.MSB,1,1)
  18. log.info("lcd.init",
  19. lcd.init("st7735s",{port = "device",pin_dc = 17, pin_pwr = 7,pin_rst = 19,direction = 2,w = 160,h = 80,xoffset = 1,yoffset = 26},spi_lcd))
  20. -- 使用ffmpeg.exe将视频转成字节流文件video2.rgb放入TF卡
  21. local file_size = fs.fsize("/sd/video2.rgb")
  22. print("/sd/video2.rgb file_size",file_size)
  23. local file = io.open("/sd/video2.rgb", "rb")
  24. if file then
  25. local file_cnt = 0
  26. local buff = zbuff.create(25600)--分辨率160*80 160*80*2=25600
  27. repeat
  28. if file:fill(buff) then
  29. file_cnt = file_cnt + 25600
  30. lcd.draw(40, 80, 199, 159, buff)
  31. sys.wait(20)
  32. end
  33. until( file_size - file_cnt < 25600 )
  34. local temp_data = file:fill(buff,0,file_size - file_cnt)
  35. lcd.draw(40, 80, 199, 159, buff)
  36. sys.wait(30)
  37. file:close()
  38. end
  39. while true do
  40. sys.wait(1000)
  41. end
  42. end)
  43. -- 主循环, 必须加
  44. sys.run()