Páginas

miércoles, 25 de diciembre de 2013

domingo, 22 de diciembre de 2013

Desactivar el ucs auto face selection en el autocad 2013

Al hacer snap cambia la posicion del UCS a la cara selecionada del objeto. La variable de esta opcion es UCSDETECT, poniendola a 0 se quita. O bien es tan simple como pulsar la tecla F6.

sábado, 21 de diciembre de 2013

Ejemplo de reglas udev

Este es el contenido de mi archivo de reglas para varios dispositivos usb

# cat /etc/udev/rules.d/50-usb-serial.rules

SUBSYSTEMS=="usb-serial",DRIVERS=="cp210x",ATTRS{port_number}=="0",SYMLINK+="obd15a"
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="A9U9DF7V", SYMLINK+="obd"
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="00000000", SYMLINK+="sim-ecu"

Para ello:

# sudo udevadm info -q path -n /dev/ttyUSB4
/devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1:1.0/ttyUSB4/tty/ttyUSB4

# sudo udevadm info -a -p /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1:1.0/ttyUSB4/tty/ttyUSB4
 
Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.
 
  looking at device '/devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1:1.0/ttyUSB4/tty/ttyUSB4':
    KERNEL=="ttyUSB4"
    SUBSYSTEM=="tty"
    DRIVER==""
 
  looking at parent device '/devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1:1.0/ttyUSB4':
    KERNELS=="ttyUSB4"
    SUBSYSTEMS=="usb-serial"
    DRIVERS=="cp210x"
    ATTRS{port_number}=="0"
 
  looking at parent device '/devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1:1.0':
    KERNELS=="5-1:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="cp210x"
    ATTRS{bInterfaceNumber}=="00"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{bNumEndpoints}=="02"
    ATTRS{bInterfaceClass}=="ff"
    ATTRS{bInterfaceSubClass}=="00"
    ATTRS{bInterfaceProtocol}=="00"
    ATTRS{modalias}=="usb:v10C4pEA60d0100dc00dsc00dp00icFFisc00ip00"
    ATTRS{supports_autosuspend}=="0"
    ATTRS{interface}=="CP2102 USB to UART Bridge Controller"
 
  looking at parent device '/devices/pci0000:00/0000:00:1d.3/usb5/5-1':
    KERNELS=="5-1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{configuration}==""
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bmAttributes}=="80"
    ATTRS{bMaxPower}=="100mA"
    ATTRS{urbnum}=="53123"
    ATTRS{idVendor}=="10c4"
    ATTRS{idProduct}=="ea60"
    ATTRS{bcdDevice}=="0100"
    ATTRS{bDeviceClass}=="00"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{speed}=="12"
    ATTRS{busnum}=="5"
    ATTRS{devnum}=="2"
    ATTRS{version}==" 1.10"
    ATTRS{maxchild}=="0"
    ATTRS{quirks}=="0x0"
    ATTRS{authorized}=="1"
    ATTRS{manufacturer}=="Silicon Labs"
    ATTRS{product}=="CP2102 USB to UART Bridge Controller"
    ATTRS{serial}=="0001"
 
  looking at parent device '/devices/pci0000:00/0000:00:1d.3/usb5':
    KERNELS=="usb5"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{configuration}==""
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bmAttributes}=="e0"
    ATTRS{bMaxPower}=="  0mA"
    ATTRS{urbnum}=="55"
    ATTRS{idVendor}=="1d6b"
    ATTRS{idProduct}=="0001"
    ATTRS{bcdDevice}=="0206"
    ATTRS{bDeviceClass}=="09"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{speed}=="12"
    ATTRS{busnum}=="5"
    ATTRS{devnum}=="1"
    ATTRS{version}==" 1.10"
    ATTRS{maxchild}=="2"
    ATTRS{quirks}=="0x0"
    ATTRS{authorized}=="1"
    ATTRS{manufacturer}=="Linux 2.6.32.atom.mh.01 uhci_hcd"
    ATTRS{product}=="UHCI Host Controller"
    ATTRS{serial}=="0000:00:1d.3"
    ATTRS{authorized_default}=="1"
 
  looking at parent device '/devices/pci0000:00/0000:00:1d.3':
    KERNELS=="0000:00:1d.3"
    SUBSYSTEMS=="pci"
    DRIVERS=="uhci_hcd"
    ATTRS{vendor}=="0x8086"
    ATTRS{device}=="0x27cb"
    ATTRS{subsystem_vendor}=="0x8086"
    ATTRS{subsystem_device}=="0x574d"
    ATTRS{class}=="0x0c0300"
    ATTRS{irq}=="16"
    ATTRS{local_cpus}=="f"
    ATTRS{local_cpulist}=="0-3"
    ATTRS{modalias}=="pci:v00008086d000027CBsv00008086sd0000574Dbc0Csc03i00"
    ATTRS{enable}=="1"
    ATTRS{broken_parity_status}=="0"
    ATTRS{msi_bus}==""
 
  looking at parent device '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""

La parte que nos interesa es:

KERNELS=="ttyUSB4"
SUBSYSTEMS=="usb-serial"
DRIVERS=="cp210x"
ATTRS{port_number}=="0"

Y si es necesario (como ha sido mi caso):

ATTRS{serial}=="0001"

Con esto hacemos un archivo de reglas en /etc/udev/rules.d llamado "50-usb-serial.rules" con el siguiente contenido

SUBSYSTEMS=="usb-serial",DRIVERS=="cp210x",ATTRS{port_number}=="0",SYMLINK+="aag-weather"

Y ejecutamos el siguiente comando para que se ejecute la regla de forma inmediata

# sudo udevadm trigger

Cansado del mensaje "waiting for /dev to be fully populated."

Como root ejecutar:


udevadm settle --timeout=1

Actualizar python a la version 3.3.2 en raspberry

Abrir un consola y ejecutar los siguientes comandos:


cd ~
wget http://www.python.org/ftp/python/3.3.2/Python-3.3.2.tar.bz2
tar jxf ./Python-3.3.2.tar.bz2
cd ./Python-3.3.2
./configure --prefix=/opt/python3.3.2
make && sudo make install
sudo ln -s /opt/python3.3.2/bin/python3.3 /usr/bin/python332


Con esto queda instalado y compilado

PD Tarda un rato largo en raspberry

lunes, 18 de noviembre de 2013

Secuencia para establecer comunicación con central de motor de Peugeot 406 del 2003 con ELM327

Los franceses tienen la fea costumbre de ir un poco a su rollo a la hora de cumplir las normativas...Eso hace que sea un poco mas complicado trabajar con ellos...pero en fin....
Para poder comunicar un ELM327 con una central de motor de Peugeot 406 del año 2003 he usado la siguiente secuencia:



ATZ
ATE0
ATE0
ATM0
ATL0
ATS0
AT@1
ATI
ATH0
ATAT1
ATSP0
ATH1
ATDPN
ATPC
ATSP5
ATSH8010F1
ATSW10
ATH1
ATH0


El elemento diferenciador es tener que incluir la cabecera 8010F1 (ATSH8010F1) e indicarle al ELM327 que cada 10 s repita el mensaje para que la ECU no corte la comunicación por timeout (ATSW10)

domingo, 17 de noviembre de 2013

Administrador de Tareas en OSX

En Mac OSX también tiene administrador de tareas, solo sirve para cerrar aplicaciones que hayan quedado colgadas. Para ejecutarlo hay que pulsar la siguiente combinación de teclas:

Comando+Opción+Escape

martes, 9 de julio de 2013

Averiguar el numero de veces que se ha montado una particion en linux

Abrimos una consola, en modo root, y ejecutamos el siguiente comando:


# tune2fs -l /dev/sdXN | grep "Mount count" | tr -s ' ' | cut -d" " -f3

Donde X es el disco y N el numero de partición.

El comando tune2fs muestra diversos parámetros de la partición, como el nombre del volumen del sistema, el numero de UUID, el numero de veces que se ha montado el volumen, la fecha de la ultima vez que se montó...

Ejemplo de datos obtenidos con el comando tune2fs


# tune2fs -l /dev/sda1
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name:   SISTEMA
Last mounted on:          
Filesystem UUID:          7161eb6d-d722-4e75-9bc2-7337132c2a70
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file
Filesystem flags:         signed_directory_hash
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              9371648
Block count:              37479680
Reserved block count:     1873982
Free blocks:              34198941
Free inodes:              9132335
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      1015
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
Filesystem created:       Thu Mar 29 19:17:09 2012
Last mount time:          Tue Jul  9 20:43:30 2013
Last write time:          Tue Jul  2 19:18:13 2013
Mount count:              23
Maximum mount count:      34
Last checked:             Fri Jun 28 17:37:24 2013
Check interval:           15552000 (6 months)
Next check after:         Wed Dec 25 16:37:24 2013
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
First orphan inode:       1679396
Default directory hash:   half_md4
Directory Hash Seed:      796e4703-a108-46bd-9eab-c4a4a50b40b1
Journal backup:           inode blocks



sábado, 12 de enero de 2013

Borrado de puertos COMX sin uso en Windows XP

A medida que se conectan dispositivos que crean puertos serie virtuales, el numero de puerto se va incrementando de forma critica. Acabar teniendo un puerto COM17 es un poco de rollo, sobretotodo, si usas un programa que no esta demasiado bien diseñado y te limita el numero de puertos hasta COM4, por poner un ejemplo. Solucion, de vez en cuando eliminar los puerto sin uso, para que la proxima vez que conectes algo no acabe siendo numerado como COM18.

Para ello crearemos un pequeño archivo .bat con el siguiente contenido:

@echo off
set devmgr_show_nonpresent_devices=1 
cd %SystemRoot%\system32 
start devmgmt.msc

Con esto problema solucionado