terça-feira, 25 de janeiro de 2011

Instalação mod_python no Apache 2

Sistema Operacional: Debian Lenny - Kernel 2.6.28-11-generic
Versão do Apache: 2.2.11
Versão do Python: 2.5.4

Para o Apache interpretar os scripts que seram criados em Python, é necessário a instalação de um módulo no Apache.

Existem duas formas de obter este módulo, que é o "mod_python". Você pode entrar no site oficial e seguir as instruções para a compilação do "mod_python". Neste caso como estou usando o Debian vou usar seu repositório, que possui o "mod_python" já pre-compilado.

# apt-get install libapache2-mod-python

Agora vou configurar no Apache um "Directory" para meus códigos Python:



AddHandler mod_python .py
PythonHandler mptest
PythonDebug on


Faça um restart em seu Apache. E por fim abaixo segue um exemplo para ver se seu código Python está sendo interpretado corretamento com o seu Apache.

Arquivo: mptest.py

#!/usr/bin/python

from mod_python import apache

def handler(req):
req.content_type = 'text/plain'
req.write("Hello World!")
return apache.OK


# --- fim codigo --- #

Escrito por: Mario Uzae
E-mail: mariouzae@gmail.com

quarta-feira, 5 de janeiro de 2011

Acesso à Porta Paralela

Este pequeno programa, foi desenvolvido em c++ para a demostração de como efetuar um acesso à porta paralela. Inicialmente isto utiliza os 8 pinos disponíveis para a comunicação por porta paralela. O programa solicita a porta que você deseja enviar o sinal, enviando o sinal de aproximadamente de 3.5 Volts quando acionada. Não vou explicar o funcionamento da porta paralela, mais postarei um simples programa que utiliza esta porta.

Compilado: GCC-C++ 4.3 - Linux


#include <iostream>
#include <sys/io.h>

#define MAXLED 8 /* 8 BITS. */
#define LPTPORT 0x378 /* ENDERECO DE MEMORIA DE COMUNICACAO COM A PORTA PARALELA. */

int main() {
/* DECLARACAO DE VARIAVEIS */
unsigned int LUX;
unsigned int VAR;
unsigned short D[10];


/* VERIFICA PEMICOES DE ACESSO A PORTA DE MEMORIA */
if(ioperm(LPTPORT, 1, 1)) {
printf("Error ioperm in address port.\n");
}

outb(0, LPTPORT); /* FAZ COM QUE QUALQUER TENSAO SEJA DESATIVADA AO INICIAR O PROGRAMA. */

/* ARRAY MATRIZ DOS VALORES DE PINOS 8 BITS. */
D[0] = 1;
D[1] = 2;
D[2] = 4;
D[3] = 8;
D[4] = 16;
D[5] = 32;
D[6] = 64;
D[7] = 128;
D[8] = 255;
D[9] = 256;

/* LISTA OS VALORES DA OPCOES. */
printf("Escolha o pino que deseja ativar a tensao:\n\n");
printf("PINO 0 = 0:\n");
printf("PINO 1 = 1:\n");
printf("PINO 2 = 2:\n");
printf("PINO 3 = 3:\n");
printf("PINO 4 = 4:\n");
printf("PINO 5 = 5:\n");
printf("PINO 6 = 6:\n");
printf("PINO 7 = 7:\n");
printf("LIGA TODOS OS PINOS = 8:\n");
printf("DESLIGA TODOS OS PINOS = 9:\n\n");

while(1) {

printf("Entre com o PINO desejado: ");
scanf("%d", &VAR);

/* CONDICOES DE SAIDA */
if(VAR == 0){
outb(D[0], LPTPORT);
}
if(VAR == 1){
outb(D[1], LPTPORT);
}
if(VAR == 2){
outb(D[2], LPTPORT);
}
if(VAR == 3){
outb(D[3], LPTPORT);
}
if(VAR == 4){
outb(D[4], LPTPORT);
}
if(VAR == 5){
outb(D[5], LPTPORT);
}
if(VAR == 6){
outb(D[6], LPTPORT);
}
if(VAR == 7){
outb(D[7], LPTPORT);
}
if(VAR == 8){
outb(D[8], LPTPORT);
}
if(VAR == 9){
outb(D[9], LPTPORT);
}

}
}

Mario Uzae
E-mail: mariouzae@gmail.com