Guardar los ajustes de la tarjeta microSD


Una cosa muy importante en cualquier aplicación hoy en día es necesario es el entorno.No se trabaja con soluciones fijas sin guardar cualquier tipo de configuración. Sea una configuración simple de un IP o un mensaje personalizado, un archivo de configuración es siempre necesario.

Al principio,  programando utilizando microcontroladores PIC que era un nivel de tarea «muy difícil» porque era para asignar una parte de la memoria de código a las variables de la tienda y el tiempo utilizado como códigos de control y tipo de variable dobles en los procesadores de punto fijo que costabanhoras de programación de desmontar con seguridad un valor doble y hacer el paseo más tarde (El nombre de esta técnica es EWR – EEPROM Lectura y escritura). Esto sigue siendo un buen método, ya que no requiere de una memoria externa como los tradicionales chips de SPI 25LCxxxx donde xxxx es la cantidad de memoria en mísero de kb (máximo 2Mb)!

Si el interés es tan grabar sólo unas pocas variables esta es una gran idea, incluso si la Chirs Walker no simpatizar porque placas Netduino Netduino Mini y cuestan la mitad del precio de la Netduino Plus, es decir, su aplicación queda a mitad de precio!. Este tema , en el foro Netduino muestra una discusión sobre el tema  para reducir el costo y todo.
Para el Netduino además, tenemos una tarjeta microSD de 4 GB de espacio para grabar todo lo que quiera y nada mejor que escribir un archivo sólo para configuración de la tarjeta, por lo que el acceso a la información es práctico y también para modificar las entradas sólo cambiando el archivo en la tarjeta microSD sin necesidad de recompilar el código.

Lo que los lectores deben estar preguntando en este momento es porque no se ha implemntado  en NeonMika.Webserver y se  escribe  aqui  acerca de los archivos de configuración:la lógica está en el paso de guardar la información de configuración de la tarjeta de la tarjeta  para lo  que el autor desarrolló una clase independiente para manejar ese tipo de cosas.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
using System;
using System.Text;
using System.Collections;
using System.Net.Sockets;
using System.Net;
using System.Diagnostics;
using System.IO;
using Microsoft.SPOT;
namespace SDCardClass
{
    /// <summary>
    /// Configuration File Class
    ///
    /// Developed to: Netduino Plus REV.B Borad
    /// .NETMF 4.2 RC5
    ///
    /// By Victor M. Batista
    /// email: [email protected]
    ///
    /// Date: 13-Ago-2012
    /// </summary>
    class Configuration
    {
        //TODO: Insert List to create a file with configuration sections
        private Hashtable _Configuration = new Hashtable();
        private string _FileName;
        public enum ConfigMode{Append,DoNothing};
        /// <summary>
        /// Open a configuration file if it exist and provide
        /// information for request's.
        /// </summary>
        /// name="filename">Optinal file name
        public Configuration(string filename = "ndpcfg.ini")
        {
            //Nome global
            _FileName = filename;
            //Clear configuration file;
            _Configuration.Clear();
            //Read configuration file
            if (File.Exists("\\SD\\" + _FileName))
            {
                FileStream CfgFileStream;
                StreamReader CfgStreamReader;
                try
                {
                    CfgFileStream = new FileStream("\\SD\\" + _FileName,
                                                               FileMode.Open,
                                                               FileAccess.ReadWrite,
                                                               FileShare.None);
                    CfgStreamReader = new StreamReader(CfgFileStream);
                    string val = CfgStreamReader.ReadLine();
                    if (val != null)
                    {
                        do
                        {
                            if (val[0] != ';') // If is not a comment line
                            {
                                string[] SplitVals = val.Split('=');
                                if (SplitVals.Length == 2)
                                {
                                    _Configuration.Add(SplitVals[0], SplitVals[1]);
                                }
                            }
                                val = CfgStreamReader.ReadLine();
                        } while (val != null);
                    }
                    CfgStreamReader.Close();
                    CfgFileStream.Close();
                }catch {}
            }
            
        }
        /// <summary>
        /// Apend new configuration in configuration file
        /// </summary>
        /// name="key">Key as a configuration variable
        /// name="value">Key value as string
        /// name="SetIfExist">Set a this value to the key
        /// if this current key already exist in context
        public void AppendConfig(string key, string value, bool SetIfExist = false)
        {
            if (!_Configuration.Contains(key))
            {
                _Configuration.Add((object)key, (object)value);
            }
            else if(SetIfExist)
            {
                _Configuration[key] = value;
            }
        }
        /// <summary>
        /// Set new configuration in configuration file
        /// </summary>
        /// name="key">Key as a configuration variable
        /// name="value">Key value as string
        public void SetConfig(string key, string value, bool CreateIfNotExist = false)
        {
            if (_Configuration.Contains(key))
            {
                _Configuration[key] = value;
                
            }
            else if (CreateIfNotExist)
            {
                _Configuration.Add((object)key, (object)value);
            }
        }
        /// <summary>
        /// Get a value of key. If current kay did not exist in the context
        /// you can put a default value to set or simples ignore and recive
        /// a empty string as defult
        /// </summary>
        /// name="key">Key that you need the value
        /// name="mode">Handling method if key don't exit in the file
        /// name="val">Default value that to place in key if it don't exist.
        /// If *mode* is DoNothig this value was ignored
        /// <returns></returns>
        public string GetConfigurationOf(string key, ConfigMode mode =
            ConfigMode.DoNothing, string val = "" ){
            //Verifay if this key exit
            if(_Configuration.Contains(key))
            {
                //If key exist return value.
                return _Configuration[key].ToString();
            }else{
                //else make the handling
                if (mode != ConfigMode.DoNothing)
                {
                    //append new entry in configuration file.
                    AppendConfig(key, val);
                    return val;
                }
                else
                {
                    return "";
                }
            }
        }
        /// <summary>
        /// Function to force to write in the microSD card the current
        /// configuration.
        /// </summary>
        public void ForceToWrite()
        {
            try
            {
                FileStream CfgFileStream = new FileStream("\\SD\\" + _FileName,
                                                            FileMode.OpenOrCreate,
                                                            FileAccess.ReadWrite,
                                                            FileShare.ReadWrite);
                StreamWriter CfgStreamWriter = new StreamWriter(CfgFileStream);
                CfgStreamWriter.WriteLine(";Netduino Plus Configuration File");
                foreach (DictionaryEntry Entry in _Configuration)
                {
CfgStreamWriter.WriteLine(Entry.Key.ToString() + "=" +
                                                Entry.Value.ToString());
                }
                CfgStreamWriter.Close();
                CfgFileStream.Close();
            }
            catch { }
        }
        /// <summary>
        /// Desconstructor to write de file in card when the class is
        /// disposed
        /// </summary>
        ~Configuration()
        {
            ForceToWrite();
        }
    }
}

 

La clase es muy simple llamado configuraition y sirve para manejar leer y escribir eventos en la tarjeta microSD que facilita porque no es necesario acceder directamente al archivo, basta con crear la clase y obtener los valores de configuración deseados.

El formato elegido para el archivo es INI . Para aquellos que no conocen el formato del archivo INI es un estándar para la preparación de archivos dedicado para cargar la configuración de programas y dispositivos. Archivos INI son archivos mediante un texto simple con una estructura muy básica que ha  generalizado en Microsoft y en todo el ecosistema Windows. Por supuesto que es muy flojo (un archivo oculto) en Windows ha sido sustituido por el registro de Windows, pero el formato es valido.

Cuando el nombre se debe a la extensión de nombre de archivo que se utiliza comúnmente, «.INI», que viene de «arranque». Como «INI» es una extensión de «Windows» muchos desarrolladores  han comenzado a jugar creando varias extensiones como como «CFG», «conf» o «.TXT».

El formato INI encapsula el mensaje a través de nuevas líneas en las que una propiedad (o parámetro) es único y es una línea de cualquier archivo. En esta propiedad tiene un nombre y unvalor, delimitado por un signo de igual (=). El nombre aparece a la izquierda del signo igual.

propiedad = valor
propiedad2 = valor2

El punto y coma (";") indica el comienzo de una línea se trata como comentario comentario Cualquier cosa entre el punto y coma y el final de la línea se ignora.

El código que maneja un archivo escrito de esa manera en la tarjeta microSD permitiendo la creación de comentarios y la manipulación de atributos a través de una tabla. Los métodos principales son el constructor, el AppendConfig (), GetConfigurationOf () y el ForceToWrite ().

El constructor de la clase tiene un valor por defecto es el nombre predeterminado ndpcfg.ini que significa archivo de configuración Netduino Plus que se puede cambiar la ubicación o el nombre de la creación de una clase con un nombre de archivo diferente. Si usted desea poner en una subcarpeta recordar la sintaxis: «nomedoarquivo.extensão Carpeta1 \\ \\ Carpeta2».

El método GetConfigurationOf (clave) es petición de una propiedad que figuran en el expediente, lo natural es que existe la propiedad y que cuestionan el valor como cadena, se devuelve en caso contrario devuelve una cadena sin caracteres («»). Pero se puede asignar un valor por defecto si no se va a grabar al terminar el control de clases.

El otro método consiste en asignar una nueva clave puede utilizar el AppendConfig () funciones o SetConfig (), esto debido a que el archivo INI tiene una sintaxis que no permite propiedades con el mismo nombre por lo que puede tratar de crear y ya existe en el contexto sólo cambiar el valor o la viceversa con SetConfig ()

Por último, está el método ForceToWrite () que sirve para forzar la escritura de toda la configuración en la tarjeta microSD incluso antes de la clase ha terminado. Esto reduce la cantidad de veces que se accede a la tarjeta, no es la mejor manera de hacer esto, pero esta clase seguirá evolucionando.

Para probar la clase descargar el proyecto aquí .

 

Config = new Configuration ();
 config.GetConfigurationOf ("IP",
     Configuration.ConfigMode.Append, "192.200.6.254");
            
 // Contar el número de código de ejecuciones
 Int32 exec = Convert.ToInt32 (
     config.GetConfigurationOf ("ExecutionsCount" 
     Configuration.ConfigMode.Append, "1"));
 exec ++;
 config.SetConfig (exec.ToString "ExecutionsCount" ());
            
 // Registro de valores
 config.AppendConfig ("máscara", "255.255.0.0");
 config.SetConfig ("puerta de entrada", "192.200.1.1");

 // Escritura Obligar
 config.ForceToWrite ();

Para ilustrar el funcionamiento el autor creo una variable en el archivo de configuración que se incrementa cada vez que se ejecuta el código, un clásico ejemplo del archivo de configuración de la aplicación.

Abra su mente a nuevas ideas, en el archivo de configuración puede contener valores tales como mensajes de LCD para diferentes tipos de cultura, las opciones preferidas por los manipuladores de usuarios de la solución y más.

 

Fuente aqui

Anuncio publicitario

Cómo solucionar el problema de que algunas unidades usb no son reconocidas en windows 8


Reparar problemas de dispositivo de hardware y drivers en Windows  de  unidades    usb   que no son reconocidas  correctamente  en nuestro equipo con Windows 8  a veces  puede ser una labor ardua sobre todo cuando vemos que esa unidad es operativa   en otro equipo.

En windows  7  ante  este problema  con el regedit    podíamos ir a  la siguiente ruta   \Hkey current  users \Software\ Microsoft\Windows\ Current user\Policies\  de modo que si había  más de una entrada  debíamos eliminar una , con lo que el problema se solucionaba.

En window 8.1 , como la solución anterior no es  efizcaz,  disponemos de la herramienta Fixit  gratuita desde el sitio web de soporte de Microsoft .  Esta utilidad diagnostica y repara automáticamente problemas de hardware como dispositivos de sonido, USB que no funcionan o hardware que no se reconoce.

Soluciona:
  • Cuando instala un dispositivo de hardware, éste no se detecta.
  • Determina si el dispositivo de audio está conectado.
  • Windows Update no instala automáticamente las actualizaciones del controlador.
  • Verá alguno de los errores siguientes:
    • está deshabilitado o apagado en Windows.
    • <Nombre dispositivo> tiene un problema con el controlador y es necesario volver a instalarlo.
    • Windows detectó un problema con , no funciona correctamente.
    • No hay ningún controlador instalado para <Nombre dispositivo>.
Se ejecuta en…
  • Windows 7
  • Windows Server 2008
  • Windows Server 2008 R2
  • Windows Vista
  • Windows 8
  • Windows 8.1
  • Windows Server 2012 editions
  • Windows Server 2012 R2

 

 

Para ejecutarla , tan solo hay que ir  a la  pagina oficial de Microsoft  y seguir  estas sencillas instrucciones:

Pinchar el link  de la  pagina  de Microsoft   y aceptar la descarga del instalador (por supuesto  el sw  no lleva ningún tipo de malware ni publicidad dado el origen del propio software que es el propio fabbrciante)

En la  parte derecha superior   tendremos que pulsar  el botón verde «Ejecutar ahora»

 

fixiti

 

Ahora hay que aceptar la descarga , y permitir la ejecución de este  aplicación   DeviceWin8.meta.diagcab.

Si no se ejecuta  ésta , hacer doble click y permitir  la ejecución  de este ( pulsando en Si)

Ahora simplemente pulsaremos  en siguinte

prob

 

Tras unos minutos se supone quedara resulto el problema

 

probelma

 

 

Por cierto , esta utilidad es gratuita  y ! se puede ejecutar tantas veces se  necesite siempre  que tenga algún tipo de problema con alguna unidad  usb en Windows  8 !

NeonMika.Webserver (servidor web para Netduino) – Parte 3


En esta tercera   parte del NeonMika.Webserver  mostramos las opciones de configuración de todo lo que se ha dicho antes en relación con el servidor web y las opciones para la lectura y la escritura en la tarjeta microSD. También se evaluarán las opciones que existen  sobre solicitudes XML al servidor a través de un programa muy simple de prueba

Petición de Login

En el post   anterior    sobre el NeonMika.Webserver  pudimos comprobar  que una vez que el cliente esta  conectado a la placa de  Netduino+  la conexión nunca se cierra; y, además, cualquier cliente puede acceder a ella sin necesidad de una nueva solicitud de inicio de sesión.

Por supuesto que esto está mal, los clientes no se pueden conectar de forma indiscriminada y una especie de tiempo de espera debería existir en la solicitud del cliente de forma automática que se pudiera quitar debido a la inactividad

Para entender mejor este proceso el autor hizo un pequeño diagrama de cómo funciona la nueva solicitud de inicio de sesión:

 

Una vez que usted ha solicitado una página de código comprueba si el cliente HTML (la IP donde partió la solicitud)  si  ya está en la lista interna de los clientes de un inicio de sesión satisfactorio, si no envía  a la página de inicio de sesión y almacena la página solicitada en la memoria para enviarla más tarde .

En la página de inicio de sesión del usuario debe introducir el nombre de usuario y contraseña a través de un formulario que será enviado por el método POST que contiene por lo menos estos dos objetos: » nombre de usuario «y» contraseña «. Una vez conectado correctamente este cliente está incluido en la lista de clientes con un tiempo de vida de la conexión y luego abre la página solicitada, si esta página es nulo o vacío se carga «index.html »

Los usuarios pueden navegar en todas las páginas disponibles en el servidor y también puede tener acceso a otros tipos de respuesta como XMLResponse y JSONRespose

Un acceso de este tipo se lleva a cabo el curso de la vida de la conexión del cliente se regenera al valor pre-definido en la configuración.  La duración de la conexión se decrementa automáticamente una función periódica independiente.

Al llegar a cero cliente se elimina de la lista y se requiere una nueva conexión:así, el servidor web ya tiene una  sesión segura de  conexión a través de la configuración HTML

HTML a través de la configuración de conexión

La configuración IP es una unión de la segunda parte de esta serie de artículos sobre el NeonMika.Webserver relacionado  sobre la configuración escrito en la tarjeta microSD. Vamos a ver ua nueva función de la construcción del servidor donde se requiren datos que se obtienen a partir de un archivo grabado en la tarjeta microSD.
Desafortunádamente, si el código es universal, es decir, se necesitauna página html unida a una función de código. También utilizando el método POST la petición de inicio de sesión se añadió como una solicitud XML (aunque la respuesta no es XML bastante). Así, las peticciones de la página «http: // ipnetduino / config» son enviados a la función «SetNewConfig» en Server.cs.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
public Server(OutputPort ledPort, int portNumber = 80)
{
    Configuration config = new Configuration(Settings.CONFIG_FILE);
                       
    var interf = NetworkInterface.GetAllNetworkInterfaces()[0];
    if (config.GetConfigurationOf("dhcp", Configuration.ConfigMode.Append, "false") == "true")
    {
        interf.EnableDhcp();
        interf.RenewDhcpLease();
    }
    else
    {
        //New to fix
        string ipAddress = config.GetConfigurationOf("ip", Configuration.ConfigMode.Append, "10.20.19.200");
        string subnetMask = config.GetConfigurationOf("mask", Configuration.ConfigMode.Append, "255.255.0.0");
        string gatewayAddress = config.GetConfigurationOf("gateway", Configuration.ConfigMode.Append, "10.20.19.1");
            
        interf.EnableStaticIP(ipAddress, subnetMask, gatewayAddress);
    }
            
    //New to set login webpage
    string loginName = config.GetConfigurationOf("loginName", Configuration.ConfigMode.Append, "admin");
    string loginPassword = config.GetConfigurationOf("loginPassword", Configuration.ConfigMode.Append, "admin");
    if (!((loginName == null) && (loginPassword == null)))
    {
        _UserName = loginName;
        _Password = loginPassword;
    }
    ClientsLogedTimeOut = new Timer(new TimerCallback(ClientsLogedEvent), null, 60000, 60000);
           
    this._PortNumber = portNumber;
    _OnboardLed = ledPort;
    ResponseListInitialize();
    _ListeningSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    _ListeningSocket.Bind(new IPEndPoint(IPAddress.Any, portNumber));
    _ListeningSocket.Listen(4);
    var webserverThread = new Thread(WaitingForRequest);
    webserverThread.Start();
    //To force file write in the card
    config.ForceToWrite();
    //limpa a memória
    Debug.GC(true);
}

 

 

La «función SetNewConfig «es una función que se puede llamar por dos métodos: POST y GET. Cuando nos dijeron que el método GET es una solicitud de la página HTML mediante el envío de la página HTML existente en la tarjeta SD: «http://ipnetduino/config.html». Está página «config.html» se puede configurar mediante el establecimiento REQUEST_CONFIG_URL enSettings.cs . Una vez que se carga la página puede enviar el formulario a través de un post con la nueva información de configuración. Cuando el cliente envía una solicitud POST se envía cualquier tipo de información mediante la manipulación del archivo de configuración y ajuste de la configuración.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
private void SetNewConfig(RequestReceivedEventArgs e, Hashtable results)
{
    if (e.Request.Method == "POST")
    {
        //Esta enviando as informações de configuração
        Configuration config = new Configuration(Settings.CONFIG_FILE);
        foreach( DictionaryEntry ent in e.Request.PostArguments)
        {
            config.SetConfig(ent.Key.ToString(), ent.Value.ToString(),true);
        }
        //Envia a página de configuração
        e.Request.URL = Settings.REQUEST_CONFIG_OK_URL;
        Response response = null;
        response = (Response)_Responses["FileResponse"];
        if (response != null)
        {
            if (response.ConditionsCheckAndDataFill(e))
            {
                response.SendResponse(e);
            }
        }  
        //Force to Write
        config.ForceToWrite();
        //Apaga tudo!
        Debug.GC(true);
        //Desliga a placa
        PowerState.RebootDevice(false);
    }
    else
    {
        //envia a página de configuração
        e.Request.URL = Settings.REQUEST_CONFIG_URL;
        Response response = null;
        response = (Response)_Responses["FileResponse"];
        if (response != null)
        {       
            if (response.ConditionsCheckAndDataFill(e))
            {
                if (!response.SendResponse(e))
                {
                }
                ////Debug("Sending response failed");
                Thread ledThread = new Thread(new ThreadStart(delegate()
                {
                    for (int i = 0; i < 3; i++)
                    {
                        _OnboardLed.Write(true); Thread.Sleep(5);
                        _OnboardLed.Write(false); Thread.Sleep(20);
                    }
                }));
                        
                ledThread.Start();
            }
        }  
    }
}

Si al  final, una página ha entrado no son aceptados los ajustes y se envía de nuevo y la placa reanuda el código para que las opciones de conexión  tengan efecto.

//Force to Write
config.ForceToWrite();

//Apaga tudo!
Debug.GC(true);

//Desliga a placa
PowerState.RebootDevice(false);

Tenga en cuenta que la página no se envía cuando se hace un preset con los valores de configuración actuales y  no se implementan, pero es necesario para hacer una buena solución robusta. Por otra parte, cuando se recibe el método POST los campos de formulario se escriben en el archivo sin tipo de información de validación para el envío o si el atributo tiene sentido para que el ajuste sea correcto.La validación de este paso es necesario.

Otra simplificación es el hecho es que no todos los atributos puedan ser configurados, el nombre de usuario y la contraseña no son, por definición, en esta forma, pero se puede aumentar simplemente el formulario e incluir  dos campos con la etiqueta: nombre de usuario y contraseña, y todo se resolverá .> recordar que, dado que no existe una validación ejar estos espacios en blanco permite que el usuario sea «» ( cadena vacía) y la contraseña de la misma cosa «» (vacío).

Esto hace que sea posible  mostrar lo lejos se pueda  llegar  con  Netduino Plus.. NET Micro Framework permite que el sistema operativo embebido  soperte   cosas tan potentes  sin un costo alto nivel de memoria externa. Estoy seguro de poner un servidor web con u PIC24 o un MSP430 no sea una tarea fácil y universal como se hizo aquí.

Peticiones XML

Una de las características implementadas por Marcus VV en el servidor NeonMika.server   son elsoporte de  las peticiones de XML. Se está enviando un GET para escribir / leer algo en hardware / software en Netduino; lo cual es muy útil si se desea enviar un comando a través de la automatización de servidores como de apertura y cierre de un relé o comprobar el estado de iluminación (por ejemplo).

Las   respuestas XML son en realidad delegación de un tratamiento de un GET (el principio porque han probado los ajustes que usted puede enviar un POST) enviado por un cliente. Al igual que en elcódigo modificado adjunto  se pide un login y una contraseña, también se requiere esta información de acceso para acceder a los métodos XML.

Sobre Server.cs , este tiene una función llamada ResponseListInitialize (), que se inicia todas las delegaciones requisición y métodos de cada delegación serán funciones dedicadas para el propósito indicado.

Véase el ejemplo de » switchDigitalPin «cuando se envía la solicitud:» http://ipnetduino/switchDigitalPin «esta solicitud es interpretada por la función SwitchDigitalPin Es necesario «atributo pin «y» Estado«que son recibidas por el método GET, por lo que la solicitud de se hace de la siguiente manera:

 

 

El retorno de esta función es un archivo XML como se puede ver en esta solicitud:

Además  en neomika.server      las siguientes funciones de acceso a hardware también están disponibles:

  • echo > Valor [ipnetduino] / echo? = [az]
  • switchDigitalPin > [ipnetduino] / switchDigitalPin? pin = [0-13]
  • setDigitalPin > pin [ipnetduino] / setDigitalPin = [0-13] y Estado = [true | false]?
  • PWM pin> [ipnetduino] / PWM = [5 | 6 | 9 | 10]? y periodo = [int] y duración = [int]
  • xmlResponselist > [ipnetduino] / xmlResponselist
  • getAnalogPinValue > [ipnetduino] / getAnalogPinValue? = pin [0-5]
  • getDigitalPinState 
    > [ipnetduino] / getDigitalPinState? pin = [0-13]
  • multipleXML
    > [ipnetduino] / multixml

Lo que viene a la mente en este momento es importante la necesidad de utilizar el navegador para que el acceso a estas «funciones» están disponibles para acceder a la tarjeta.Para demostrar que no es necesario código muy complejo   el autor   hizo  iniciar su sesión en el servidor Netduino Plus y hacer los pins ajustes y leer las entradas analógicas en un programa de manera práctica.

La idea de que el software es exclusivamente para mostrar la viabilidad de NeoMika.Webserver y soporte XML. El   inicio del programa se puede ajustar el valor de IP a IP que su tablero es Netduino Plus y realizar una prueba de ping .

Antes de acceder a la tarjeta es necesario darse cuenta de inicio de sesión,, por lo que al hacer clic en el botón Iniciar sesión se le enviará a la página de inicio de sesión correctamente una vez realizado el  acceso a la tarjeta de programa.

En el interfaz    aparece en un lado la imagen de la Netduino y los campos alrededor de su acceso. Al hacer clic en la actualización de los valores de los pines analógicos se actualizan y cambian el valor porcentual de la década de PWM cambian la placa y botones manejan los pines IO. Todo esto se lleva a cabo mediante el uso de XML con el siguiente interesantisimo código  , que nos demuestra la potencia de esta plataforma.

Function getAnvalue(pin As Integer) As String
        Dim webClient As New System.Net.WebClient
        Dim result As String = webClient.DownloadString("http://" + boardIP.Text.ToString() + "/getAnalogPinValue?pin=" + pin.ToString())
        EventsLog.Text += result.ToString() + vbNewLine
        Dim AdStrVal As String() = result.Split(">")
        Dim AdStrVal2 As String() = AdStrVal(3).Split("<")
        Dim advalue As Integer = CType(AdStrVal2(0), Integer)
        Return (3.3 * advalue / 1024).ToString()
    End Function

Consideraciones finales

Para concluir esta serie de artículos sobre la obra de Marcus NeoMika.Webserver y VV.destacaríamos  la practicidad con la que todo esto se llevó a cabo y que las nuevas aplicaciones se puede cerrar en el medio de código sin muchos cambios. Esto es importante porque muestra qué tan rápido se puede desarrollar algo nuevo y es ideal para aplicaciones de pequeñas empresas.

Recursos

Versión actualizada del servidor web se puede descargar aquí .

La  manipulación de software de XML se puede descargar aquí .

Fuente aqui

NeonMika.Webserver Exploración – Parte 2


Como  continuación del post  sobre  el servidor NeonMika webserver  vamos a continuar sobre el   uso de este estupendo servidor , esta vez tratando el tema de la gestión  de  formularios en  html    cuyas  paginas  para que  sean  servidas   por el  servidor web NeonMika webserver  se deben almacenar en la micro-sd interna de nuestro Netduino +2

Al programador  le tomó dos semanas  publicar algo nuevo en el servidor porque necesitaba tiempo para aprender cómo funciona realmente un servidor web, necesitando para ello aprender HTML, Javascript (otra vez), los métodos de protocolo de red (POST y GET) y así sucesivamente.

Después de mucha lucha pudo traer un nuevo código, incluso sin la parte de configuración, se centro en la página de inicio de sesión , la cual realmente le dió trabajo que hacer, ya que tuvo que luchar con la página web para alojarla  a bordo de la tarjeta microSD de modo  que  Netduino Plus pudiera  procesar ésta  gracias al servidor  NeonMika  webserver   ejecutándose en Netduino 2 Plus.

 

Lo que se necesitaba entonces animarlo todo: es ahi   donde  llega la parte del Javascript,   pero ser topo con  el gran problema es que cada página tenía que ser «conectado» al acceder a la página y el inicio de sesión fue el tratamiento incorrecto de abrir otra ventana de inicio de sesión y Además, cada vez que la página se ha podido abrir revelaba la contraseña en el origen de la página. Con todos estos inconvenientes tuvo que abandonar esa idea y pasar a una solicitud de inicio de sesión en el servidor.

1
2
3
4
/ / / <summary>
/ / / Página tarjeta MicroSD cómo son la página web de inicio de sesión
/ / / </ Summary>
public const string REQUEST_LOGIN_URL = "login.html" ;
1
 

Con el código   anterior se hace referencia a la página en la que la forma de inicio de sesión en la página web. Esta página en el  ejemplo se llama «login.html» y se trata de una página web con una forma que se transmita los datos del formulario ( user/pwd)   como parámetros por el método POST. Se ha utilizado el método POST para enviar datos a través del cuerpo del mensaje aunquecomplica un poco el camino para encontrar la contraseña de seguridad.

Para acceder al servidor en el   formulario con el método POST, el código  debe ser escrito de la siguiente manera:

1
2
3
4
5
6
7
8
9
10
11
< form method = "post" >
< style = "color: rgb (255, 255, 255);" > Usua Ahora: </ lapso > < input type = "text" name = "nombre de usuario" >
< style = "color: rgb (255, 255, 255);" > Contraseña: </ lapso > < input type = "password" name = "Contraseña" >
< input type = "submit" value = "Login" onclick = "sendlogin1 ()" >
</ form >

El tratamiento se realiza de tal manera que cuando se  hace una petición de una página viene a Netduino + se  envía la página de inicio de sesión para que el usuario introduzca la contraseña . Una vez que haya recibido la información y la contraseña que el servidor esté abierto para el cliente para acceder a las páginas.

Una función que controla la solicitud de páginas  puede hacerse de esta manera:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
/ / / <summary>
/ / / Comprueba si una solicitud entrante contra las posibles respuestas
/ / / </ Summary>
/ / / <param Name="e"> </ param>
privado void HandleRequest (y RequestReceivedEventArgs)
{
    / / / / Debug ("Empieza a buscar solicitudes");
    Respuesta Respuesta = null;
    if  (_Loged)
    {
        Archivo de respuestas / / Normal
        if  (_Responses.Contains (e.Request.URL))
        {
            / / Este respuestas personalizadas crearon la aplicación
            respuesta = (Respuesta) _Responses [e.Request.URL];
        }
        else
        {
           respuesta = (Respuesta) _Responses [ "FileResponse" ];
        }
    }
    else
    {
        / / Comprueba si es un mensaje Login mensaje
        if (e.Request.Method == "POST" )
        {
            int validación = 2;
            foreach (entrada DictionaryEntry en e.Request.PostArguments)
            {
                if  ((entry.Key.ToString () == "password" ) && (entry.Value.ToString () == _password))
                {
                    validación -;
                }
                if  ((entry.Key.ToString () == "nombre de usuario" ) && (entry.Value.ToString () == _USERNAME))
                {
                    validación -;
                }
                if  (validación == 0) {
                    / / Inicio de sesión y cargar la cola Webpage usuario solicitado
                    _Loged = verdadero ;
                    e.Request.LoadWebpageRequested ();
                    respuesta = (Respuesta) _Responses [ "FileResponse" ];
                }
            }
        }
        else
        {
            / / Set Login para llamar página web - icono Netduino para la carga y no se cargan otras páginas
            if  (e.Request.URL.Length> 5)
            {
                if  (e.Request.URL.Substring (e.Request.URL.Length - 5) == "html" )
                {
                    e.Request.RequestLogin ();
                }
            }
            else
            {
                e.Request.RequestLogin ();
            }
            / / Ir a la página del fileResponse enviar el default
            respuesta = (Respuesta) _Responses [ "FileResponse" ];
        }
    }
    if  (response! = null)
    {
        if  (response.ConditionsCheckAndDataFill (e))
        {
            Hilo LedThread = new hilo ( new ThreadStart (delegado ()
            {
                for ( int i = 0; i <3; i + +)
                {
                    _OnboardLed.Write ( verdadero ); Thread.Sleep (5);
                    _OnboardLed.Write ( false ); Thread.Sleep (20);
                }
            }));
            ledThread.Start ();
        }
    }
}

Enlace para descargar el código fuente . Enlace para descargar los archivos a la tarjeta micro SD(para ejecutar el ejemplo sólo hay que poner en la raíz)

El problema de Imágenes

Un problema con las imágenes incrustadas en la página    html   es que las imágenes pueden ser demasiado pesadas ​​… (> 500kB) lo cual    ya es una cosa pesada para nuestro pequeño servidor web, aunque  puede    que tenga  buenos resultados con  imágenes menores  (por  ejemplo el logo de la Netduino, como se puede ver por el servidor de la pantalla y la imagen de la placa,es sólo de  70kB).

La forma por ahora es tratar de utilizar cifras o pequeña colección de archivos muy pequeños, pero buscando a través del foro Netduino se sugiere  que podría  haber alguna manera de pasar un puntero a la tarjeta microSD para transferir el archivo sin ponerlo en una variable interna,la ventaja seria   que no pasaría la memoria del procesador para archivos y búfer de página HTML  permitiendo  que los archivos de cualquier tamaño pudieran ser transferidos.

El problema de tiempo de espera de páginas

Este es un problema molesto que está pasando y está perjudicando la  sesión enviando POST. A menudo, la placa es demasiado lenta para manejar las peticiones del navegador y   esto hace que la página no se cargue  y haya que actualizar la página  necesitando una segunda petición a la placa y empezar a enviar la página.Este problema no es sólo nuestro, pero todo de una manera en general ha tenido este problema debido a que la capa de código está muy por encima y simplemente toma demasiado tiempo para responder  pero están trabajando para mejorar esto adentro NETMF. 

En la tercera parte se tratara  de XML y JSON métodos y la configuración IP mediante el NeoMika.Webserver servidor. 

 

Fuente  aqui

BlackFriday en Amazon regalando apps para Android gratis


Esta semana , en el  mundo anglosajon,  justo   despues del black Friday (que este mismo viernes 28 de Noviembre) ,marca  el pistoletazo  de salida  para la compaña de Navidad .   Ultimamente la mayoría de comercios físicos y por  supuesto tambien online se   suman a la promoción del Black Friday, una costumbre claramente anglosajona  que  ofrece descuentos sólo el viernes en una franja horaria muy concreta   y con limitaciones de numero  de productos .

 

Amazon España   ha querido sumarse a la fiesta regalando  aplicaciones móviles  para Android  que normalmente son de pago, que según Amazon el  paquete de aplicaciones completo está valorado en unos 100 euros en total  comparando el precio habitual que tiene cada una si las compramos por separado fuera de esta promocion .

Parece  pues una buena oportunidad para hacernos con algunas herramientas interesantes como pueden ser backup de nuestro terminal , programas de retoque fotografico, software de nvegacion,etc  y por supuesto tambien  juegos y software de entretenimiento (hay varias opciones para entrenamiento de nuestra mente)    todas estas  sin coste alguno  si lo descargamos entre el jueves 27 de Noviembre y el viernes 28  acabando el próximo sábado 29 de noviembre.

 

 

IMPORTANTE: para poder descargas estas apps no se hace por el procedimiento habital desde Google Play pues tenemos qeu isntalar  primero en nuestro terminal  TIENDA APPS  ( se hace desde este  link) y desde  ahi coon nuestra cuenta de Amazon.Para tener  disponibles estas apps , tenemos que iniciar la descarga de las aplicaciones hasta el final  con lo que esat accion conllevara que esa app se guarde en la nube y ya forme parte de nuestra “biblioteca” para reinstalarla cuando deseemos.

 

 

A continuación os mostramos  ALGUNAS  de las apps mas famosas , así como  una   lista de aplicaciones que regalamos sólo durante las  72 horas que acaban de empezar ya:

 

MyBackup Pro

Novedades en la versión 4.0.9
– Mejora de Android 4.4 apoyo.
– Correcciones de errores Misc.
v4.0.6
– Añadido soporte para «Google Experience Launcher» para copias de seguridad lanzador casa / restauración en KitKat.
– Añadido soporte para programación semanal se ejecute en cualquier día de la semana.
– Opción de restaurar los eventos del calendario a cualquier calendario en el dispositivo añadido.
– Opción de seleccionar diferentes idiomas para la visualización Añadido.
v4.0.5
– Diseño mejorado para tabletas.
v4.0.3
– Capacidad de comprar submarinos utilizando Android In-App facturación Añadido.
– Capacidad de comprar submarinos utilizando Google Wallet Añadido.
– Solución de backup remoto.
– Opción de almacenamiento USB Añadido.
v4.0.2
– Android 4.4 de apoyo Kitkat (SMS / MMS restaurar problema se corrigió por permitiendo MyBackup Pro para que sea su aplicación de mensajería predeterminado temporalmente mientras se restaura).
– Restaurar fix diálogo de progreso.
– Varios arreglos.
v4.0.1
– Correcciones de Android 4.3 errores.
– Restaurar aplicaciones de horario sólo selecciona versión más reciente de una aplicación de la lista.
– Varios arreglos.

 

Perfectly Clear

Características del producto

  • Captura HDR te da versiones artísiticas y realistas de cada imágen
  • Mejor de su clase identificador de tono agrega profundidad y contraste, asegurando un look HDR brillante.
  • La función inigualada de anti doble imágen proporciona fotos perfectas cuando el sujeto está en movimiento
  • Panorama te facilita el desplazamiento de pantalla en cualquier dirección y automáticamente incorpora las imágenes tomadas en una
  • El modo de retrato automáticamente determina el momento ideal para tomar fotos
  • La función de burst más rápida, fina, y larga disponible en el mercado
  • Las funciones sofisticadas que esperarias de una cámara profesional:
  • Corrección de foto de un sólo click aplica diez ajustes patentados en segundos
  • La función Embellecer empareja el tono de la piel, ilumina ojos, y blanque dientes automáticamente!
  • El Editor te deja mejorar imágenes tomadas con la cámara Perfectly Clear ó capturadas con aplicaciones diferentes.

 

MapsWithMe Pro, mapas sin conexión

• Más de 7 millones de descargas en todo el mundo
• Entre las 5 primeras aplicaciones de viajes en más de 80 países

Mapas rápidos y detallados sin conexión de todos los países del mundo Los mapas funcionan en cualquier lugar, en cualquier momento. No es necesaria conexión a internet.

GRAN NIVEL DE DETALLE
• Más detalles que en los otros mapas.
• Millones de puntos de interés (POI): restaurantes, gasolineras, destinos turísticos…
• Fantástico para las vacaciones de invierno: todas las estaciones de esquí y las pistas.
• Datos de mapas actualizados que se añaden de forma diaria por los usuarios de todo el mundo.

NO ES NECESARIA CONEXIÓN A INTERNET
• Los mapas funcionan cuando no hay disponible conexión a internet
• Sin costes de roaming al viajar al extranjero
• Conoce siempre dónde estás

FUNCIONA EN CUALQUIER LUGAR
• Útil en Espana, indispensable en los viajes.
• 345 países e islas Todos los lugares están cubiertos.
• Paga una vez, úsalo en cualquier localización.
• Compañero fiable para los ciclistas.

REALMENTE RÁPIDO
• Probablemente los mapas más rápidos que hay. Muestra el mapa cuando otros no lo hacen.
• Compresión innovadora de los datos de mapas.
• Los mapas son impresionantemente pequeños. Ahorra memoria de tu teléfono.

VALE LA PENA EL DINERO
• Descarga el mapa de cualquier país gratis.

 

Documents To Go Full Version Key

Trabaje desde cualquier lugar: vea, edite y cree archivos de Microsoft® Office, y vea archivos de Adobe PDF® en su smartphone o tableta Android con el conjunto de aplicaciones móviles compatibles con Office original y más vendido de la historia.

LA VENTAJA DE DATAVIZ®
• Documents To Go, que ya tiene 15 años, se encuentra precargado en millones de dispositivos de todo el mundo y se ha descargado más de 40 millones de veces en Android.
• InTact Technology™™ mantiene el formato original de los archivos editados.
• Todos sus archivos en una aplicación, sin necesidad de descargar componentes individuales ni aplicaciones de servicios en la nube.
• Opciones para guardar y sincronizar documentos directamente en su dispositivo Android, en su ordenador de sobremesa o portátil mediante USB, o en servicios de almacenamiento en la nube.

NOVEDADES de la versión 4.0:
• La edición es gratuita para nuevos usuarios y usuarios existentes de Docs To Go ‘Viewer Edition’.
• Rediseño de la aplicación: la interfaz de usuario modernizada incluye un explorador de archivos refinado y un acceso sencillo a opciones completas de edición y formato.
• Compatibilidad con servicios en la nube: ver, editar, guardar y sincronizar con varios servicios en la nube de Dropbox, Box, SkyDrive/OneDrive y Google Drive.
• Compatible con el sistema operativo Android Kit Kat (4.4).

CARACTERÍSTICAS GENERALES DEL CONJUNTO:
• Incluye ambas versiones para smartphones y tabletas Android en una sola descarga.
• Ver, editar y crear archivos de MS Office (2007/2008/2010/2013).
• Ver archivos PDF
• Guardar los cambios directamente en su dispositivo, tarjeta de memoria o servicio en la nube, o en su PC Windows con nuestra aplicación de sobremesa/portátil.
• Enviar y recibir archivos adjuntos de correo electrónico compatibles mediante la aplicación de correo favorita o Gmail.
• Gestor de clasificación de archivos (ordene su lista de archivos por nombre, fecha de modificación, tamaño, etc.).

WORD TO GO:
• Cambiar el formato de fuente, incluidas las opciones de tamaño, color, negrita, cursiva, subrayado y resaltado
• Visualización de alta calidad de gráficos, tablas, marcadores, comentarios, notas a pie de página/finales, cuadros de texto, índices y enlaces
• Cambiar la alineación de los párrafos
• Editar numeraciones y viñetas
• Buscar y reemplazar
• Ver los cambios realizados
• Recuento de palabras
• Abrir archivos de Word 97-2013 protegidos por contraseña

SHEET TO GO:
• Inmovilizar paneles
• Ordenar
• Autoajustar
• Opciones extensivas de formato de celda, número y hoja
• 111 funciones compatibles
• Insertar, eliminar, cambiar el tamaño, mostrar/ocultar filas y columnas
• Cambiar el nombre, insertar y eliminar hojas de trabajo
• Buscar/buscar siguiente
• Ver gráficos
• Abrir archivos de Excel 97-2013 protegidos por contraseña

SLIDESHOW TO GO:
• Revisar diapositivas fácilmente
• Ensayar los tiempos
• Ver notas para el orador
• Editar diapositivas y aumentar/disminuir el nivel de las viñetas
• Abrir archivos de PowerPoint 97-2013 protegidos por contraseña

PDF TO GO:
• Visualización de alta calidad de archivos PDF con opciones de vista de página, ajuste de línea, autogiro, marcadores, búsqueda y selección/copia de texto
• Pellizque la pantalla para elegir el tamaño/la anchura deseada para el PDF
• Abrir archivos PDF protegidos con contraseña

XiiaLive Pro

  • Todas las funciones que se incluyen en nuestra XiiaLive versión gratuita -variedad de estaciones y directorios, favoritos, historial, alarma, temporizador de apagado automático, y la capacidad de compartir.
  • No hay nadie! Puede transmitir sin adds aparecen en su pantalla.
  • REWIND aumenta de 5 minutos a la versión gratuita de hasta 60 minutos para la versión PRO.
  • Han añadido más opciones para el sonidos de notificación. Ahora usted puede elegir el sonido que usted prefiera.
  • Opciones avanzadas de filtrado de la estación.
  • Posibilidad de añadir accesos directos pantalla de inicio a sus estaciones de radio favoritas.
    Controles anticipados Bluetooth con reproducción automática / detener la reproducción. Escoja un dispositivo para iniciar automáticamente la reproducción en el emparejamiento y también para detener la reproducción al desconectar.
  • Permite restaurar una copia de seguridad anterior que contiene todas tus canciones y emisoras favoritas.
  • Configuración avanzada de streaming habilitadas longitud -buffering, reintentos ilimitadas, conectar y leer los tiempos de espera, entre otros.
  • Amplio conjunto de opciones que le permiten personalizar la forma XiiaLive se comporta en su dispositivo.

OTRAS APPS GRATUITAS:

 

A Charlie Brown Thanksgiving

Andro11C scientific calculator

Angry Birds Seasons
Angry Birds Seasons HD (Kindle Tablet Edition)
Bejeweled 2
Bike Race
Contactos
Cooking Dash: T&S Deluxe
Dark Guardians
Despertador – Alarm Clock Pro
Dictionary!
Documents To Go Full Version Key
Panda y la Casa de Dodo
EDGE Extended
Editor de fotos
Einstein Desafío
Fairway Solitaire (Full)
Forest Legends: The Call of Love
Hidden Objects Thanksgiving & 3 puzzle games
Libro para colorear II
MapsWithMe Pro
Merriam-Webster’s Collegiate Dictionary
Mind Games Pro
Mobile Observatory
Fase Lunar Pro
Music Volume EQ
MyBackup Pro
Parking Frenzy 2.0
Perfectly Clear
Polar Bowler
Quell Memento
RPG Symphony of the Origin
Sago Mini Space Explorer
Shredder Chess
Simple-List Pro
Sonic Jump
Splashtop Whiteboard (Kindle Tablet Edition)
Stack’N Puzzles – an Educational Puzzling Adventure for Kids
TouchRetouch
WiFi File Explorer PRO
XiiaLive Pro

 

El link de dessrcarga desde Amazon .es es el siguiente:   http://www.amazon.es/s/ref=nb_sb_noss?__mk_es_ES=%C3%85M%C3%85%C5%BD%C3%95%C3%91&url=search-alias%3Dmobile-apps&field-keywords=

Servidor web para Netduino -Parte1


Hoy vamos a retomar un excelente servidor web gratuito para Netduino gracias al austriaco Markus VV, que ha puesto a disposición de forma altruista su servidor web NeonMika.Webserver @ para Netduino 2+ en http://neonmikawebserver.codeplex.com/, todos podemos disfrutar de un excelente servidor simplemente anexando su código, el cual ha puesto a su disposición de forma gratuita en codeplex.com para poderlo usar en nuestros propios proyectos.

NeonMika.Webserver, que es el nombre del proyecto, es un servidor web pre-configurado muy fácil de extender que necesita una mínima (o ninguna) línea de código para poder lograr grandes resultados, permitiendo controlar su Netduino 2+, acceder y subir archivos, crear web-services y mucho más.
A continuación recordamos la primera parte de tres artículos que se publicaran inmientemente sobre esta excelente herramienta

Soloelectronicos.com

En este post   nos vamos a centrar en  una sencilla aplicación llamada NeonMika.Webserver que usando la  comunicación por Internet  permita manejar  la placa  Netduino (leer el ADC, leer y escribir puertos IO, etc) lo cual es perfecto para cualquier persona que  esté desarrollando.

Al ver las soluciones de mercado se puede dibujar sobre la base de los pequeños dispositivos que utilizan un pequeño servidor interno para permitir la configuración del dispositivo, que es una solución muy interesante, ya que no requiere la adición de más puertos de puertos de Ethernet y que ya está disponible en el caso de Netduino

Además, hay 3 formas facilitadas (fácil, ya que no requiere hardware externo) para realizar la configuración:

  • A través de un archivo en la tarjeta microSD (se requiere retirar la tarjeta);
  • A través del puerto USB (requiere disponibles la puerta y hacer un » miguer «);
  • A través de un servidor…

Ver la entrada original 1.209 palabras más

Aplicacion para sincronizar con nuestro smartphone , tableta o smart-watch


Muchas veces nos encontramos con contenidos en nuestro ordenador que nos gustaría tener en el teléfono, y viceversa. Para poder transferir los archivos entre uno y otro equipo existen aplicaciones como ésta. SnapPea es una app no demasiado conocida que cumple a la perfección esta misión. Por fín podremos tener nuestra música en el smartphone, incluso la de nuestra biblioteca de iTunes. Además, la mayoría de estas transferencias de archivos las podremos llevar a cabo a través de la conexión usb

SnapPea es una de las mejores aplicaciones que hay en su campo. Es perfecta para darnos la solución definitiva a la transferencia de archivos entre nuestro smartphone y el ordenador.

Este programa es compatible con cualquier dispositivo que tenga versión 2.0 ó posterior de Android podremos disfrutar de esta aplicación. La aplicación ocupa 3,5 MB en la memoria de nuestro teléfono.

 

Con SnapPea vamos a poder transferir archivos entre el ordenador y el samrtphone. Primero, tendremos que emparejar ambos equipos mediante un código que recibimos

 

Cuando vamos a la Google Play Store y nos disponemos a descargar esta aplicación, vemos que se anuncia como «la mejor amiga de Android«, algo que enseguida comprobaremos que, efectivamente, es así (o casi). Esta herramienta gratuita nos permite a los usuarios de esta plataforma gestionar nuestras imágenes, nuestra música, contactos e incluso aplicaciones.

Y todo ello desde la comodidad de la pantalla de nuestro ordenador. Estamos ante una aplicación ante todo útil. Vamos a repasar cómo manejar esta app con la que podremos sincronizar nuestros archivos entre smartphone y PC.

Para comenzar a utilizarla, lo que debemos hacer es descargarla app en nuestro smartphone y después ir a nuestro PC y entrar en web.snappea.com. El mismo teléfono nos irá mostrando los pasos. En el acceso web, nos pedirá una contraseña, que podemos encontrar en el mismo display del smartphone.

Una vez que introduzcamos ese password, lo que haremos es tener ambos equipos en la misma sintonía. Pero, antes, nos tendremos que haber asegurado de que tanto nuestro smartphone como el ordenador están conectados a la misma red wifi. Eso es fundamental, ya que como veremos la transferencia de archivos que podemos hacer entre ambos (móvil y pc) se hará a través de esa conexión.

En realidad, tenemos dos maneras de realizar esta instalación y configuración previa:

  •  Podemos conectar nuestro smartphone o nuestra tableta Android al ordenador a través de un cable USB (y descargar los correspondientes drivers).
  • También podemos realizar esta configuración conectando ambos dispositivos vía wifi. Ésta última opción requiere tan sólo un momento para realizarse. Sólo tendremos que introducir la contraseña para que el sistema reconozca ambos equipos en la misma cuenta.

Una vez realizado ese primer paso, SnapPea nos pedirá en enlacemos ambos equipos. Debemos tener en cuenta que esto es algo opcional, pero que si lo hacemos tendremos alguna ventaja: la aplicación conecta automáticamente el ordenador al smartphone y hace un backup también automático de contactos, fotos y mensajes de texto. Siempre que estés utilizando tu propio ordenador para todo ello (y no lo hagas desde un equipo público) es de lo mñás recomendable realizar este segundo paso.

La pantalla de inicio de SnapPea tiene dos zonas bien diferenciadas. Hay una más amplia, en la que encontramos el contenido principal, con una columna en la que veremos Mi Dispositivo y la zona de descargas.

En ese apartado de Mi Dispositivo es donde vamos a manejar el contenido. Ese cuadro de mandos de esta función es realmente intuitivo, todo está muy claro. Si nos vamos a las aplicaciones, por ejemplo, podremos moverlas de la memoria del teléfono a la tarjeta SD, o hacerlo en sentido contrario.

Para los que han buscado la manera de pasar aplicaciones del móvil a su ordenador, esta es la forma. Y es que con SnapPea, y desde la pantalla del ordenador, también podemos ejecutar esto, como podemos eliminarlas o instalar apps desde la Google Play Store. Todas estas funciones, prácticamente de la misma manera, las puedes realizar en todo lo referente a los contactos, a la biblioteca musical, imágenes, mensajes.. pero como podemos ver, cad categoría de contenidos dispone de sus propias funciones.

Por ejemplo, en Mensajes podemos leer sms en una pantalla que se parecea  un chat. Pero desde ahí podemos escribir los mensajes de texto que envía nuestro teléfono, con la ventaja evidente de hacerlo desde el teclado de un ordenador, lo que siempre es mucho más cómodo que tener que hacerlo desde el pequeño teclado de nuestro móvil. No obstante, no pienses que todo es perfecto, ya que encontramos aquí el primer problema (si podemos calificarlo así), ya que SnapPea se toma su tiempo para enviar el sms, que como hemos comprobado tarda más que el par de segundos que suele hacerlo desde un teléfono.

Las fotografías las podemos visualizar una por una o como una presentación de diapositivas, pero con la peculiaridad de que la aplicación sólo te mostrará las fotografías que hayas tomado con tu smartphone o aquéllas que te hayan enviado a través de mensajes de texto.

Vamos a ir a lo que más nos interesa aquí, que es la función de importar música en nuestro dispositivo móvil desde nuestro ordenador. Podemos pasar toda nuestra biblioteca del ordenador al móvil a través de esa conexión wifi. Pero para transferir nuestra música de iTunes al móvil vamos a tener que conectar ambos equipos con un cable USB, ya que no lo puede hacer vía inalámbrica.

Vamos ahora a la zona de descargas. En ella vamos a poder manejar las descargas desde diversas fuentes. Veremos que, por supuesto, tenemos ahí el enlace a la Google Play Store, pero podemos también bajar contenido desde Pinterest o YouTube.

 

Con esta aplicación vamos a poder manejar con extrema facilidad todo el contenido de nuestro dispositivo Android. El programa para hacerlo es de lo más sencillo, y con él dispondremos de un centro desde el que manejar todo lo referente a los contenidos de nuestro teléfono.

Podremos encontrar otras aplicaciones con las que podamos transferir contenidos entre ambos equipos, pero SnapPea nos parece una de las mejores opciones para ello.Lo cierto es que si andamos buscando una aplicación con la que podamos pasar de manera inalámbrica archivos y contenidos entre nuestro ordenador y el teléfono, ésta es una muy buena opción.

Mas    información  en http://www.snappea.com/

Nuevo proyector para el parabrisas


Navdy   por unos 299$     nos propone  una solución bastante futurista  para nuestro   vehículo : un avanzado Headup Display (HUD) que transmite la señal de su smartphone  permitiendo al conductor acceder a aplicaciones de su teléfono inteligente, manteniendo sus ojos en la carretera. Navdy combina una pantalla de proyección de alta calidad con controles de voz y gestos para crear una experiencia de conducción más segura, altamente intuitivo. Combinando la tecnología de visualización avanzada con controles sin contacto significa que los conductores ya no necesitan de andar a tientas con su teléfono para navegar, comunicarse o controlar su música.Este proyecto se supone vera a la luz comercial  a principios  de 2015 entendemos a  un precio probablemente inferior  al previsto.

 

Navdy es la primera plataforma del mundo que ofrece:

1. Avanzada tecnología de visualización: Proyecta una imagen transparente brillante directamente dentro de su campo de visión que parece flotar seis metros delante de su parabrisas, lo que le permite mantener sus ojos en la carretera, mientras que ver simultáneamente las instrucciones de navegación o las llamadas telefónicas entrantes. El dispositivo viene con regulación y estabilización controles avanzados, para optimizar la usabilidad en cualquier condición de conducción.

2. Cartailored Interfaz: Cuando sus aplicaciones de teléfonos inteligentes aparecen en Navdy que se simplifican a propósito para mostrar sólo lo que necesita, cuando lo necesite, y minimizar las distracciones. Su navegación no desaparecerá cuando entra una llamada; Navdy mostrará ambas notificaciones y navegación al mismo tiempo en una pantalla dividida. Los elementos visuales tales como complejidad de la imagen, la colocación o el tamaño de fuente, son coherentes en aplicaciones para hacer que la experiencia de usuario agradable y predecible.

3. Los controles de voz y gesto: Usted nunca tendrá que apartar la vista de la carretera para utilizar Navdy. Menús Navdy simplificados de su aplicación se puede navegar con gestos de la mano intuitivos. El reconocimiento de voz capta comandos más complejos y las respuestas de mensajes de texto. Sensores de cancelación de ruido y gesto de gran angular de Navdy están específicamente diseñados para crear una experiencia de conducción óptica.

4. Obras en cualquier coche: Los montajes de dispositivos en un pie flexible que se adapta a prácticamente cualquier salpicadero de un coche, y se alimenta mediante la conexión de la computadora de a bordo (OBD II puerto), disponible en todos los coches producidos desde 1996. Esto hace que el único requiere cable de menos intrusivo, al tiempo que proporciona información sobre el estado del coche al procesador Navdy.

5. Con todas las aplicaciones que necesita: Navdy trabaja con aplicaciones de navegación populares, como Google Maps para mostrar turnbyturn direcciones; controla sus aplicaciones de música como Spotify, Pandora, o Google Music; se lee o muestra notificaciones de mensajes de texto o aplicaciones de medios sociales, totalmente controlados por la configuración de control parental; y muestra alertas de automóviles como TrueSpeed, milestoempty o batteryvoltage de su acceso a la computadora del auto.

6. Portátil y compatible: Navdy Funciona con iPhone (iOS 7+) y Android (4.3+) teléfonos inteligentes, y se puede mover fácilmente a otro coche u otro smartphone. Una vez que un Navdy se ha emparejado a través de Bluetooth por primera vez, puede compartir los datos con su teléfono a través de WiFi. Navdy no requiere su propio servicio de suscripción de datos. Colocación panel del dispositivo inicial tiene 6090 segundos. Ligeramente más largo si usted lee las instrucciones.

 

 

POr tanto Navdy amplía las aplicaciones que ya tiene en su teléfono. No hay planes de servicio requeridos, permitiendo  gestos (nada podría ser más natural:pase a la izquierda para contestar una llamada, o derecho de despedir a una notificación extemporánea no haciendo falta buscar a tientas con las perillas, botones o pantallas táctiles, usando el reconocimiento de voz (pregunte Navdy a «componer nuevo tweet», «escribir nuevo texto» o «llamar a mamá» utilizando los comandos de voz que ya está familiarizado con – Google! O Siri) con las notificaciones que necesita (cualquier notificación en su teléfono:texto, social, etc se puede visualizar, leer en voz alta o deshabilitar por completo, decidiendo  lo que quiere que aparezca cuando,!incluso hay controles de los padres a mantener a los adolescentes a salvo!)  siendo  visible en el sol (cuarenta veces más brillante que un teléfono iPhone o Android) y con la ventaja de que la NAVEGACIÓN NO desaparecerá cuando entra una llamada

 

 

Disponibilidad y precios:

Navdy está disponible para la preventa por 30 días al precio de lanzamiento de $ 299, con un 40% de descuento de su precio de venta proyectada de $ 499. Los primeros en adoptar pueden obtener un reembolso del 10% de $ 30 por cada amigo que se refieren a comprar el producto con 10 referencias, su Navdy es gratis! Navdy está ejecutando una campaña de preventa de 30 días en navdy.com para medir la demanda del consumidor y obtener retroalimentación de los primeros adoptantes. Los partidarios tendrán acceso temprano al dispositivo Navdy para que puedan dar su opinión y ayudar a guiar el proceso de desarrollo de aplicaciones como las rampas de empresas en marcha con un comunicado más amplio.

 

 

pantalla

  1. 5.1″ wide transparent Head-Up Display (HUD)
  2. High quality projector
  3. IR camera for touchless gesture control
  4. Accelerometer, e-compass, ambient light sensor
  5. WiFi (802.11 b/g/n), Bluetooth 4.0/LE
  6. Audio out via Bluetooth or 3.5mm minijack,
    mini-USB port
  7. Internal speaker and microphone with
    noise canceling DSP
  8. Dual core processor running Android 4.4
  9. OBD-II power and data connection to car
    computer, with optional 12 volt power adapter
  10. Portable, bendable, non-marking, powered friction
    mount, with magnetic connection to the device
  11. Dimensions (excluding mount): width: 130mm,
    depth: 140mm, height: 95mm (including display)

* Final specs subject to change – See more at: https://www.navdy.com/?utm_source=AdWords&utm_medium=CPC#sthash.Hfz4lpNE.dpuf

 

 

 

 

Mas información    aqui

Publica tu libro 3. Maqueta tu libro en Word con los datos de la plantilla de CreateSpace


Consejos para formatear su libro para su publicación en edición impresa bajo demanda del programa CreateSpace de Amazon

Esta es la segunda parte de un total de dos partes que cubren la preparación de su libro para la publicación en dicha plataforma

Lectura Alternativa. El blog de Felipe Santa-Cruz

Antes de empezar el tutorial, si no sabes qué es CreateSpace o tienes alguna duda sobre los primeros pasos a dar a la hora de empezar a trabajar con una plataforma de autoedición, te recomiendo que le eches un vistazo al post anterior: Publica tu libro 2. ¿Qué es CreateSpace? Primeros pasos. Igualmente, si aún no has decidido en qué plataforma publicar, visita Publica tu libro 1. ¿CreateSpace o Bubok?

1. Las plantillas de CreateSpace. ¿Cómo trabajar con ellas?

Una vez estemos dados de alta en CreateSpace y hayamos introducido los datos de nuestro libro para obtener el ISBN, tenemos que empezar a maquetar.

Voy a ir incrustando unos vídeo-tutoriales que he ido creando para apoyar al escrito. Os recomiendo que veáis primero cada vídeo y, si algo no os queda claro, acudáis al texto para solventarlo. De todas formas, el tutorial se puede seguir perfectamente sólo con el…

Ver la entrada original 2.473 palabras más

Publica tu libro 2: ¿Qué es CreateSpace? Primeros pasos


Consejos para formatear su libro para su publicación en edición impresa bajo demanda del programa CreateSpace de Amazon
Esta es la parte primera del total de dos artículos

Lectura Alternativa. El blog de Felipe Santa-Cruz

Muy buenas. En este tutorial vamos a tratar los siguientes temas:

  1. ¿Qué es CreateSpace?
  2. Dándonos de alta en CreateSpace y rellenando formularios.
  3. Añadiendo el primer libro.

Antes de empezar, si aún has decidido una plataforma con que publicar tu libro, te recomiendo que leas el post anterior: Publica tu libro: ¿CreateSpace o Bubok?

Ver la entrada original 560 palabras más