一.前言:
前面的文章講解了樹莓派在centos7 arm64版本下的使用,用一款智能小車為例子,做了代碼實踐。
由于centos7不再維護,且Pi4J 1.x版本也因為WiringPi 的局限,Pi4J從1.x升級為2.x.所以本專欄的技術棧也將進行調整,A.從centos7系統回到Raspberry Pi-64位系統。B.Pi4J版本從1.2升級為2.1.0
Pi4J版本1.x和 2.x版本實際上并不兼容,2.x版本不再依賴WiringPi,而是轉向使用PIGPIO庫。所以基于Pi4J2.x版本的項目不需要再安裝WiringPi。而且2.x版本支持的最低jdk版本為jdk11,所以需要升級jdk版本為jdk11以上。本文使用的仍然是jdk11,請不要使用jdk11以下的版本
代碼層面,Pi4J2.X從架構層進行了重構,去除了冗余和復雜的功能,使用了運行時上下文等上下文環境來抽象板子,針腳等,并使用了單例模式來初始化和銷毀運行時環境,提供了板子的運行周期概念,通過注冊機制進行針腳使用前注冊,用配置類做針腳注冊前的配置,簡化和規范了針腳使用。并設計了 監聽器模式 等進行針腳事件監聽,可以方便的對針腳的變化來做對應的響應。
基于上述架構設計層面,代碼層面2.x版本的調整,Pi4J2.X 和Pi4J1.X的代碼是完全不能通用的。也就是說,如果升級Pi4J到2.x版本之后,Pi4J1.X的原有代碼需要進行完整的重構!!!千萬不要隨便升級!Pi4J2.X可以說和Pi4J1.X是完全不相同的,不存在一點兼容性
那么為何本文還要進行介紹Pi4J2.X呢