Autor Tópico: Software: MTKRemote  (Lida 13571 vezes)

0 Membros e 1 Visitante estão vendo este tópico.

Offline Jefferson

  • Zelador
  • Hero Member
  • *****
  • Mensagens: 1854
  • Aprovação: +0/-0
    • Ver Perfil
    • http://ryan.com.br
Re: Software: MTKRemote
« Responder #10 Online: Março 27, 2009, 07:21:30 pm »

Humm...interessante. Olhando pelo regedit do meu Wine, em "HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\", só aparece a chave "Scsi". Então deve ser isso. O Wine parece não enumerar as seriais no registro. Deixa do jeito que está que eu vou tentar modificar as coisas aqui no Wine então.

Outras informações que podem ajudar:

As portas só são enumeradas quando o form de configuração é criado e isso só ocorre uma vez, logo ao executar o programa.

Quando o programa é executado, lê o INI e configura a porta de acordo. O conteúdo do diálogo de configuração é ignorado até o momento em que você clicar em Configurar... . Nesse ponto o diálogo é preenchido com a configuração da porta (lida no INI) e qualquer mudança é carregada na porta quando você clica OK no diálogo. Como a porta configurada manualmente não bate com nenhuma obtida por enumeração isso pode criar um problema se você clicar em OK depois de entrar no diálogo, mesmo que não salve nada.

Tendo isso em mente, se você configurar a porta manualmente no INI e não entrar no diálogo de configuração, deve funcionar. Se não funcionar, o problema não é apenas de enumeração.
http://jefferson-ryan.blogspot.com
http://ryan.com.br

Se o que você escreve não merece sua atenção, vai merecer a atenção de quem?!

Offline Jefferson

  • Zelador
  • Hero Member
  • *****
  • Mensagens: 1854
  • Aprovação: +0/-0
    • Ver Perfil
    • http://ryan.com.br
Re: Software: MTKRemote
« Responder #11 Online: Março 27, 2009, 08:15:36 pm »
Eu só encontrei um motivo para seu problema estar acontecendo, se não for na enumeração.

Todos os exemplos que encontrei de como se abre uma porta serial são mais ou menos assim (exemplos simplificados):

CreateFile(Portname,...

Já a rotina que utilizo abre a porta assim:

CreateFile('\\.\'+Portname...

E eu não consigo encontrar a razão para esse '\\.\' antes do nome da porta. Se você não conseguir fazer funcionar corrigindo a enumeração eu vou remover isso do programa para você testar.

Edit: O propósito de '\\.\' é esclarecido aqui:

Lembrando que para o DOS/Windows portas seriais são como arquivos.
« Última modificação: Abril 10, 2009, 06:48:00 am por Jefferson »
http://jefferson-ryan.blogspot.com
http://ryan.com.br

Se o que você escreve não merece sua atenção, vai merecer a atenção de quem?!

FORUM.RYAN.COM.BR

Re: Software: MTKRemote
« Responder #11 Online: Março 27, 2009, 08:15:36 pm »

Offline rictad

  • Hacker Honorário
  • Colaboradores
  • Papagaio
  • *
  • Mensagens: 285
  • Aprovação: +59/-0
    • Ver Perfil
Re: Software: MTKRemote
« Responder #12 Online: Março 27, 2009, 10:01:24 pm »
Eu só encontrei um motivo para seu problema estar acontecendo, se não for na enumeração.

Todos os exemplos que encontrei de como se abre uma porta serial são mais ou menos assim (exemplos simplificados):

CreateFile(Portname,...

Já a rotina que utilizo abre a porta assim:

CreateFile('\\.\'+Portname...

E eu não consigo encontrar a razão para esse '\\.\' antes do nome da porta. Se você não conseguir fazer funcionar corrigindo a enumeração eu vou remover isso do programa para você testar.

Lembrando que para o DOS/Windows portas seriais são como arquivos.

Bom, depois que eu incluí as chaves das seriais no registro (realmente, no wiki do wine o pessoal relatou que isso é necessário para que alguns programas funcionem), o programa passou a listar as COMs. O estranho é que independente do valor que estiver no INI, quando eu clico em  configurar, sempre aparece pré-selecionada a COM2. Mas como você falou que se não clicar em configurar, vale o que está no INI, pois isso é carregado inicialmente, acho que já está no ponto, mas ainda não funciona.

Então, fui fazer o teste completo no windows. Antes havia feito o teste só com o cabo, sem o player, só para ver as portas seriais (pois teria que levar o player e a tv para o outro cômodo). Mas no windows ele não consegue fazer a comunicação também. Eu acho que talvez seja o meu chip! Por exemplo, o MTKTool só consegue realizar 3 operações: extrair o firmware, gravar o firmware e enviar bytes para endereços de memória, tipo XRAM DATA. Mas o resto, não faz nada. Não consigo ler a memória (apesar de poder gravar nela), nem ler ou gravar registradores, nem EEPROM e nem nada mais. Sempre achei que poderia ser devido a incompatibilidade. Pode ser o caso?

Offline Jefferson

  • Zelador
  • Hero Member
  • *****
  • Mensagens: 1854
  • Aprovação: +0/-0
    • Ver Perfil
    • http://ryan.com.br
Re: Software: MTKRemote
« Responder #13 Online: Março 27, 2009, 10:17:50 pm »

Bom, depois que eu incluí as chaves das seriais no registro (realmente, no wiki do wine o pessoal relatou que isso é necessário para que alguns programas funcionem), o programa passou a listar as COMs. O estranho é que independente do valor que estiver no INI, quando eu clico em  configurar, sempre aparece pré-selecionada a COM2. Mas como você falou que se não clicar em configurar, vale o que está no INI, pois isso é carregado inicialmente, acho que já está no ponto, mas ainda não funciona.

COM2 é a porta default. Ela é escolhida se houver uma enumeração mas o nome corrente da porta não bater com nenhuma das opções enumeradas. Isso pode acontecer se o valor no INI for inválido (por exemplo "COM 1" ou "COM1:" quando o certo é "COM1").

Para se certificar de que não seja isso, escolha uma porta que não seja COM2 pelo diálogo, clique em OK e depois em Salvar (apenas porta serial). Isso vai gravar o INI no formato correto.

Então, fui fazer o teste completo no windows. Antes havia feito o teste só com o cabo, sem o player, só para ver as portas seriais (pois teria que levar o player e a tv para o outro cômodo). Mas no windows ele não consegue fazer a comunicação também. Eu acho que talvez seja o meu chip! Por exemplo, o MTKTool só consegue realizar 3 operações: extrair o firmware, gravar o firmware e enviar bytes para endereços de memória, tipo XRAM DATA. Mas o resto, não faz nada. Não consigo ler a memória (apesar de poder gravar nela), nem ler ou gravar registradores, nem EEPROM e nem nada mais. Sempre achei que poderia ser devido a incompatibilidade. Pode ser o caso?

Acho que não, porque a operação que faço é justamente gravar em XRAM DATA.
http://jefferson-ryan.blogspot.com
http://ryan.com.br

Se o que você escreve não merece sua atenção, vai merecer a atenção de quem?!

Offline rictad

  • Hacker Honorário
  • Colaboradores
  • Papagaio
  • *
  • Mensagens: 285
  • Aprovação: +59/-0
    • Ver Perfil
Re: Software: MTKRemote
« Responder #14 Online: Março 27, 2009, 10:38:14 pm »
COM2 é a porta default. Ela é escolhida se houver uma enumeração mas o nome corrente da porta não bater com nenhuma das opções enumeradas. Isso pode acontecer se o valor no INI for inválido (por exemplo "COM 1" ou "COM1:" quando o certo é "COM1").

Para se certificar de que não seja isso, escolha uma porta que não seja COM2 pelo diálogo, clique em OK e depois em Salvar

Certo, verifiquei o INI, estava "COM4". Fui em configurar, selecionei COM3, 115000 e salvei. Verifiquei no INI, e estava COM3 e 115000. Abri o programa, mas quando fui em configurar apareceu, inicialmente, COM2 e 9600. Mas, enfim, são coisas do wine/linux. Acho que se não mexer no configurar, fica tudo certo. O problema é que a comunicação não está funcionando, mesmo no windows. Tentei por diversas vezes. E o MTKTool lá funciona. Não sei se falei, mas o cabo é USB! É o Prolific PL 2303, portanto eu uso aquele driver de celular.

De qualquer forma, a tabela que você incluiu já é de grande ajuda. Vou usar os códigos no MTKTool.

 
« Última modificação: Março 27, 2009, 11:01:02 pm por rictad »

FORUM.RYAN.COM.BR

Re: Software: MTKRemote
« Responder #14 Online: Março 27, 2009, 10:38:14 pm »