@@ -94,116 +94,130 @@ function system(callback) {
9494 result . model = util . getValue ( lines , 'hardware' , ':' , true ) . toUpperCase ( ) ;
9595 result . version = util . getValue ( lines , 'revision' , ':' , true ) . toLowerCase ( ) ;
9696 result . serial = util . getValue ( lines , 'serial' , ':' , true ) ;
97-
97+ const model = util . getValue ( lines , 'model:' , ':' , true ) ;
9898 // reference values: https://elinux.org/RPi_HardwareHistory
9999 // https://www.raspberrypi.org/documentation/hardware/raspberrypi/revision-codes/README.md
100- if ( result . model === 'BCM2835' || result . model === 'BCM2708' || result . model === 'BCM2709' || result . model === 'BCM2835' || result . model === 'BCM2837' ) {
101-
102- // Pi 4
103- if ( [ 'd03114' ] . indexOf ( result . version ) >= 0 ) {
104- result . model = result . model + ' - Pi 4 Model B' ;
105- result . version = result . version + ' - Rev. 1.4' ;
106- }
107- if ( [ 'b03112' , 'c03112' ] . indexOf ( result . version ) >= 0 ) {
108- result . model = result . model + ' - Pi 4 Model B' ;
109- result . version = result . version + ' - Rev. 1.2' ;
110- }
111- if ( [ 'a03111' , 'b03111' , 'c03111' ] . indexOf ( result . version ) >= 0 ) {
112- result . model = result . model + ' - Pi 4 Model B' ;
113- result . version = result . version + ' - Rev. 1.1' ;
114- }
115- // Pi 3
116- if ( [ 'a02082' , 'a22082' , 'a32082' , 'a52082' ] . indexOf ( result . version ) >= 0 ) {
117- result . model = result . model + ' - Pi 3 Model B' ;
118- result . version = result . version + ' - Rev. 1.2' ;
119- }
120- if ( [ 'a22083' ] . indexOf ( result . version ) >= 0 ) {
121- result . model = result . model + ' - Pi 3 Model B' ;
122- result . version = result . version + ' - Rev. 1.3' ;
123- }
124- if ( [ 'a020d3' ] . indexOf ( result . version ) >= 0 ) {
125- result . model = result . model + ' - Pi 3 Model B+' ;
126- result . version = result . version + ' - Rev. 1.3' ;
127- }
128- if ( [ '9020e0' ] . indexOf ( result . version ) >= 0 ) {
129- result . model = result . model + ' - Pi 3 Model A+' ;
130- result . version = result . version + ' - Rev. 1.3' ;
131- }
132- // Pi 2 Model B
133- if ( [ 'a01040' ] . indexOf ( result . version ) >= 0 ) {
134- result . model = result . model + ' - Pi 2 Model B' ;
135- result . version = result . version + ' - Rev. 1.0' ;
136- }
137- if ( [ 'a01041' , 'a21041' ] . indexOf ( result . version ) >= 0 ) {
138- result . model = result . model + ' - Pi 2 Model B' ;
139- result . version = result . version + ' - Rev. 1.1' ;
140- }
141- if ( [ 'a22042' , 'a02042' ] . indexOf ( result . version ) >= 0 ) {
142- result . model = result . model + ' - Pi 2 Model B' ;
143- result . version = result . version + ' - Rev. 1.2' ;
144- }
145-
146- // Compute Model
147- if ( [ 'a02100' ] . indexOf ( result . version ) >= 0 ) {
148- result . model = result . model + ' - Pi CM3+' ;
149- result . version = result . version + ' - Rev 1.0' ;
150- }
151- if ( [ 'a020a0' , 'a220a0' ] . indexOf ( result . version ) >= 0 ) {
152- result . model = result . model + ' - Pi CM3' ;
153- result . version = result . version + ' - Rev 1.0' ;
154- }
155- if ( [ '900061' ] . indexOf ( result . version ) >= 0 ) {
156- result . model = result . model + ' - Pi CM' ;
157- result . version = result . version + ' - Rev 1.1' ;
158- }
159-
160- // Pi Zero
161- if ( [ '900092' , '920092' ] . indexOf ( result . version ) >= 0 ) {
162- result . model = result . model + ' - Pi Zero' ;
163- result . version = result . version + ' - Rev 1.2' ;
164- }
165- if ( [ '900093' , '920093' ] . indexOf ( result . version ) >= 0 ) {
166- result . model = result . model + ' - Pi Zero' ;
167- result . version = result . version + ' - Rev 1.3' ;
168- }
169- if ( [ '9000c1' ] . indexOf ( result . version ) >= 0 ) {
170- result . model = result . model + ' - Pi Zero W' ;
171- result . version = result . version + ' - Rev 1.1' ;
172- }
173-
174- // A, B, A+ B+
175- if ( [ '0002' , '0003' ] . indexOf ( result . version ) >= 0 ) {
176- result . model = result . model + ' - Pi Model B' ;
177- result . version = result . version + ' - Rev 1.0' ;
178- }
179- if ( [ '0004' , '0005' , '0006' , '000d' , '000e' , '000f' ] . indexOf ( result . version ) >= 0 ) {
180- result . model = result . model + ' - Pi Model B' ;
181- result . version = result . version + ' - Rev 2.0' ;
182- }
183- if ( [ '0007' , '0008' , '0009' ] . indexOf ( result . version ) >= 0 ) {
184- result . model = result . model + ' - Pi Model A' ;
185- result . version = result . version + ' - Rev 2.0' ;
186- }
187- if ( [ '0010' ] . indexOf ( result . version ) >= 0 ) {
188- result . model = result . model + ' - Pi Model B+' ;
189- result . version = result . version + ' - Rev 1.0' ;
190- }
191- if ( [ '0012' ] . indexOf ( result . version ) >= 0 ) {
192- result . model = result . model + ' - Pi Model A+' ;
193- result . version = result . version + ' - Rev 1.0' ;
194- }
195- if ( [ '0013' , '900032' ] . indexOf ( result . version ) >= 0 ) {
196- result . model = result . model + ' - Pi Model B+' ;
197- result . version = result . version + ' - Rev 1.2' ;
198- }
199- if ( [ '0015' , '900021' ] . indexOf ( result . version ) >= 0 ) {
200- result . model = result . model + ' - Pi Model A+' ;
201- result . version = result . version + ' - Rev 1.1' ;
202- }
203- if ( result . model . indexOf ( 'Pi' ) !== - 1 && result . version ) { // Pi, Pi Zero
204- result . manufacturer = 'Raspberry Pi Foundation' ;
100+ if ( ( result . model === 'BCM2835' || result . model === 'BCM2708' || result . model === 'BCM2709' || result . model === 'BCM2835' || result . model === 'BCM2837' ) && model . toLowerCase ( ) . indexOf ( 'raspberry' ) >= 0 ) {
101+ const rPIRevision = util . decodePiCpuinfo ( lines ) ;
102+ result . model = rPIRevision . model ;
103+ result . version = rPIRevision . revisionCode ;
104+ result . manufacturer = 'Raspberry Pi Foundation' ;
105+ result . raspberry = {
106+ manufacturer : rPIRevision . manufacturer ,
107+ processor : rPIRevision . processor ,
108+ type : rPIRevision . type ,
109+ revision : rPIRevision . revision
205110 }
206111 }
112+
113+ // if (result.model === 'BCM2835' || result.model === 'BCM2708' || result.model === 'BCM2709' || result.model === 'BCM2835' || result.model === 'BCM2837') {
114+
115+
116+ // // Pi 4
117+ // if (['d03114'].indexOf(result.version) >= 0) {
118+ // result.model = result.model + ' - Pi 4 Model B';
119+ // result.version = result.version + ' - Rev. 1.4';
120+ // }
121+ // if (['b03112', 'c03112'].indexOf(result.version) >= 0) {
122+ // result.model = result.model + ' - Pi 4 Model B';
123+ // result.version = result.version + ' - Rev. 1.2';
124+ // }
125+ // if (['a03111', 'b03111', 'c03111'].indexOf(result.version) >= 0) {
126+ // result.model = result.model + ' - Pi 4 Model B';
127+ // result.version = result.version + ' - Rev. 1.1';
128+ // }
129+ // // Pi 3
130+ // if (['a02082', 'a22082', 'a32082', 'a52082'].indexOf(result.version) >= 0) {
131+ // result.model = result.model + ' - Pi 3 Model B';
132+ // result.version = result.version + ' - Rev. 1.2';
133+ // }
134+ // if (['a22083'].indexOf(result.version) >= 0) {
135+ // result.model = result.model + ' - Pi 3 Model B';
136+ // result.version = result.version + ' - Rev. 1.3';
137+ // }
138+ // if (['a020d3'].indexOf(result.version) >= 0) {
139+ // result.model = result.model + ' - Pi 3 Model B+';
140+ // result.version = result.version + ' - Rev. 1.3';
141+ // }
142+ // if (['9020e0'].indexOf(result.version) >= 0) {
143+ // result.model = result.model + ' - Pi 3 Model A+';
144+ // result.version = result.version + ' - Rev. 1.3';
145+ // }
146+ // // Pi 2 Model B
147+ // if (['a01040'].indexOf(result.version) >= 0) {
148+ // result.model = result.model + ' - Pi 2 Model B';
149+ // result.version = result.version + ' - Rev. 1.0';
150+ // }
151+ // if (['a01041', 'a21041'].indexOf(result.version) >= 0) {
152+ // result.model = result.model + ' - Pi 2 Model B';
153+ // result.version = result.version + ' - Rev. 1.1';
154+ // }
155+ // if (['a22042', 'a02042'].indexOf(result.version) >= 0) {
156+ // result.model = result.model + ' - Pi 2 Model B';
157+ // result.version = result.version + ' - Rev. 1.2';
158+ // }
159+
160+ // // Compute Model
161+ // if (['a02100'].indexOf(result.version) >= 0) {
162+ // result.model = result.model + ' - Pi CM3+';
163+ // result.version = result.version + ' - Rev 1.0';
164+ // }
165+ // if (['a020a0', 'a220a0'].indexOf(result.version) >= 0) {
166+ // result.model = result.model + ' - Pi CM3';
167+ // result.version = result.version + ' - Rev 1.0';
168+ // }
169+ // if (['900061'].indexOf(result.version) >= 0) {
170+ // result.model = result.model + ' - Pi CM';
171+ // result.version = result.version + ' - Rev 1.1';
172+ // }
173+
174+ // // Pi Zero
175+ // if (['900092', '920092'].indexOf(result.version) >= 0) {
176+ // result.model = result.model + ' - Pi Zero';
177+ // result.version = result.version + ' - Rev 1.2';
178+ // }
179+ // if (['900093', '920093'].indexOf(result.version) >= 0) {
180+ // result.model = result.model + ' - Pi Zero';
181+ // result.version = result.version + ' - Rev 1.3';
182+ // }
183+ // if (['9000c1'].indexOf(result.version) >= 0) {
184+ // result.model = result.model + ' - Pi Zero W';
185+ // result.version = result.version + ' - Rev 1.1';
186+ // }
187+
188+ // // A, B, A+ B+
189+ // if (['0002', '0003'].indexOf(result.version) >= 0) {
190+ // result.model = result.model + ' - Pi Model B';
191+ // result.version = result.version + ' - Rev 1.0';
192+ // }
193+ // if (['0004', '0005', '0006', '000d', '000e', '000f'].indexOf(result.version) >= 0) {
194+ // result.model = result.model + ' - Pi Model B';
195+ // result.version = result.version + ' - Rev 2.0';
196+ // }
197+ // if (['0007', '0008', '0009'].indexOf(result.version) >= 0) {
198+ // result.model = result.model + ' - Pi Model A';
199+ // result.version = result.version + ' - Rev 2.0';
200+ // }
201+ // if (['0010'].indexOf(result.version) >= 0) {
202+ // result.model = result.model + ' - Pi Model B+';
203+ // result.version = result.version + ' - Rev 1.0';
204+ // }
205+ // if (['0012'].indexOf(result.version) >= 0) {
206+ // result.model = result.model + ' - Pi Model A+';
207+ // result.version = result.version + ' - Rev 1.0';
208+ // }
209+ // if (['0013', '900032'].indexOf(result.version) >= 0) {
210+ // result.model = result.model + ' - Pi Model B+';
211+ // result.version = result.version + ' - Rev 1.2';
212+ // }
213+ // if (['0015', '900021'].indexOf(result.version) >= 0) {
214+ // result.model = result.model + ' - Pi Model A+';
215+ // result.version = result.version + ' - Rev 1.1';
216+ // }
217+ // if (result.model.indexOf('Pi') !== -1 && result.version) { // Pi, Pi Zero
218+ // result.manufacturer = 'Raspberry Pi Foundation';
219+ // }
220+ // }
207221 }
208222 if ( callback ) { callback ( result ) ; }
209223 resolve ( result ) ;
0 commit comments