Mensagens enviadas por: thingol
Índice dos Fóruns » Perfil de thingol » Mensagens enviadas por thingol
Autor Mensagem
Comunicação serial é meio chato mesmo (já pastei muito com isso...), normalmente para ter menos problemas você deve arranjar um "data analyzer" para ver exatamente o que está sendo enviado e recebido.

(Às vezes você está até enviando direitinho, mas o equipamento é meio molenga e precisa de um delay entre os bytes, e não consegue responder de volta...)

Se conseguir trabalhar com uma velocidade menor no princípio, é melhor (2400 bps); e se for o caso até ponha um delay entre os bytes (dependendo do equipamento você precisa disso...) depois vá aumentando a velocidade, para entender o que está acontecendo.

O Data Analyzer pode ser um equipamento (um pouco caro, que funciona a pilhas e basicamente mostra os sinais e os bytes que estão sendo enviados e recebidos) ou um outro computador com um cabo especial que você deve ligar à serial, ou então você pode usar um programa chamado portmon, que você obtém no site http://www.sysinternals.com e é "na faixa". (Como você escreveu "COM3" suponho que você está usando Windows...)

Não sei se alguém aluga (ou empresta) um equipamento desses.

Não digo que o portmon seja sua primeira opção (só porque é de graça e você não precisa soldar nada...), porque ele não consegue mostrar certas coisas que um verdadeiro data analyzer consegue. Mas pode ser que para coisas simples você já consiga ter uma boa pista com o portmon.
Já vi: "Hello, World", "Forum Spammer", "Virtual Machine Men" etc.
Dá a impressão que é pela quantidade de posts.
Existe uma lista dessas no site só para a gente ver?
Não quero postar 20.000 mensagens (tem um cara no forum.java.sun.com que já postou 18.181 mensagens lá, veja a ficha dele em http://forum.java.sun.com/profile.jsp?user=jschell ) só para saber quais são os rótulos possíveis...
Se você tiver algum daqueles programas que formatam um CD como "UDF" e deixam ele igualzinho a um disquete gigante, você pode fazer as coisas em Java puro - java.io.FileOutputStream etc... Só que quando o CD é formatado assim ele fica com bem menos espaço disponível; além disso não serve para gravar música e não dá para ler em qualquer lugar, e você precisa instalar um programa para ler e escrever o formato UDF.

Em vez disso, chame algum programa em C que faça isso por você. Por exemplo, no Linux existe o mkisofs (é isso mesmo?), passe os parâmetros adequados.

O que você pode fazer em Java é um programa que prepare uma imagem ISO para gravação; isso é muito trabalhoso, mas provavelmente alguém já fez. Dá uma procuradinha no Google...
Ou felizes possuidores de uma linha ADSL (Speedy em São Paulo, Velox no Rio): baixe aquele "bundle" com Netbeans e J2SE (ok, Netbeans não é Eclipse) no site da Sun, ou então arranje uma cópia de demonstração do Websphere Application Developer (WSAD) no site da IBM - só que você vai ter de esperar muito, muito mesmo - peguei essa cópia do WSAD em um DVD, transferi para CDs, e deu 4 CDs (e não veio o help completo, que vem em um CD separado e deve ser baixada do site...). (Se você não sabe, o WSAD é a versão paga do Eclipse - e põe paga nisso, não é barato - , com um monte de coisas que não vêm no Eclipse). Aí é só iniciar a instalação e pronto! Algumas horas depois (e se você tiver uma máquina bem vagabunda, tipo P4 2.8GHz com 1GB de memória e um HD de 7200 RPM ou mais rápido) você vai rodar o tal do WSAD. Haja paciência - só se você trabalhar com IBM WebSphere (muita gente hoje em dia está usando, olha a dica).

É claro que é melhor baixar o J2SDK, instalar, e então o Eclipse. Não esquecer que tem uma dicazinha para o Eclipse - pode ser que já haja uma JVM instalada na sua máquina, mas versão 1.2 ou 1.3. O Eclipse 3.0 requer JVM versão 1.4, se for o caso, em vez de iniciar o eclipse com

c:\eclipse\eclipse.exe (ou seja, double-click simples no diretório do Eclipse)

não se esqueça de instalar o J2SDK 1.4, e você deve criar um shortcut (no seu desktop, ou onde você achar melhor) que dê o comando:

C:\eclipse\eclipse.exe -vm c:\j2sdk1.4.2_05\jre\bin\javaw.exe

Troque "c:\j2sdk1.4.2_05\" pelo diretório onde ficou instalado o Java. Se você é daqueles caras que adora colocar os programas no diretório "C:\Arquivos de Programas\", (em Portugal eles são mais espertos, o nome do diretório no Windows em "Iberian Portuguese" é "C:\Programas\" e não tem espaços bobos no nome) você precisa colocar aspas. Assim, por exemplo:

C:\eclipse\eclipse.exe -vm "c:\Arquivos de Programas\java\j2sdk1.4.2_05\jre\bin\javaw.exe"
JCIFS NTLM HTTP Authentication
Aparece isto no seu crash dump: \winnt\system32\EXPSRV.DLL

Dei uma olhada e isso parece ser de algo que usa VBA, não exatamente C++ (para uma aplicação C++ usar tal coisa o programador tem de se esforçar muito...)

Talvez você precise de pedir pro cara que escreveu e compilou a DLL aplicar um service pack no compilador (Visual Studio?) e mandar uma versão corrigida.
Que eu saiba, o único "bit" que tem tamanho de 1 bit no Java padrão é aquele armazenado em um java.util.BitSet (obviamente descontando o "overhead" ).
O tamanho de um boolean é o que o compilador e a JVM acharem melhor. Por exemplo, se você fuçar naquele documento ultrafácil de ler ( The Java Virtual Machine Specification, 2nd Ed., vai ver isto:

3.3.4 The boolean Type
Although the Java virtual machine defines a boolean type, it only provides very limited support for it. There are no Java virtual machine instructions solely dedicated to operations on boolean values. Instead, expressions in the Java programming language that operate on boolean values are compiled to use values of the Java virtual machine int data type.
The Java virtual machine does directly support boolean arrays. Its newarray instruction enables creation of boolean arrays. Arrays of type boolean are accessed and modified using the byte array instructions baload and bastore.2

The Java virtual machine encodes boolean array components using 1 to represent true and 0 to represent false. Where Java programming language boolean values are mapped by compilers to values of Java virtual machine type int, the compilers must use the same encoding

2 In Sun's JDK releases 1.0 and 1.1, and the Java 2 SDK, Standard Edition, v1.2, boolean arrays in the Java programming language are encoded as Java virtual machine byte arrays, using 8 bits per boolean element.


Isto em português quer dizer que se você tiver um array de boolean, internamente é considerado como um array de byte pela JVM da Sun, com um byte para cada boolean. Se você tiver uma variável boolean, ela pode ocupar 4 bytes (o tamanho de um int), mas isso depende da implementação e da versão - pode ser que isso tenha mudado no Tiger; depende de olhar o código gerado pelo javac da versão Java 5.0.
Você está chamando isso direto do seu código, ou tem algum "wrapper" (como CComBSTR)?
Nada que um pouco de dinheiro não resolva...

Arranje um trial do IBM Rational PurifyPlus (esse mais para vazamentos de memória) ou do Compuware NuMega, instale, pegue sua aplicação, rode e veja o que ocorre.

Não programe em C++ sem ter esses aplicativos para ajudar a debugar. Não são baratos, mas valem cada centavo que se paga.

Por exemplo, você consegue pegar um vazamento de memória federal (no sentido pornográfico da coisa) que demora dias para conseguir derrubar a máquina. Digo federal porque é literalmente impossível conseguir determinar a causa sem ter uma ferramenta dessas.

- P.S. Que Windows 2003 que você está usando aí? No Windows 2003 (pelo menos na versão Server Standard) o diretório de sistema é C:\WINDOWS\SYSTEM32, não C:\WINNT\SYSTEM32, a menos que você tenha feito o upgrade a partir de uma máquina 2000 (feio, muito feio - porque não instalou do zero? Você conhece a Microsoft...)
Para baixar a especificação da Febraban:

http://www.febraban.org.br/Arquivo/Servicos/Downloads/download_lista.asp?id_comissao=8

Ache um link que diz:
Layout padrão codigo de Barras Arrecadação - Versão 03

Codbar3-v2005.zip

Esse .zip tem um documento MS-Word.

Dica: para gerar o código de barras, use 4 imagens ("preto largo", "preto estreito", "branco largo" e "branco estreito") e faça tudo com HTML. É mais fácil, dá menos trabalho (e menos problemas!) que gerar um grande GIF ou PNG e baixar a imagem inteira. Acho que quase todos os boletos, hoje em dia, são gerados assim.
(é claro que se seu cliente quer um boleto perfeito, que não fica com o texto numa página e o código de barras na outra - puxa, isso acontece... - você deve gerar um GIF ou PNG gigantesco, que fica do jeito que ele quer, ou um PDF, que fica perfeito, mas requer um bocado de CPU.)
Disclaimer:
Não conheço o MySQL e não sei em que ambiente você está rodando (você não explicou...)

Palpite:
Se você estiver usando Windows e puder baixar a ferramenta TCPVIEW do site http://www.sysinternals.com (de graça e super-bem documentada, só não tem o fonte) , você consegue saber em que portas qualquer programa está atendendo.
Ele mostra:
- nome do executável;
- Process ID;
- Protocolo (TCP/UDP);
- Endereço:porta;
- Estado da conexão (LISTENING, ESTABLISHED etc.)
Isso tira um monte de dúvidas. Um dia, por exemplo, instalei o Oracle em uma máquina com Tomcat, e acabei descobrindo que o Oracle também tenta escutar na porta 8080, 9090 etc. (ele tem um servidor Apache interno rodando JServ) - já viu o que aconteceu. Com o TCPVIEW eu consegui saber exatamente quem estava tentando atender em que porta.

Atenção: se ele estiver mostrando endereço:nome em vez de endereço:porta, é porque ele leu o nome da porta no arquivo \winnt\system32\drivers\etc\services (ou \windows\system32\drivers\etc\services, ou \windows\services - depende da sua versão do Windows), e mostra o nome. Por exemplo, se você tem um IIS atendendo na porta 80, aparece como "http" e não como "80".

Se você estiver usando o Linux ou o Unix, você tem a ferramenta netstat (nem todos os usuários podem usar o netstat diretamente; se você estiver logado como root, consegue usar o netstat).

netstat -an

vai mostrar um monte de portas, só não diz qual é o nome do executável que está em "LISTENING"...
Depois que a Sun recebeu US$ 1,6 Bilhões de dólares da Microsoft para entrarem em acordo judicial sobre o Java, só falta o fórum trocar Sun por $un...

http://www.microsoft.com/presspass/press/2004/apr04/04-02SunAgreementPR.asp

O que interessa no link acima:

The agreements involve payments of $700 million to Sun by Microsoft to resolve pending antitrust issues and $900 million to resolve patent issues. In addition, Sun and Microsoft have agreed to pay royalties for use of each other's technology, with Microsoft making an up-front payment of $350 million and Sun making payments when this technology is incorporated into its server products.
É que o código PHP deste fórum, ou sua customização, tem alguma coisa que substitui "microsoft" por "micro$oft"... Tem de escrever "microsoft" para ele não ficar mudando...
Esse problema apareceu no forum.java.sun.com e o que foi concluído é que é mais difícil do que parece. Basicamente não há informação "direta" suficiente para que você possa fazer isso sem ter de varrer o CLASSPATH, procurar todas as classes, e enumerá-las.
A razão pode ser até entendida se você lembrar que:
- O Java carrega as classes só quando precisa;
- Nem todas as classes de um pacote precisam estar no mesmo diretório;
- Você pode acrescentar classes dinamicamente.
http://java.sun.com/docs/books/tutorial/index.html

-

ou

-

compre o livro (está traduzido para o português, você deve ter um colega que tem esse livro se você estiver sem dinheiro...)
 
Índice dos Fóruns » Perfil de thingol » Mensagens enviadas por thingol
Ir para:   
Powered by JForum 2.1.8 © JForum Team