Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- root@beaglebone:/var/lib/cloud9# node bonescript/eeprom.js
- { main:
- { header: 'qlUz7g==',
- boardName: 'A335BONE',
- version: '00A3',
- serialNumber: '4211BB000012',
- configOption: 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=' } }
- var fs = require('fs');
- var buffer = require('buffer');
- var util = require('util');
- var readEeproms = function() {
- var data = {};
- data.main = parseMainEeprom(fetchEepromData('1-0050'));
- return(data);
- };
- var fetchEepromData = function(address) {
- var eepromData = new buffer.Buffer(60);
- try {
- var eepromFile =
- fs.openSync(
- '/sys/bus/i2c/drivers/at24/'+address+'/eeprom',
- 'r'
- );
- fs.readSync(eepromFile, eepromData, 0, 60, 0);
- } catch(ex) {
- console.warn('Unable to open EEPROM at '+address+': '+ex);
- }
- return(eepromData);
- };
- var parseMainEeprom = function(eepromData) {
- var data = {};
- data.header = eepromData.toString('base64', 0, 4);
- if(data.header != 'qlUz7g==') {
- console.error('Unknown EEPROM format');
- return(null);
- }
- data.boardName = eepromData.toString('ascii', 4, 12);
- data.version = eepromData.toString('ascii', 12, 16);
- data.serialNumber = eepromData.toString('ascii', 16, 28);
- data.configOption = eepromData.toString('base64', 28, 60);
- return(data);
- };
- var parseCapeEeprom = function(eepromData) {
- data.header = eepromData.toString('base64', 0, 4);
- if(data.header != 'qlUz7g==')
- throw('Unknown EEPROM format');
- data.boardName = eepromData.toString('ascii', 4, 12);
- data.version = eepromData.toString('ascii', 12, 16);
- data.serialNumber = eepromData.toString('ascii', 16, 28);
- data.configOption = eepromData.toString('base64', 28, 60);
- return(data);
- };
- console.log(readEeproms());
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement