Comunicación USB y Servidor

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Comunicación USB y Servidor"

Transcripción

1 Comunicación USB y Servidor Índice A. Comunicación USB. A.1. Introducción. A.2. Investigaciones iniciales. A.3. Investigación del teléfono como Host. A.3.1. La parte de Android. A.3.2. La parte de Arduino. A.3.3. Resultados. A.4. Investigación de la Placa Arduino como Host. A.4.1. La parte de Android. A.4.2. La parte de Arduino. A.4.3. Resultados. B. Servidor. B.1. El programa. C. Conclusiones. D. Descargas. A. Comunicación USB. A.1. Introducción. En esta parte veremos como van a comunicarse la placa Arduino DUE y nuestro teléfono. La idea principal es que la placa Arduino será la encargada de capturar todos los datos necesarios para el análisis de la telemetría de una moto de carreras, los datos serán enviados al teléfono cada 100 ms, que estará escuchando el puerto USB y se encargará de filtrar los datos y mostrarlos. Los datos serán enviados a un servidor cuando estén preparados ya sea cada vez que se detecte el paso por meta o cuando acabe el entrenamiento. A.2. Investigaciones iniciales. Los requerimientos iniciales para esta parte del proyecto : Francisco Aguilar Segura 02/07/14 2ºDAM

2 titulo Encontrar un sistema de comunicación por USB que permita el envío unidireccional,desde la placa al teléfono,a una velocidad de refresco de 100ms. El teléfono hará de Host,beneficiándonos de la capacidad de alimentación de este, para no tener que proporcionar alimentación externa a la placa. Lo primero que hemos de determinar,son los roles que ha de asumir cada una de las partes,así encontramos dos posibles configuraciones : Arduino como host o teléfono como host. En los dos casos,se necesita un cable OTG para habilitar el Host. Veamos los dos roles que estudiaremos a continuación: En la configuración teléfono como Host, el teléfono establece la comunicación y la placa es alimentada a través del puerto USB. La alimentación (5Vcc) la proporciona el teléfono,por lo que dependemos totalmente de la batería de este para funcionar. En la configuración Arduino como Host, es la placa la que establece la comunicación y el teléfono obtiene los end-points necesarios para comunicarse. La alimentación la proporciona la placa pasando la tensión de (5-9 Vcc) desde el alimentador a través del USB,permitiendo la carga del teléfono. Este supuesto no cumple todos los requerimientos previos pero se contempla como posibilidad. A partir de estas premisas se investigan las diferentes opciones implementadas en Arduino y Android,dando como mejor resultado los dos que se presentan a continuación. Desde luego no son los únicos pero,si son los que se han encontrado mas fiables y maduros para su uso. A.3. Investigación del teléfono como Host. Fig1: Teléfono como Host Esta fue la primera opción que se eligió,por simplicidad en el sistema de alimentación y por evitar posibles interferencias parásitas si se conectase la alimentación a la moto. Rápidamente se encontraron los primeros problemas. Esta configuración obliga a utilizar comunicación serie virtualizada a través del puerto USB,debido sobretodo a que no existen librerías para el Arduino DUE para trabajar como cliente USB. Las únicas librerías disponibles son las de Host USB,por lo tanto se opta por usar el puerto de programación para obtener la comunicación,como podemos observar el la Fig 1. 2

3 El siguiente problema es que El sistema operativo Android no tiene librerías para el puerto serie,pero al tener una comunidad de desarrolladores tan grande detrás,rápidamente se encuentran varias clases que realizan esta función. Existía la posibilidad de desarrollar el driver serie desde cero,pero por agilidad en el proyecto se optó por hacer algunas modificaciones menores en el driver para que reconociese la placa Arduino. La librería elegida es UsbSerialLibrary y tiene licencia GNU,por lo que podemos usarla en el proyecto,respetando las normas de la licencia. Está dividida en dos paquetes,uno contiene el driver y otro las utilidades necesarias para usarlo. La modificación necesaria para que reconozca el Ardunino,consiste en incluir en el driver,en la clase UsbId.java,los datos del idproduct e IdVendor del integrado que gestiona el usb del Arduino,una búsqueda por internet arroja que es : idvendor: 0x2341 idproduct: 0x003D Como el idvendor de Arduino ya esta puesto sólo se debe Incluir el idproduct del Arduino DUE de dentro la seccion de declaraciones de la clase de UsbId,que debe quedar de la siguiente manera: public static final int ARDUINO_DUE = 0x003D; A.3.1. La parte de Android. Para gestionar los datos recibidos por el usbserie hacemos una activity,que no contendrá el método OnCreate,por lo que es como si se ejecutase en segundo plano y que sera creada en el momento que se haya lanzado el hilo de control del USB y se le pasará como parámetro el driver serie creado. //***************************USBSERIE****En MainActivity************ /** * Paco Aguilar, Aguilax1@gmail.com **/ protected void onresume() { super.onresume(); refreshdevicelist(); /** Simple contenedor para UsbDevice y su driver. */ public static class DeviceEn public UsbDevice getdevice() { return device; public void setdevice(usbdevice device) { this.device = device; public UsbSerialDriver getdriver() { return driver; public void setdriver(usbserialdriver driver) { 3

4 titulo this.driver = driver; public UsbDevice device; public UsbSerialDriver driver; DeviceEntry(UsbDevice device, UsbSerialDriver driver) { this.device = device; this.driver = driver; private void refreshdevicelist() { new AsyncTask<Void, Void, List<DeviceEntry>>() { protected List<DeviceEntry> doinbackground(void... params) { Log.d(TAG, "Refreshing device list..."); SystemClock.sleep(1000); final List<DeviceEntry> result = new ArrayList<DeviceEntry>(); for (final UsbDevice device : myusbmanager.getdevicelist().values()) { final List<UsbSerialDriver> drivers = UsbSerialProber.probeSingleDevice(myUsbManager, device); Log.d(TAG, "Found usb device: " + device); if (drivers.isempty()) { Log.d(TAG, " - No UsbSerialDriver available."); result.add(new DeviceEntry(device, null)); else { for (UsbSerialDriver driver : drivers) { Log.d(TAG, " + " + driver); result.add(new DeviceEntry(device, driver)); return result; protected void onpostexecute(list<deviceentry> result) { if(result!=null){ DispEntrada = result.get(0); sdriver= DispEntrada.getDriver(); Log.d(TAG, "Resumed, sdriver=" + sdriver); if (sdriver == null) { else { sdriver.open(); sdriver.setparameters(115200, 8, UsbSerialDriver.STOPBITS_1, UsbSerialDriver.PARITY_NONE); catch (IOException e) { Log.e(TAG, "Error setting up device: " + e.getmessage(), e); sdriver.close(); catch (IOException e2) { 4

5 sdriver = null; return; ControlUSB mycontrolusb=new ControlUSB(sDriver); mycontrolusb.ondevicestatechange();.execute((void) null); MainActivity.java Una vez creado el objeto mycontrolusb,vemos que se llama al método ondevicestatechange,que forma parte de la clase que hemos creado llamada ControlUSB que como vemos se ocupa de crear los manejadores de los buffers de entrada y salida y le asigna un listener que implementa los métodos necesarios para recibir los datos. Como podemos ver el método sobre escrito onnewdata se encarga de avisar que ha llegado un nuevo dato y arranca un hilo que se comunica con el hilo principal a traves de RunOnUiThread() para manejar los datos y poder mostrarlos en la pantalla. // CLASE ControlUSB.java /** * Paco Aguilar, Aguilax1@gmail.com **/ //activity sin oncreate public class ControlUSB extends Activity { private final String TAG = ControlUSB.class.getSimpleName(); private static UsbSerialDriver sdriver = null; private final ExecutorService mexecutor ; private SerialInputOutputManager mserialiomanager; int cont=0; private SerialInputOutputManager.Listener mlistener = new SerialInputOutputManager.Listener() { public void onrunerror(exception e) { Log.d(TAG, "Runner stopped."); public void onnewdata(final byte[] data) { ControlUSB.this.runOnUiThread(new Runnable() { public void run() { updatereceiveddata(data);//cuando se recibe un dato lo tratamos 5

6 titulo ; ); public ControlUSB( UsbSerialDriver sdriver){ mexecutor = Executors.newSingleThreadExecutor(); this.sdriver=sdriver; private void stopiomanager() { if (mserialiomanager!= null) { Log.i(TAG, "Parando io manager.."); mserialiomanager.stop(); mserialiomanager = null; private void startiomanager() { if (sdriver!= null) { Log.i(TAG, "Comenzando io manager.."); mserialiomanager = new SerialInputOutputManager(sDriver, mlistener); mexecutor.submit(mserialiomanager); public void ondevicestatechange() { stopiomanager(); startiomanager(); public void updatereceiveddata(byte[] data) { String message= HexDump.dumpHexString(data) ; MainActivity.textRxUSB.setText( message);// Muestra los datos en el hilo ppal MainActivity.insertaDatos(cont, message);// Guardo los datos en la base de datos cont++; // solo para incluir un registro de control de entrada de datos ControlUsb.java A.3.2. La parte de Arduino. Por su parte en la placa Arduino DUE,evidentemente harba que hacer un programa que gestione los datos enviados. El ejemplo que vemos a continuación es un simple programa de test del sistema,lo único que hace es contar y enviar datos por el puerto de depuración(el mismo que de programación) usando para ello el método print(). * Copyright 2012 Google Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public 6

7 * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA , * USA. * * Project home page: // Sample Arduino sketch for use with usb-serial-for-android. // Prints an ever-increasing counter, and writes back anything it receives. #include <avr/wdt.h> static int counter = 0; void setup() { wdt_disable(); Serial.begin(115200); void loop() { // Serial.print("Tick #",BYTE); Serial.print(counter++,DEC); Serial.print("\n"); delay(200); A.3.3. Resultados. Los resultado obtenidos finalmente,no son todo lo buenos que se esperaban. Se observa en el teléfono que existe comunicación y que se realiza un conteo enviado por la placa Arduino. Por desgracia el flujo de datos no es constante y se pierden algunos datos. Esto también ocurre en el ejemplo original proporcionado con la clase que gestiona el driver. Se prueba en la placa Arduino Atmega,Arduino DUE,con diferentes teléfonos(nexus 5,Moto G,Sony Experia,Samsung galaxy 3),con diferentes combinaciones Placa-teléfono y en todas ellas se reproduce el problema. Por todo ello se decide cambiar el rumbo de la investigación e intentar hacer funcionar el otro rol posible (Placa como Host) aunque esto,implica un cambio en las definiciones iniciales del proyecto en cuanto a la alimentación del conjunto,que debía ser proporcionada por el teléfono. A.4. Investigación de la Placa Arduino como Host. 7

8 titulo Fig. 2: Arduino como Host Ahora se encuentra que la situación ha cambiado radicalmente.al utilizar la placa como host,es posible usar las librerías nativas de ArduinoDUE que incluyen la librería ADK para google ADK. Google ADK (Accessory Developement Kit) esta formado por una serie de protocolos y librerías que habilitan a cualquier teléfono con Android 3.1 o superior (2.3.4 si se usa Add-On-Library) a funcionar como cliente USB,facilitando la conexión y control de aparatos externos que posean host USB. Especialmente,está indicado para esta serie de procesadores en particular (ARM 32-bit Cortex M3 ). La placa Arduino DUE está fabricada alrededor de un ARM SAM3X8E (Cortex M3),que posee un USB Host implementado de manera nativa,por lo que nos habilita a usar la tecnología ADK. Que sea compatible con ADK, no se especifican en la web de Arduino,ya que tienen un producto especifico llamado Arduino Mega ADK,pero a pesar de esto,buscando en internet aparecen referencias a que funciona con el ADK de Google, así que se decide continuar con esta linea de investigación. Evidentemente y como podemos observar en la Fig.2 existen algunas diferencias de conexión respecto a la configuración anterior. Podemos ver que el cable OTG ahora esta conectado al puerto nativo USB y no al de programación. Al no ser alimentado por el teléfono (porque ya no es Host) tendremos que alimentar el conjunto placa-teléfono a través del conector de alimentación que posee la placa.según características de la placa la alimentación puede estar de 6 a 20 Vcc pero el rango mas adecuado para nosotros seria entre 5 y 9 Vcc,para poder usar una batería extra que sería la que proporcionase la alimentación. La corriente máxima que puede suministrar la placa es de 800 ma,aunque el USB esta limitado a 500 ma. A.4.1. La parte de Android. Para empezar veremos el Manifest.xml del programa necesario. Se declaran los permisos necesarios y los intents filters que se ocuparan de detectar que se ha conectado o desconectado un accesorio (la placa ). Si queremos usar dispositivos con versiones de android 3.1 o superior debemos usar com.android.future.usb.accessory <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=" package="com.example.screenmotostudent" 8

9 android:versioncode="1" android:versionname="1.0" > <uses-sdk android:minsdkversion="15" android:targetsdkversion="19" /> <uses-feature android:name="android.hardware.usb.accessory"/> <uses-permission android:name="android.permission.read_external_storage" /> <uses-permission android:name="android.permission.internet" /> <application android:allowbackup="true" > <uses-library android:name="com.android.future.usb.accessory"/> <activity android:name="com.example.screenmotostudent.mainactivity" android:screenorientation="landscape" > </activity> </application> </manifest> <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> <intent-filter> <action android:name="android.hardware.usb.action.usb_accessory_attached" /> </intent-filter> <meta-data android:name="android.hardware.usb.action.usb_accessory_attached" Manifest.xml Para poder detectar la placa,cuando el dispositivo es conectado se recurre al archivo device_filter.xml que se ha de crear dentro de la carpeta res/xml/.si la carpeta no existe habrá que crearla. Si observamos este archivo y la parte de Arduino donde se define el ADK,veremos que coinciden. Esto es muy importante para que el teléfono acepte la conexión de la placa e identifique automáticamente el programa necesario para ejecutarse. <?xml version="1.0" encoding="utf-8"?> <resources> <usb-accessory manufacturer="arduino-er" model="screenmotostudent" version="0.1"/> 9

10 titulo </resources> res/xml/ device_filter.xml En el archivo de la activity principal (Mainactivity.java) se ve que hay que declarar el UsbManager y los filtros necesarios dentro del metodo oncreate. Después se deben tener en cuenta todas las situaciones posibles dentro del ciclo de vida de la activity que contiene el ADK.Una vez detectado el accesorio ya podemos establecer una comunicación, para lo que lanzamos un hilo que se ocupará de ello. Dentro de éste hilo habrá otro hilo especifico que sirve para mostrar los datos en el hilo principal (runonuithread()). Con el metodo insertardatos guardamos los datos recibidos en una base de datos SQLITE,para su posterior envío a través de wifi a un ordenador que hará las veces de servidor. /** * Paco Aguilar, Aguilax1@gmail.com **/ // PARTE-USB---en oncreate myusbmanager = (UsbManager) getsystemservice(context.usb_service); IntentFilter intentfilter = new IntentFilter(); intentfilter.addaction(usbmanager.action_usb_accessory_detached); registerreceiver(myusbreceiver, intentfilter); // FIN USB-en oncreate //****************************************************************************************** ** // USB // //****************************************************************************************** ** protected void onresume() { super.onresume(); if(myfileinputstream == null myfileoutputstream == null){ UsbAccessory[] usbaccessorylist = myusbmanager.getaccessorylist(); UsbAccessory usbaccessory = null; if(usbaccessorylist!= null){ usbaccessory = usbaccessorylist[0]; OpenUsbAccessory(usbAccessory); private void OpenUsbAccessory(UsbAccessory acc){ myparcelfiledescriptor = myusbmanager.openaccessory(acc); if(myparcelfiledescriptor!= null){ myusbaccessory = acc; 10

11 FileDescriptor filedescriptor = myparcelfiledescriptor.getfiledescriptor(); myfileinputstream = new FileInputStream(fileDescriptor); myfileoutputstream = new FileOutputStream(fileDescriptor); Thread thread = new Thread(myRunnable); thread.start(); Runnable myrunnable = new Runnable(){ public void run() { int numberofbyteread = 0; byte[] buffer = new byte[255]; while(numberofbyteread >= 0){ buffer.length); numberofbyteread = myfileinputstream.read(buffer, 0, final StringBuilder stringbuilder = new StringBuilder(); for(int i=0; i<numberofbyteread; i++){ stringbuilder.append((char)buffer[i]); String lineadatos = stringbuilder.tostring(); String delims = "[,]"; String[] tokens = lineadatos.split(delims); runonuithread(new Runnable(){ stringbuilder.tostring()); public void run() { textrxusb.settext(stringbuilder.tostring()); MainActivity.insertaDatos(cont, ); cont++; catch (IOException e) { // TODO Auto-generated catch block e.printstacktrace(); break; ; private void closeusbaccessory(){ if(myparcelfiledescriptor!= null){ 11

12 titulo myparcelfiledescriptor.close(); catch (IOException e) { // TODO Auto-generated catch block e.printstacktrace(); myparcelfiledescriptor = null; myusbaccessory = null; protected void onpause() { super.onpause(); closeusbaccessory(); protected void ondestroy() { super.ondestroy(); unregisterreceiver(myusbreceiver); private BroadcastReceiver myusbreceiver = new BroadcastReceiver(){ public void onreceive(context context, Intent intent) { String action = intent.getaction(); if(action.equals(usbmanager.action_usb_accessory_detached)){ Toast.makeText(MainActivity.this, "onreceive: ACTION_USB_ACCESSORY_DETACHED", Toast.LENGTH_LONG).show(); ; //UsbAccessory usbaccessory = UsbManager.getAccessory(intent); UsbAccessory usbaccessory = (UsbAccessory) intent.getparcelableextra(usbmanager.extra_accessory); if(usbaccessory!=null && usbaccessory.equals(myusbaccessory)){ closeusbaccessory(); A.4.2. La parte de Arduino. Como podemos ver,en la parte de Arduino,se incluye la librería adk.h que será la encargada de detectar que se ha conectado el teléfono y de establecer la comunicación a través del protocolo 12

13 establecido por ADK. Esto es totalmente transparente para nosotros,y solo hay que enviar los datos hacia el teléfono de manera que coincidan exactamente con los que se han puesto en el programa Android. De esta manera se establece la comunicación entre los dos dispositivos. /** * Este programa envia cada 100ms una linea de texto con los sensores mas un contador de prueba Paco Aguilar, Aguilax1@gmail.com **/ #include "variant.h" #include <stdio.h> #include <adk.h> // Accessory descriptor. Como arduino se identifica con el telefono. char applicationname[] = "ScreenMotoStudent"; // la aplicación que lo va a usar char accessoryname[] = "Arduino Due"; //el nombre de la placa char companyname[] = "Arduino-er"; // Configuraciones del accesrorio,debe coincidir en el programa Android los mismos datos char versionnumber[] = "0.1"; char serialnumber[] = "1"; char url[] = ;//esto no funciona actualmente,habría que alojar la apk en un servidor y poner aquí la url USBHost Usb; ADK adk(&usb, companyname, applicationname, accessoryname,versionnumber,url,serialnumber); char contenedormensaje[100]; int cont=0; String str; String msg1="id,sen1,sen2,sen3,sen4,sen5,# Este texto esta repitiendose a 100 ms: "; void setup() { Serial.begin(115200); cpu_irq_enable(); #define RCVSIZE 128 //uint8_t buf[rcvsize]; void loop() { uint8_t buf[rcvsize]; uint32_t nbread = 0; Usb.Task(); escribe(msg1);// llamada a escritura (cont++);// esto sobraria en el scketch final,es solo para pruebas delay(100); /* 13

14 titulo * escribe por el puerto USB hacia el telefono android *Datos debe ser un string que contendrá todos los datos de los sensores *delimitados por comas "," y finalizando con "#" (poe ejemplo) */ void escribe(string datos){ if (adk.isready()){ str= msg1+ String(cont);//String(cont) sobraria en el sketch final str.tochararray(contenedormensaje,100);//convertimos el string recibido en un array e chars y lo metemos en el contenedor adk.write(strlen(contenedormensaje),(uint8_t *)contenedormensaje); A.4.3. Resultados. Los resultados fueron perfectos,el teléfono recibía y mostraba los datos con fluidez a una velocidad de 100ms. Se prueba en diferentes teléfonos y se observa que el Nexus 4 y 5 no es capaz de ejecutar el programa,pero en Moto G,Samsung Galaxy 3,Sony experia,funciona correctamente. Cabe destacar que los Nexus tenían instalados la ultima versión de Android(4.4.3),que salio apenas una semana antes,por lo que el problema podría ser de la versión de Android,aunque mirando en foros se vio que los Nexus experimentaban algún tipo de problema genérico con el USB que no lo hace del todo compatible. B. Servidor. Uno de los requerimientos del sistema,es que debe ser capaz de enviar los datos recibidos por el teléfono a un servidor para su posterior tratamiento. Después de diferentes configuraciones iniciales,se decide por parte del equipo,dejar el envío de datos sólo por wifi. Así que el teléfono será capaz de enviar todos los datos recibidos por USB a través de wifi,para ello necesitaremos usar un router para poder acceder al ordenador que reciba los datos que estará continuamente ejecutando un programa hecho en java que escuchará continuamente un puerto determinado. El envío podrá realizarse por vuelta o al final del entrenamiento. Lo que hacemos en el teléfono es solicitar conexión a ese puerto por medio de sockets.en estos momentos no existe ningún tipo de seguridad implementada,por lo que los datos no estarán protegidos. Por rapidez en el proyecto,no se ha dotado al programa Android de la parte necesaria para la configuración de la ip del servidor,por lo que por ahora la ip se asigna de modo programático y el programa deberá ser recompilado para una nueva ip si fuera necesario o cambiarle la ip en la parte del router. El cambio ha de hacerse en la clase SocketEnvio.java del programa Android de ScreenMotoStudent.. En la Fig 3 podemos ver el aspecto del servidor que ha de correr en el ordenador que reciba los datos para su posterior tratamiento. La ip que observamos( ) es la del teléfono que se ha conectado a la ip del ordenador( ). 14

15 Nota:Hay que recordar que para que se pueda conectar el teléfono al ordenador,en el router debemos de activar el reenvío de puertos hacia la ip del ordenador en el puerto adecuado(5678). B.1. El programa. Ilustración 3: El servidor corriendo en un ordenador Se usa Jframe para dotar al programa de una GUI,aunque no es estrictamente necesario para su funcionamiento,se ha optado por esta opción,para que los usuarios tengan constancia de la recepción de los archivos. Lo primero que se hace,después de crear la ventana,es crear el directorio (si no existe) que contendrá el archivo de datos recibido. El programa arranca un hilo que abre un socket en el ordenador,haciendo que esté continuamente escuchando un puerto(5678),al cual nos podremos conectar para hacer el envío del archivo. /** * Paco Aguilar, Aguilax1@gmail.com **/ public class Fileserver extends JFrame { Hilos hilos; public static final String DIRECTORIO_BD="BaseDatosMotodTudent"; static File dir1 = new File(".");//Ruta en la misma carpeta de las instalacion static File dir=new File(dir1+File.separator+DIRECTORIO_BD); public static final String RUTA=dir+"\\DatosMotoStudent.txt"; //ruta que usara el hilo static final int puerto=5678; 15

16 titulo static JTextArea textarea = new JTextArea(); private JPanel contentpane; /** * Launch the application. */ public static void main(string[] args) { EventQueue.invokeLater(new Runnable() { public void run() { Fileserver frame = new Fileserver(); frame.setvisible(true); catch (Exception e) { e.printstacktrace(); ); /** * Create the frame. */ public Fileserver() { settitle("servidor de recepci\u00f3n de datos de MotoStudent"); setdefaultcloseoperation(jframe.exit_on_close); setbounds(750, 300, 450,500); contentpane = new JPanel(); contentpane.setborder(new EmptyBorder(5, 5, 5, 5)); contentpane.setlayout(new BorderLayout(0, 0)); setcontentpane(contentpane); JScrollPane scrollpane = new JScrollPane(); scrollpane.setinheritspopupmenu(true); scrollpane.setautoscrolls(true); scrollpane.sethorizontalscrollbarpolicy(scrollpaneconstants.horizontal_scrollbar_never); scrollpane.settooltiptext("aqui veremos..."); contentpane.add(scrollpane, BorderLayout.CENTER); textarea.setwrapstyleword(true); textarea.settooltiptext("aqu\u00ed se puede ver si la recepcion del archivo ha sido correcta."); textarea.seteditable(false); textarea.setforeground(color.green); textarea.setfont(new Font("Consolas", Font.PLAIN, 13)); textarea.setbackground(color.black); scrollpane.setviewportview(textarea); //Creacion de Directorios if(dir.exists()) { //textarea.settext("ya exite el directorio!!"+"\n"); 16

17 creado!!"+"\n"); else{ dir.mkdir(); textarea.settext("no existia el directorio, Pero ha sido Hilos h1 = new Hilos(puerto,RUTA); Thread esperaarchivo = new Thread(h1); esperaarchivo.start(); Este es el hilo creado,contenido en la clase Hilos.java,que se ocupará de todo lo relativo al socket y a la representación de la información para el usuario. /** * El programa es un sevidor que esta continuamente escuchando el puerto 5678 Paco Aguilar, Aguilax1@gmail.com **/ public class Hilos implements Runnable { private static ServerSocket serversocket; private static Socket clientsocket; private static InputStream inputstream; private static FileOutputStream fileoutputstream; private static BufferedOutputStream bufferedoutputstream; private static int filesize = ; // Tamaño maxio del archivo private static int bytesread; private static int current = 0; static int counter = 0; static int counter2=0; static final int UPDATE_INTERVAL = 1;//Actualizacion de 1 ms private String ruta; static Timer timer; private int puerto; public Hilos(int puerto,string ruta){ this.puerto=puerto; this.ruta=ruta; public void run() { 17

18 titulo serversocket = new ServerSocket(puerto); catch (IOException e) { e.printstacktrace(); //Server socket do { timer = new Timer(); counter = 0; Fileserver.textArea.setText(Fileserver.textArea.getText()+ "Escuchando el puerto:"+puerto+"\n"); clientsocket = serversocket.accept();// esperamos la conexión del cliente //Fileserver.textArea.setText(""); Fileserver.textArea.setText(Fileserver.textArea.getText() +"\n"); Fileserver.textArea.setText(Fileserver.textArea.getText()+"linea: "+counter2+" "+"\n") ; Fileserver.textArea.setText(Fileserver.textArea.getText()+"\n"); Fileserver.textArea.setText(Fileserver.textArea.getText() +"Conectado con:" +clientsocket.getinetaddress()+"\n"); catch (IOException e) { e.printstacktrace(); HacerCadaMiliseg(); inputstream = clientsocket.getinputstream(); catch (IOException e) { e.printstacktrace(); File file =new File(ruta); fileoutputstream = new FileOutputStream(file); catch (FileNotFoundException e) { e.printstacktrace(); bufferedoutputstream = new BufferedOutputStream(fileOutputStream); byte[] mybytearray = new byte[ filesize]; Fileserver.textArea.setText(Fileserver.textArea.getText() +"Recibiendo..."+"\n"); //following lines read the input slide file byte by byte bytesread = inputstream.read(mybytearray, 0, mybytearray.length); 18

19 catch (IOException e) { e.printstacktrace(); current = bytesread; do { bytesread = inputstream.read(mybytearray, current, (mybytearray.length - current)); catch (IOException e) { e.printstacktrace(); if (bytesread >= 0) { current += bytesread; while (bytesread > -1); bufferedoutputstream.write(mybytearray, 0, current); bufferedoutputstream.flush(); bufferedoutputstream.close(); inputstream.close(); clientsocket.close(); catch (IOException e) { e.printstacktrace(); if (timer!= null) {//si exixte mátalo timer.cancel(); ha ms"+"\n"); while(true); Fileserver.textArea.setText(Fileserver.textArea.getText()+"El sevidor recibido un archivo de :"+current+" Bytes " +"en "+counter+" Fileserver.textArea.setText(Fileserver.textArea.getText()+"Guardado en "+ruta+"\n"); Fileserver.textArea.setText(Fileserver.textArea.getText() +"conexion"+clientsocket.getinetaddress()+"cerrada= "+clientsocket.isclosed()+"\n"); counter2++; /** * Contador de milisegundos pasados,lanza una tarea que se actualiza cada 1 ms */ static void HacerCadaMiliseg() { timer.scheduleatfixedrate(new TimerTask() { 19

20 titulo public void run() { ++counter;, 0, UPDATE_INTERVAL); C. Conclusiones La primera opción,se baraja como posibilidad ya que tiene una tasa de error baja (<5%) y para el volumen de datos manejado podría ser aceptable,dado que cada muestra se obtiene cada 100 ms, supondría una perdida despreciable. La segunda opción, explota totalmente las características nativas del USB, es mucho mas estable, rápido y no produce ningún tipo de error. No obstante obliga a NO usar un Nexus 5, que se había barajado como mejor opción, pudiendo usarse un Motorola G que es una opción funcional y barata. También habrá que proporcionar alimentación al conjunto placa-teléfono. Se pensó en una batería externa de unos 5V /3000 ma de las que se usan para cargar teléfonos móviles. D. Descargas. Los proyectos completos se encuentran Aqui para su descarga. 20

Programación Android. Rafael Morón Abad rafaelmoron@gmail.com

Programación Android. Rafael Morón Abad rafaelmoron@gmail.com Programación Android Rafael Morón Abad rafaelmoron@gmail.com 3. Android 3.4 Recursos y Ficheros 5. Recursos y ficheros Nombre del Proyecto Código fuente Código generado Librerías Activos (recursos especiales)

Más detalles

CREAR UN SERVICIO WEB BASICO CON JAVA AXIS2. Víctor J. Sosa vjsosa@tamps.cinvestav.mx

CREAR UN SERVICIO WEB BASICO CON JAVA AXIS2. Víctor J. Sosa vjsosa@tamps.cinvestav.mx CREAR UN SERVICIO WEB BASICO CON JAVA AXIS2. Víctor J. Sosa vjsosa@tamps.cinvestav.mx En este documento explicaré brevemente cómo construir un servicio web con Java Axis2 y cómo invocarlo desde un cliente

Más detalles

Visor de presupuestos en Android

Visor de presupuestos en Android Visor de presupuestos en Android NEODATA tiene el placer y el orgullo de darle la bienvenida al nuevo Visor de presupuestos, esta herramienta fue diseñada pensando en la necesidad de acceder a presupuestos

Más detalles

GedicoPDA: software de preventa

GedicoPDA: software de preventa GedicoPDA: software de preventa GedicoPDA es un sistema integrado para la toma de pedidos de preventa y gestión de cobros diseñado para trabajar con ruteros de clientes. La aplicación PDA está perfectamente

Más detalles

MANUAL COPIAS DE SEGURIDAD

MANUAL COPIAS DE SEGURIDAD MANUAL COPIAS DE SEGURIDAD Índice de contenido Ventajas del nuevo sistema de copia de seguridad...2 Actualización de la configuración...2 Pantalla de configuración...3 Configuración de las rutas...4 Carpeta

Más detalles

Programación Android. Alejandro Alcalde. elbauldelprogramador.com

Programación Android. Alejandro Alcalde. elbauldelprogramador.com Programación Android Alejandro Alcalde elbauldelprogramador.com Copyright c 2013 Alejandro Alcalde P L A TEX. Programación Android por Alejandro Alcalde se encuentra bajo una Licencia Creative Commons

Más detalles

Generar Temas de Colores y Cambiarlos Dinámicamente en ZK

Generar Temas de Colores y Cambiarlos Dinámicamente en ZK Generar Temas de Colores y Cambiarlos Dinámicamente en ZK Hola, mi nombre es Manuel Martínez y soy de Colombia. Voy a explicarles desde cómo construir temas de colores para las interfaces graficas de ZK

Más detalles

V i s i t a V i r t u a l e n e l H o s p i t a l

V i s i t a V i r t u a l e n e l H o s p i t a l V i s i t a V i r t u a l e n e l H o s p i t a l Manual de Restauración del PC Septiembre 2011 TABLA DE CONTENIDOS SOBRE EL SOFTWARE... 3 CONSIDERACIONES ANTES DE RESTAURAR... 4 PROCEDIMIENTO DE RECUPERACION...

Más detalles

App para realizar consultas al Sistema de Información Estadística de Castilla y León

App para realizar consultas al Sistema de Información Estadística de Castilla y León App para realizar consultas al Sistema de Información Estadística de Castilla y León Jesús M. Rodríguez Rodríguez rodrodje@jcyl.es Dirección General de Presupuestos y Estadística Consejería de Hacienda

Más detalles

Creación de Funciones de Conducción

Creación de Funciones de Conducción Creación de Funciones de Conducción Requerimientos Para el desarrollo de esta actividad se requiere que: Contemos con un robot BoeBot armado con placa Arduino. Repetición En estos momentos habremos notado

Más detalles

CITRIX 4.5 - Citrix Application Streaming

CITRIX 4.5 - Citrix Application Streaming 1 de 39 01/12/2007 1:06 CITRIX 4.5 - Citrix Application Streaming Es la caracteristica principal de la versión 4.5 de Citrix, el Application Streaming, en este documento se explica cómo usarlo. Application

Más detalles

Guía de uso del Cloud Datacenter de acens

Guía de uso del Cloud Datacenter de acens guíasdeuso Guía de uso del Cloud Datacenter de Calle San Rafael, 14 28108 Alcobendas (Madrid) 902 90 10 20 www..com Introducción Un Data Center o centro de datos físico es un espacio utilizado para alojar

Más detalles

WINDOWS 2008 5: TERMINAL SERVER

WINDOWS 2008 5: TERMINAL SERVER WINDOWS 2008 5: TERMINAL SERVER 1.- INTRODUCCION: Terminal Server proporciona una interfaz de usuario gráfica de Windows a equipos remotos a través de conexiones en una red local o a través de Internet.

Más detalles

CODIGO PROYECTO: AppPixelproServicioWeb Proyecto Android - Servicio Web

CODIGO PROYECTO: AppPixelproServicioWeb Proyecto Android - Servicio Web CODIGO PROYECTO: AppPixelproServicioWeb Proyecto Android - Servicio Web I. Alcances del Proyecto a. Ide Eclipse Indigo 3.7 b. Api 10-17, Versión Android 2.3.3 A 4.2.2 c. Jdk 1.6 II. Conceptos Relacionados

Más detalles

Guía de Instalación Proscai

Guía de Instalación Proscai 1 Guía de Instalación Proscai 2-3 Guía de Instalación Proscai En este documento se explica el proceso de instalación de Proscai, así como la procesos para registrar el sistema y configurar su base de datos.

Más detalles

Instalación de FileZilla FTP Server

Instalación de FileZilla FTP Server Instalación de FileZilla FTP Server [Ir a Página principal] El proceso de instalación es muy sencillo, solamente en algunos pasos tendremos que realizar acciones como elegir el tipo de instalación o de

Más detalles

PROGRAMACIÓN CLIENTE-SERVIDOR MEDIANTE SOCKETS EN JAVA

PROGRAMACIÓN CLIENTE-SERVIDOR MEDIANTE SOCKETS EN JAVA PROGRAMACIÓN CLIENTE-SERVIDOR MEDIANTE SOCKETS EN JAVA Qué es la arquitectura cliente servidor? La arquitectura cliente-servidor es un modelo de aplicación distribuida en el que las tareas se reparten

Más detalles

MANUAL DE AYUDA. SAT Móvil (Movilidad del Servicio Técnico)

MANUAL DE AYUDA. SAT Móvil (Movilidad del Servicio Técnico) MANUAL DE AYUDA SAT Móvil (Movilidad del Servicio Técnico) Fecha última revisión: Abril 2015 INDICE DE CONTENIDOS INTRODUCCION SAT Móvil... 3 CONFIGURACIONES PREVIAS EN GOTELGEST.NET... 4 1. INSTALACIÓN

Más detalles

Versión 1.0. BOLETÍN (JUNIO 2009) a2móvil PC. a2 softway C. A.

Versión 1.0. BOLETÍN (JUNIO 2009) a2móvil PC. a2 softway C. A. Versión 1.0 BOLETÍN (JUNIO 2009) a2móvil PC a2 softway C. A. VERSIÓN 1.0 a2móvil PC e-mail a2softway@cantv.net www.a2.com.ve Maracaibo-Venezuela Capítulo 1 a2móvil PC. La aplicación a2móvil le permitirá

Más detalles

UNIVERSIDAD DE SALAMANCA

UNIVERSIDAD DE SALAMANCA UNIVERSIDAD DE SALAMANCA FACULTAD DE CIENCIAS INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Resumen del trabajo práctico realizado para la superación de la asignatura Proyecto Fin de Carrera. TÍTULO SISTEMA

Más detalles

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD Fecha última revisión: Diciembre 2010 Tareas Programadas TAREAS PROGRAMADAS... 3 LAS TAREAS PROGRAMADAS EN GOTELGEST.NET... 4 A) DAR DE ALTA UN USUARIO...

Más detalles

GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C)

GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C) APRENDERAPROGRAMAR.COM GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado I

Más detalles

Manual de Pasos previos a programar un PLC Allen Bradley CompactLogix L32E

Manual de Pasos previos a programar un PLC Allen Bradley CompactLogix L32E Manual de Pasos previos a programar un PLC Allen Bradley CompactLogix L32E El PLC CompactLogix L32E viene de fábrica con IP dinámica. Para poder realizar una comunicación con el RSLogix 5000 tiene que

Más detalles

CONFIGURACION AVANZADA DE OUTLOOK EXPRESS 6

CONFIGURACION AVANZADA DE OUTLOOK EXPRESS 6 CONFIGURACION AVANZADA DE OUTLOOK EXPRESS 6 Carpetas sin conexión Gestión de mensajes enviados Gestión de mensajes eliminados Firma digital Envío de mensajes firmados digitalmente Recepción de mensajes

Más detalles

Uso del Shield Ethernet con Arduino

Uso del Shield Ethernet con Arduino CREATIVIDAD AHORA Uso del Shield Ethernet con Arduino Tutorial Arduino Creatividad Ahora 5/26/2014 Lunes, 26 de mayo de 2014 2 Tutorial del Manejo del Shield Ethernet R3 1. Introducción Hoy en día donde

Más detalles

Ejercicio 18. Configuración de Widgets en Android. Android Con Java. Ejercicio 18. Configuración de Widgets en Android. Curso de Android con Java

Ejercicio 18. Configuración de Widgets en Android. Android Con Java. Ejercicio 18. Configuración de Widgets en Android. Curso de Android con Java Android Con Java Ejercicio 18 Configuración de Widgets en Android Objetivo del Ejercicio El objetivo del ejercicio crear un Widget que antes de utilizarlo nos permita configurarlo. En este caso, solicitar

Más detalles

Manual de software. Dynamic Cloud. 10/2014 MS-Dynamic_Cloud v1.2

Manual de software. Dynamic Cloud. 10/2014 MS-Dynamic_Cloud v1.2 Manual de software Dynamic Cloud 10/2014 MS-Dynamic_Cloud v1.2 ÍNDICE GENERAL 1. INTRODUCCIÓN... 2 1.1 Configuración mínima del PC... 2 2. INSTALAR DYNAMIC CLOUD... 3 2.1 Ejecutar Dynamic Cloud por primera

Más detalles

Introducción a la Firma Electrónica en MIDAS

Introducción a la Firma Electrónica en MIDAS Introducción a la Firma Electrónica en MIDAS Firma Digital Introducción. El Módulo para la Integración de Documentos y Acceso a los Sistemas(MIDAS) emplea la firma digital como método de aseguramiento

Más detalles

Redes de Área Local: Configuración de una VPN en Windows XP

Redes de Área Local: Configuración de una VPN en Windows XP Redes de Área Local: Configuración de una VPN en Windows XP Tatiana Echegoyen Blasco Facultad de Informática UPV - Curso 2005/2006 Índice 1. Qué es una VPN?...2 2. Cómo funciona una VPN?...2 3. Por qué

Más detalles

Manual de usuario de Parda Programa de Almacenamiento y Recuperación de Datos Automático

Manual de usuario de Parda Programa de Almacenamiento y Recuperación de Datos Automático Programa de Almacenamiento y Recuperación de Datos Automático CONSEJERÍA DE EDUCACIÓN Dirección General de Participación e Innovación Educativa Centro de Gestión Avanzado de Centros TIC Fecha: 20/04/10

Más detalles

Unidad Didáctica 12. La publicación

Unidad Didáctica 12. La publicación Unidad Didáctica 12 La publicación Contenido 1. Desarrollar y explotar 2. Definición del Sitio 3. Alojar nuestra primera página Web 4. Configurar la conexión FTP U.D. 12 La publicación 1. Desarrollar y

Más detalles

Configuración de PDAs en ITACTIL.

Configuración de PDAs en ITACTIL. Configuración de PDAs en ITACTIL. La aplicación ITACTIL puede trabajar con terminales de mano (PDAs, tablets o teléfonos Android, Iphone, Ipad, etc.) en sus versiones Profesional y Líder. El funcionamiento

Más detalles

Instalación del Admin CFDI

Instalación del Admin CFDI Instalación del Admin CFDI Importante!!!Antes de comenzar verifique los requerimientos de equipo esto podrá verlo en la guía 517 en nuestro portal www.control2000.com.mx en el apartado de soporte, ahí

Más detalles

CONFIGURACION AVANZADA DE MOZILLA THUNDERBIRD

CONFIGURACION AVANZADA DE MOZILLA THUNDERBIRD CONFIGURACION AVANZADA DE MOZILLA THUNDERBIRD Carpetas sin Conexión... 2 Gestión de mensajes enviados... 3 Gestión de mensajes eliminados... 6 Firma Digital... 8 Envío de mensajes firmados digitalmente...

Más detalles

Sistema de Captura Electrónica

Sistema de Captura Electrónica Sistema de Captura Electrónica Instructivo de Instalación y Configuración de Lote Server a PC Versión del Documento v2.01 INDICE INDICE... 2 Consideraciones generales de las aplicaciones... 4 Especificaciones

Más detalles

Sitios remotos. Configurar un Sitio Remoto

Sitios remotos. Configurar un Sitio Remoto Sitios remotos Definir un sitio remoto significa establecer una configuración de modo que Dreamweaver sea capaz de comunicarse directamente con un servidor en Internet (por eso se llama remoto) y así poder

Más detalles

www.android-spa.com Android Creación de una aplicación sencilla: Forwarding - Página 1 -

www.android-spa.com Android Creación de una aplicación sencilla: Forwarding - Página 1 - Android Creación de una aplicación sencilla: Forwarding - Página 1 - Realización de la aplicación Forwarding en Android Este es un pequeño tutorial con el que se realizará un pequeño programa para Android

Más detalles

TUTORIAL: Cómo puedo instalar el Renault Media Nav Toolbox? TUTORIAL: Cómo puedo crear una "huella digital" del dispositivo en un dispositivo de

TUTORIAL: Cómo puedo instalar el Renault Media Nav Toolbox? TUTORIAL: Cómo puedo crear una huella digital del dispositivo en un dispositivo de TUTORIAL: Cómo puedo instalar el Renault Media Nav Toolbox? TUTORIAL: Cómo puedo crear una "huella digital" del dispositivo en un dispositivo de almacenamiento USB? TUTORIAL: Cómo puedo empezar a utilizar

Más detalles

Crear una Activity en Android. Paso por paso

Crear una Activity en Android. Paso por paso 19-03-2014 Crear una Activity en Android. Paso por paso Una breve descripción de qué hacer cuando las herramientas de desarrollo de Android se convierten en nuestros enemigos. A veces, puede pasar que

Más detalles

PROYECTO DE ELECTRÓNICA

PROYECTO DE ELECTRÓNICA PROYECTO DE ELECTRÓNICA Sistema de Alarma Raúl Lapaz de Juan Francisco Javier López Alcarria 1 ÍNDICE - Objetivo:... 3 - Justificación:... 3 - Plan de trabajo:... 3 A) Montaje del circuito en protoboards:...

Más detalles

CIF-KM. GUÍA DE LOS PRIMEROS PASOS

CIF-KM. GUÍA DE LOS PRIMEROS PASOS CIF-KM. GUÍA DE LOS PRIMEROS PASOS Secciones 1. CONCEPTOS PREVIOS. 2. INSTALAR CIF-KM. 2.1 Descargar e instalar CIF-KM. 2.2 Configuración de CIF-KM. 2.3 Acceso externo al servidor de CIF-KM. 3. PRIMERA

Más detalles

- 1 - ÍNDICE. PASO 3: Primero le hará falta elegir su lengua en esta pantalla:

- 1 - ÍNDICE. PASO 3: Primero le hará falta elegir su lengua en esta pantalla: PASO 3: Primero le hará falta elegir su lengua en esta pantalla: GUÍA DE INSTALACIÓN PASO A PASO DEL SOFTWARE PARA WINDOWS 7 - Número 3.2 Gracias por haber comprado este dispositivo Roadpilot. Esta guía

Más detalles

Configuración de clientes con Windows y Linux/Unix

Configuración de clientes con Windows y Linux/Unix Configuración de clientes con Windows y Linux/Unix Tabla de Contenidos 5. Configuración de clientes con Windows y Linux/Unix...2 5.1 Configuración de un cliente Windows... 2 5.1.1 Acceso a recursos compartidos

Más detalles

Configuracion Escritorio Remoto Windows 2003

Configuracion Escritorio Remoto Windows 2003 Configuracion Escritorio Remoto Windows 2003 Instalar y configurar servicio de Terminal Server en Windows 2003 Fecha Lunes, 25 diciembre a las 17:04:14 Tema Windows (Sistema Operativo) Os explicamos cómo

Más detalles

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. IIC1102 Introducción a la Programación

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. IIC1102 Introducción a la Programación Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación IIC1102 Introducción a la Programación Tutorial eclipse TM Introducción al uso de eclipse TM Contents

Más detalles

INSTALACIÓN A3ERP INTRODUCCIÓN CONSIDERACIONES GENERALES DE LA INSTALACIÓN PAQUETES DE INSTALACIÓN PREDEFINIDOS

INSTALACIÓN A3ERP INTRODUCCIÓN CONSIDERACIONES GENERALES DE LA INSTALACIÓN PAQUETES DE INSTALACIÓN PREDEFINIDOS INSTALACIÓN A3ERP INTRODUCCIÓN La instalación de a3erp v9 ha sufrido una trasformación importante respecto a sus versiones anteriores. Cualquier instalación exige la existencia de un pc al que le asignaremos

Más detalles

MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO

MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO Fecha última revisión: Junio 2011 INDICE DE CONTENIDOS HERRAMIENTA DE APROVISIONAMIENTO... 3 1. QUÉ ES LA HERRAMIENTA DE APROVISIONAMIENTO... 3 HERRAMIENTA

Más detalles

OpenIRS DOCENTIA Módulo de Gestión. Manual de Usuario.

OpenIRS DOCENTIA Módulo de Gestión. Manual de Usuario. OpenIRS DOCENTIA Manual de Usuario. Versión 3.0.4 Diciembre 2013 Vicerrectorado de Evaluación de la Calidad 1 Contenido 1. INTRODUCCIÓN... 4 2. INSTALACIÓN DEL MÓDULO... 6 2.1. Requisitos Previos... 6

Más detalles

Utilidad de configuración y actualización de Software para el SS5660

Utilidad de configuración y actualización de Software para el SS5660 Utilidad de configuración y actualización de Software para el SS5660 Este documento describe la utilidad de configuración y actualización del software para el router SpeedStream 5660 de Efficient Networks

Más detalles

1. Creación del repositorio

1. Creación del repositorio FACULTADE DE INFORMÁTICA Departamento de Computación Tecnología de la Programación 2008-2009 Ingeniería Informática Práctica 1: Subversion Introducción El objetivo de esta práctica es aprender a manejar

Más detalles

Instalación de DRIVER de mochila

Instalación de DRIVER de mochila Instalación del programa de Renta A3 Antes de proceder a instalar el programa de Renta A3, deberemos configurar la mochila en el servidor. Para ello seguiremos los siguientes pasos: Instalación de DRIVER

Más detalles

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento Qué es AT-Encrypt nos permitirá dotar de contraseña a cualquier documento o carpeta. Este documento o carpeta sólo será legible por aquel que conozca la contraseña El funcionamiento del cifrado (o encriptación)

Más detalles

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación Vicerrectorado de Tecnologías de la Información y la Comunicación Conexión mediante Escritorio Remoto de Windows Última Actualización 16 de septiembre de 2013 Histórico de cambios Fecha Descripción Autor

Más detalles

OnePAD 700 Preguntas Frecuentes

OnePAD 700 Preguntas Frecuentes OnePAD 700 Preguntas Frecuentes 1. Tengo algún problema con el funcionamiento del equipo Cargar los valores por defecto de fábrica 2. Tengo problemas con una aplicación instalada. Qué puedo hacer? Solucionar

Más detalles

WINDOWS 2008 7: COPIAS DE SEGURIDAD

WINDOWS 2008 7: COPIAS DE SEGURIDAD 1.- INTRODUCCION: WINDOWS 2008 7: COPIAS DE SEGURIDAD Las copias de seguridad son un elemento fundamental para que el trabajo que realizamos se pueda proteger de aquellos problemas o desastres que pueden

Más detalles

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: 93.410.92.92 Fax.: 93.419.86.49 e-mail:atcliente@websie.

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: 93.410.92.92 Fax.: 93.419.86.49 e-mail:atcliente@websie. Adaptación al NPGC Introducción Nexus 620, ya recoge el Nuevo Plan General Contable, que entrará en vigor el 1 de Enero de 2008. Este documento mostrará que debemos hacer a partir de esa fecha, según nuestra

Más detalles

INSTALACIÓ N A3ERP. Informática para empresas INTRODUCCIÓN CONSIDERACIONES GENERALES DE LA INSTALACIÓN PAQUETES DE INSTALACIÓN PREDEFINIDOS

INSTALACIÓ N A3ERP. Informática para empresas INTRODUCCIÓN CONSIDERACIONES GENERALES DE LA INSTALACIÓN PAQUETES DE INSTALACIÓN PREDEFINIDOS Página 1 de 20 INSTALACIÓ N A3ERP INTRODUCCIÓN La instalación de a3erp v9 ha sufrido una trasformación importante respecto a sus versiones anteriores. Cualquier instalación exige la existencia de un pc

Más detalles

Acronis License Server. Guía del usuario

Acronis License Server. Guía del usuario Acronis License Server Guía del usuario TABLA DE CONTENIDO 1. INTRODUCCIÓN... 3 1.1 Generalidades... 3 1.2 Política de licencias... 3 2. SISTEMAS OPERATIVOS COMPATIBLES... 4 3. INSTALACIÓN DE ACRONIS LICENSE

Más detalles

15 CORREO WEB CORREO WEB

15 CORREO WEB CORREO WEB CORREO WEB Anteriormente Hemos visto cómo funciona el correo electrónico, y cómo necesitábamos tener un programa cliente (Outlook Express) para gestionar los mensajes de correo electrónico. Sin embargo,

Más detalles

INSTRUCCIONES ACTUALIZACION PASO A PASO a MICROSOFT WINDOWS-7 (rev.1.0):

INSTRUCCIONES ACTUALIZACION PASO A PASO a MICROSOFT WINDOWS-7 (rev.1.0): INSTRUCCIONES ACTUALIZACION PASO A PASO a MICROSOFT WINDOWS-7 (rev.1.0): Puede instalar Windows 7 como una actualización a una instalación existente de Windows Vista con Service Pack 1 o Service Pack 2

Más detalles

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7 Tutoriales de ayuda e información para todos los niveles AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7 Como agregar a una red existente un equipo con Windows 7 y compartir sus archivos

Más detalles

En el presente capítulo se describe la programación del instrumento virtual y cómo

En el presente capítulo se describe la programación del instrumento virtual y cómo Capítulo 6. Instrumentación virtual En el presente capítulo se describe la programación del instrumento virtual y cómo éste controla el circuito de captura de señales, la llamada telefónica y escribe los

Más detalles

EJEMPLOS PROGRAMACIÓN SOCKET - JAVA

EJEMPLOS PROGRAMACIÓN SOCKET - JAVA EJEMPLOS PROGRAMACIÓN SOCKET - JAVA 1.- Calcular el Cuadrado TCP En esta aplicación el cliente se conecta al servidor, para ello debe introducir la dirección IP del servidor y los parámetros sobre los

Más detalles

MANUAL CÁMARA DE MOWAY

MANUAL CÁMARA DE MOWAY MANUAL CÁMARA DE MOWAY Página 2 de 12 Copyright (c) 2011 Bizintek Innova, S.L. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License,

Más detalles

MANUAL WEBSOPORTE DE IRIS-EKAMAT

MANUAL WEBSOPORTE DE IRIS-EKAMAT MANUAL WEBSOPORTE DE IRIS-EKAMAT ÍNDICE 1. INTRODUCCIÓN... 2 2. IDENTIFICACIÓN... 3 2.1 Validar usuario... 3 2.2 Campos recordatorio... 4 2.3 Contactar con soporte y acceder al manual... 4 3. GESTIÓN DE

Más detalles

Cómo instalar fácilmente tu WordPress tras contratar un hosting en Hostalia

Cómo instalar fácilmente tu WordPress tras contratar un hosting en Hostalia Cómo instalar fácilmente tu WordPress tras contratar un hosting en Hostalia Cardenal Gardoki, 1 48008 BILBAO (Vizcaya) Teléfono: 902 012 199 www.hostalia.com La puesta en marcha de WordPress es muy sencilla,

Más detalles

5.2.- Configuración de un Servidor DHCP en Windows 2003 Server

5.2.- Configuración de un Servidor DHCP en Windows 2003 Server 5.2.- Configuración de un Servidor DHCP en Windows 2003 Server En este apartado vamos a configurar el servidor DHCP de "Windows 2003 Server", instalado en el apartado anterior. Lo primero que hemos de

Más detalles

Aplicaciones Cliente/Servidor en Gambas Prof: Mileti, P.

Aplicaciones Cliente/Servidor en Gambas Prof: Mileti, P. Aplicaciones Cliente/Servidor en Gambas Prof: Mileti, P. Al igual que un usuario se comunica con el programa por medio del teclado, dos programas se pueden comunicar entre sí por medio Sockets. Se podría

Más detalles

Redes Locales: El protocolo TCP/IP

Redes Locales: El protocolo TCP/IP Redes Locales: El protocolo TCP/IP Los protocolos de red son las reglas que siguen los equipos conectados a la red para poder comunicarse entre sí, y hablar así el mismo idioma. El grupo de protocolos

Más detalles

Manual de NetBeans y XAMPP

Manual de NetBeans y XAMPP Three Headed Monkey Manual de NetBeans y XAMPP Versión 1.0 Guillermo Montoro Delgado Raúl Nadal Burgos Juan María Ruiz Tinas Lunes, 22 de marzo de 2010 Contenido NetBeans... 2 Qué es NetBeans?... 2 Instalación

Más detalles

- 1 - ÍNDICE. Haga clic en Instalar Software. PASO 3: Primero le hará falta elegir su lengua en esta pantalla:

- 1 - ÍNDICE. Haga clic en Instalar Software. PASO 3: Primero le hará falta elegir su lengua en esta pantalla: GUÍA DE INSTALACIÓN PASO A PASO DEL SOFTWARE PARA WINDOWS XP - Número 3.2 Gracias por haber comprado este dispositivo Roadpilot. Esta guía de instalación le ayudará a instalar el software y los controladores

Más detalles

Guía de instalación del servidor

Guía de instalación del servidor Guía de instalación del servidor Autores: Versión: 1.0 Jesús Manuel Rodríguez Sánchez Miguel Ángel Lorente López Fecha: 22/01/2009 Tabla de contenido Manual de Instalación del Servidor 4 Paso 1) Instalar

Más detalles

INSTALACIÓN Y REGISTRO

INSTALACIÓN Y REGISTRO INSTALACIÓN Y REGISTRO Maître Serie 4 Profesional se puede obtener a partir del CD de instalación o mediante la pagina web www.astarteinformatica.com en el apartado indicado a la página de dicha aplicación.

Más detalles

Modulo 1 El lenguaje Java

Modulo 1 El lenguaje Java Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto

Más detalles

Práctica No. 1. Consulta de las versiones del SO

Práctica No. 1. Consulta de las versiones del SO Práctica No. 1 Consulta de las versiones del SO Objetivos: Determinar la versión y la revisión del sistema operativo (SO). Analizar el método utilizado para configurar las actualizaciones de Windows vista

Más detalles

QUÉ ES UN SERVIDOR Y CUÁLES SON LOS PRINCIPALES TIPOS DE SERVIDORES? (PROXY, DNS, WEB, FTP, SMTP, ETC.) (DV00408A)

QUÉ ES UN SERVIDOR Y CUÁLES SON LOS PRINCIPALES TIPOS DE SERVIDORES? (PROXY, DNS, WEB, FTP, SMTP, ETC.) (DV00408A) APRENDERAPROGRAMAR.COM QUÉ ES UN SERVIDOR Y CUÁLES SON LOS PRINCIPALES TIPOS DE SERVIDORES? (PROXY, DNS, WEB, FTP, SMTP, ETC.) (DV00408A) Sección: Divulgación Categoría: Herramientas Informáticas Fecha

Más detalles

Instalación y Configuración de un Servidor FTP

Instalación y Configuración de un Servidor FTP 1 Instalación y Configuración de un Servidor FTP 1. Instalación del Servidor FTP Instalación y configuración del Servidor...3 Acceder al servidor...6 2. Configuración Pública del Servidor Configurar DHCP...8

Más detalles

AVD, el emulador de Smartphone y Tablets Android que incluye el SDK de Google

AVD, el emulador de Smartphone y Tablets Android que incluye el SDK de Google AVD, el emulador de Smartphone y Tablets Android que incluye el SDK de Google Para probar nuestras aplicaciones Google nos proporciona un emulador de dispositivos conocido como AVD (Android Virtual Devices).

Más detalles

en dispositivos móviles

en dispositivos móviles Correo electrónico en dispositivos móviles Calle San Rafael, 14 28108 Alcobendas (Madrid) 902 90 10 20 www.acens.com En los últimos tiempos, el uso de dispositivos móviles ha ido en aumento en el uso cotidiano,

Más detalles

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX En este manual se presenta el proceso de configuración de una Maquina Virtual en VirtualBox, que será utilizada para instalar un Servidor

Más detalles

Manual CMS Mobincube

Manual CMS Mobincube Manual CMS Mobincube CMS Mobincube Qué es? El CMS (Sistema de Gestión de Contenidos) es un completo website que permite la creación y actualización de contenido remoto. De esta forma, una vez creada una

Más detalles

VideoSoftPHONE Active Contact

VideoSoftPHONE Active Contact VideoSoftPHONE Active Contact 1 ÍNDICE 1. CÓMO INSTALAR MI VIDEOSOFTPHONE SOFTWARE?... 1 1.1. REQUISITOS PREVIOS... 1 1.1.1. Requisitos del sistema... 1 1.1.2. Requisitos Software... 1 1.2. INSTALACIÓN...

Más detalles

Tutorial 1. Instalación del entorno de desarrollo de Android. Curso de perfeccionamiento: Programación de Android TUTORIAL 1: INSTALACIÓN DEL SOFTWARE

Tutorial 1. Instalación del entorno de desarrollo de Android. Curso de perfeccionamiento: Programación de Android TUTORIAL 1: INSTALACIÓN DEL SOFTWARE Tutorial 1 Instalación del entorno de desarrollo de Android Curso de perfeccionamiento: Programación de Android 2013 1 Para desarrollar aplicaciones Android debemos instalar el siguiente software en nuestro

Más detalles

T3-Rondas V 1.1. Help-Pc, S.L. C/ Pintor Pau Roig, 39 L-5 08330 Premià de Mar Barcelona Tel. (93) 754 90 19 Fax 93 752 35 18 marketing@t2app.

T3-Rondas V 1.1. Help-Pc, S.L. C/ Pintor Pau Roig, 39 L-5 08330 Premià de Mar Barcelona Tel. (93) 754 90 19 Fax 93 752 35 18 marketing@t2app. T3-Rondas V 1.1 1 Indice 1 Requisitos mínimos 3 2 Instalación 3 2.1 Instalación del software 3 2.2 Instalación del terminal 4 3 Configuración Inicial 4 3.1 Crear terminales 5 3.2 Crear puntos de lectura

Más detalles

Firewall Firestarter. Establece perímetros confiables.

Firewall Firestarter. Establece perímetros confiables. Firewall Firestarter Qué es un Firewall? Un muro de fuego (firewall en inglés) es una parte de un sistema o una red que está diseñada para bloquear el acceso no autorizado, permitiendo al mismo tiempo

Más detalles

Manual del Protocolo XML-RPC de Mensajería Negocios

Manual del Protocolo XML-RPC de Mensajería Negocios Manual del Protocolo XML-RPC de Mensajería Negocios Índice de contenidos 1 INTRODUCCIÓN... 3 2 FUNCIONALIDADES DEL API DE COMUNICACIÓN XML-RPC... 4 2.1 Envío Libre... 4 2.2 Envío a Grupo de Contactos...

Más detalles

Capitulo 3. Desarrollo del Software

Capitulo 3. Desarrollo del Software Capitulo 3 Desarrollo del Software 3.1 Análisis del sistema 3.1.1 Organización de la autopista virtual Para el presente proyecto se requiere de simular una autopista para que sirva de prueba. Dicha autopista

Más detalles

Manual de instalación Actualizador masivo de Stocks y Precios

Manual de instalación Actualizador masivo de Stocks y Precios Manual de instalación Actualizador masivo de Stocks y Precios Instrucciones para la instalación de Actualizado masivo de Stocks y Precios Módulo para Prestashop desarrollado por OBSolutions Módulo para

Más detalles

Cómo acceder a Google Drive? Tiene más funcionalidades una cuenta de Google?

Cómo acceder a Google Drive? Tiene más funcionalidades una cuenta de Google? Manual de Qué es Google Drive? Qué es Google Drive? Google Drive es un servicio web que le permite almacenar, modificar, compartir y acceder a sus archivos y documentos independientemente de dónde se encuentre

Más detalles

Notas para la instalación de un lector de tarjetas inteligentes.

Notas para la instalación de un lector de tarjetas inteligentes. Notas para la instalación de un lector de tarjetas inteligentes. Índice 0. Obtención de todo lo necesario para la instalación. 3 1. Comprobación del estado del servicio Tarjeta inteligente. 4 2. Instalación

Más detalles

Conexión a red LAN con servidor DHCP

Conexión a red LAN con servidor DHCP Introducción Explicación Paso 1 Paso 2 Paso 3 Paso 4 Paso 5 Paso 6 Paso 7 Paso 8 Paso 9 Paso 10 Materiales: Disco de sistema operativo. Tiempo: 5 minutos Dificultad: Baja Descripción Proceso que permite

Más detalles

Guía de acceso a Meff por Terminal Server

Guía de acceso a Meff por Terminal Server Guía de acceso a Meff por Terminal Server Fecha:15 Marzo 2011 Versión: 1.02 Historia de Revisiones Versión Fecha Descripción 1.00 03/07/2009 Primera versión 1.01 13/08/2009 Incorporación dominio 1.02 15/03/2011

Más detalles

Software Criptográfico FNMT-RCM

Software Criptográfico FNMT-RCM Software Criptográfico FNMT-RCM ÍNDICE 1. DESCARGA E INSTALACIÓN DEL SOFTWARE 2. EXPORTACIÓN DE CERTIFICADOS EN MICROSOFT INTERNET EXPLORER 3. IMPORTACIÓN DEL CERTIFICADO A LA TARJETA CRIPTOGRÁFICA -2-

Más detalles

Manual Configuración GlopDroid. Configuración del módulo GlopDroid para toma de comandas en tablets, móviles y tpv Android.

Manual Configuración GlopDroid. Configuración del módulo GlopDroid para toma de comandas en tablets, móviles y tpv Android. Manual Configuración GlopDroid Configuración del módulo GlopDroid para toma de comandas en tablets, móviles y tpv Android. El módulo para toma de comandas en Android de Glop se llama GlopDroid y con él

Más detalles

Manual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib

Manual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib Manual de uso de la plataforma para monitores CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib [Manual de uso de la plataforma para monitores] 1. Licencia Autor del documento: Centro de Apoyo Tecnológico

Más detalles

1. Ir a https://vmdepot.msopentech.com/list/index?sort=featured&search=kobli

1. Ir a https://vmdepot.msopentech.com/list/index?sort=featured&search=kobli Procedimiento documentado para obtener cualquiera de las cuatro máquinas virtuales de Kobli en un clic (Especializadas, Colecciones privadas, Médicas y Rurales) desde VM Depot 1 y llevarla a la plataforma

Más detalles

1.4.1.2. Resumen... 1.4.2. ÁREA DE FACTURACIÓN::INFORMES::Pedidos...27 1.4.2.1. Detalle... 1.4.2.2. Resumen... 1.4.3. ÁREA DE

1.4.1.2. Resumen... 1.4.2. ÁREA DE FACTURACIÓN::INFORMES::Pedidos...27 1.4.2.1. Detalle... 1.4.2.2. Resumen... 1.4.3. ÁREA DE MANUAL DE USUARIO DE ABANQ 1 Índice de contenido 1 ÁREA DE FACTURACIÓN......4 1.1 ÁREA DE FACTURACIÓN::PRINCIPAL...4 1.1.1. ÁREA DE FACTURACIÓN::PRINCIPAL::EMPRESA...4 1.1.1.1. ÁREA DE FACTURACIÓN::PRINCIPAL::EMPRESA::General...4

Más detalles

Capitulo 5. Implementación del sistema MDM

Capitulo 5. Implementación del sistema MDM Capitulo 5. Implementación del sistema MDM Una vez que se concluyeron las actividades de análisis y diseño se comenzó la implementación del sistema MDM (Manejador de Documentos de MoProSoft). En este capitulo

Más detalles

Gracias a ese IP único que tiene cada ordenador conectado a la red de internet se pueden identificar y comunicar los ordenadores.

Gracias a ese IP único que tiene cada ordenador conectado a la red de internet se pueden identificar y comunicar los ordenadores. COMO FUNCIONA INTERNET Internet es una gran red de ordenadores a nivel mundial, que pueden intercambiar información entre ellos. Se pueden comunicar porque están unidos a través de conexiones telefónicas,

Más detalles