Advertisement
Guest User

Untitled

a guest
Dec 27th, 2011
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.86 KB | None | 0 0
  1. root@beaglebone:/var/lib/cloud9# node bonescript/eeprom.js
  2. { main:
  3. { header: 'qlUz7g==',
  4. boardName: 'A335BONE',
  5. version: '00A3',
  6. serialNumber: '4211BB000012',
  7. configOption: 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=' } }
  8.  
  9.  
  10. var fs = require('fs');
  11. var buffer = require('buffer');
  12. var util = require('util');
  13.  
  14. var readEeproms = function() {
  15. var data = {};
  16. data.main = parseMainEeprom(fetchEepromData('1-0050'));
  17. return(data);
  18. };
  19.  
  20. var fetchEepromData = function(address) {
  21. var eepromData = new buffer.Buffer(60);
  22. try {
  23. var eepromFile =
  24. fs.openSync(
  25. '/sys/bus/i2c/drivers/at24/'+address+'/eeprom',
  26. 'r'
  27. );
  28. fs.readSync(eepromFile, eepromData, 0, 60, 0);
  29. } catch(ex) {
  30. console.warn('Unable to open EEPROM at '+address+': '+ex);
  31. }
  32. return(eepromData);
  33. };
  34.  
  35. var parseMainEeprom = function(eepromData) {
  36. var data = {};
  37. data.header = eepromData.toString('base64', 0, 4);
  38. if(data.header != 'qlUz7g==') {
  39. console.error('Unknown EEPROM format');
  40. return(null);
  41. }
  42. data.boardName = eepromData.toString('ascii', 4, 12);
  43. data.version = eepromData.toString('ascii', 12, 16);
  44. data.serialNumber = eepromData.toString('ascii', 16, 28);
  45. data.configOption = eepromData.toString('base64', 28, 60);
  46. return(data);
  47. };
  48.  
  49. var parseCapeEeprom = function(eepromData) {
  50. data.header = eepromData.toString('base64', 0, 4);
  51. if(data.header != 'qlUz7g==')
  52. throw('Unknown EEPROM format');
  53. data.boardName = eepromData.toString('ascii', 4, 12);
  54. data.version = eepromData.toString('ascii', 12, 16);
  55. data.serialNumber = eepromData.toString('ascii', 16, 28);
  56. data.configOption = eepromData.toString('base64', 28, 60);
  57. return(data);
  58. };
  59.  
  60. console.log(readEeproms());
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement