TODOPIC
Lenguajes de programación para PC => C, C#, C++ => Mensaje iniciado por: scientist en 16 de Septiembre de 2010, 18:49:06
-
Hola amigos, me gustaria saber si alguien tiene experiencia haciendo lo que quiero hacer, simple, es leer datos de un archivo guardado en una memoria micro sd, que tiene datos en formato no ascii, esto quiere decir, que cuando abro el archivo se ve en simbolos extraños, esto lo estoy haciendo como segunda parte de un proyecto que llevo desarollando hace un mes, guardo datos de sensores desde una tarjeta que hice, con un micro arm, en estas guardo los datos de los ADC, y del RTC, y me gustaria exportarlos a un archivo excel, por ahora no he investigado mucho, ya que estoy empezando esta etapa, si alguien sabe de alguno ejemplos o comentarios, sera de gran ayuda, saludos
-
Hola Braulio
¿Qué lenguaje?
¿La SD tiene un sistema de archivos o es RAW data?
Si es C# y la SD está formateada, puedes usar el BinaryReader.
-
Hola mig, una disculpa, es en c#, y si tiene un formato (fat32), voy a checarlo, estaba pensando que seria conveniente poner un caracter delimitador, para que sepa cuando termina y acaba un dato, como por ejemplo, pero no estoy tan seguro que sea buena idea, por lo pronto, todo lo guardo dentro seguidamente, aqui pego una vista de como se ve el archivo
el orden que tiene es = byte adc msb(depende de cuantos canales seleccione el usuario),byte adc lsb, byte year, byte month, byte date, byte hour, byte min, byte second
saludos
-
Ohh entonces es fácil.
FileStream archivo = new FileStream(txtArchivoOrigen.Text,
FileMode.Open, FileAccess.Read);
BinaryReader leer = new BinaryReader(archivo);
byte[] octeto = new byte[1];
leer.Read(octeto, 0, 1);
leer.Close();
archivo.Close();
Este código lee el primer byte del archivo.
Creo que no necesita más explicación. Si lo pegas en C# podrás ver qué hace cada cosa.
Si hay dudas me avisas. :mrgreen:
-
También puedes agregar un cuadro de dialogo para abrir el archivo, tomar el nombre y su dirección del cuadro y trabajar como dice Mig.
Saludos!
-
muchas gracias mig, solo necesitaba ese empujón, ahora mismo hare un pequeño programa, cualquier duda, por aquí estaré, gracias suky por el comentario, así tenía pensado hacerlo, abrir un cuadro de dialogo, y que el usuario buscará la unidad de almacenamiento, saludos
-
Hola Braulio, si vos determinar lo que se escribe en la SD, podrias escribirlos con separadores de campo, usando la coma y comillas. En este formato de datos ( llamado CSV ) la importacion a Excel o cualquier planilla de datos es sencilla.
Saludos !
-
excelente tip, gracias Richard, de ser posible esto, me ahorraria muchisimo tiempo, saludos
cuando hiba a empezar a poner esta parte, me surgio la duda, toda la informacion tiene que estar en ascii para poder exportarlo directamente a excel, no es asi?
-
Es cierto. Acá una explicación.
http://www.todopic.com.ar/foros/index.php?topic=25735.msg210460#msg210460
-
Colocando por ejemplo:
Texto[]="Datos del logger\r\nTemperatura\tHora\r\n22.5º\t10:15:48\r\n23.1º\t11:01:36\r\n23.7º\t11:42:53\r\n24.2º\t12:23:12"
Y al guardarlo con extensión *.xsl, al abrirlo con excel se logra:
(http://www.ucontrol.com.ar/forosmf/programacion-en-c/manejo-de-memoria-sd-con-ccs-libreria-nivel-hardware/?action=dlattach;attach=2605)
Saludos!
-
Excelente ejemplo Suky, muchas gracias por el ejemplo, ya dispuse hacerlo de forma hexadecimal, creando mi propio tipo de extension de archivo, esto por que requiero de varias configuraciones de medicion, no solamente de temperatura, aparte de que estoy utilizando un micro con limitantes en memoria flash, ya casi lo tengo al 80%, me consumiria muchos recursos, definitivamente haré una versión solo para datalogger de temperatura, y ahi yo creo que se podra utilizar el ejemplo que mencionas.
Una de las desventajas de la manera que lo estoy haciendo, que tiene tantas opciones, que empieza a caer en lo complicado, pero ni modos, lo haré de esta manera, y veremos que sale, por cierto, tengo una duda, los archivos más grandes que puede manejar una computadora es de 4gb? por ejemplo, un archivo no puede exceder el limite de 4 gb de tamaño, lo pregunto, por que estoy utilizando es un fat32, que en teoria puede manejar memorias de hasta 32gb, pero creo que en cuanto archivos unitarios, no es el mismo dilema, como lo tenia pensado era, que cada dia, se vaya creando un archivo nuevo, pero bueno, solo estoy divagando, saludos y gracias por su ayuda!
-
Por limitación del campo de la estructura que indica los parámetros del archivo en FAT (4 bytes) no se puede manejar archivos mayores a 4GB, pero desconozco si existe alguna extensión para romper esa limitación :?
Saludos!
-
Hola!
Microsoft tiene su sistema de archivos NTFS que permite archivos de hasta 16TB.
Linux usa varios sistemas de archivos:
http://es.wikipedia.org/wiki/Categor%C3%ADa:Sistemas_de_archivos_de_Linux
-
El problema es que el firmware de Scientist sólo ha de tolerar hasta FAT32. Es poco común ver firmware para micros que tolere NTFS.
-
Definitivamente he estado checando el codigo de Suky, no habia caido en cuenta que el utiliza \t (horizontal tab) para separar las columnas, y al abrir el archivo con extension xls, sin tener que configurar nada en excel, te respeta las columnas y filas, excelente ejemplo, estuve checando cuanto me consumiria las rutinas de manejo de cadenas (itoa) y veo que es conveniente utilizar y crear directamente una extension xls, saludos