none
Escrevendo em Porta Serial RRS feed

  • Pergunta

  • Bom dia!

    Tenho uma rotina em java para imprimir em porta serial que preciso passar parao c#,  os comando são bem semelhantes, mas acredito ter esbarrado em algumas diferenças:
    // Java

    //Envia Dados
                stValue = "748";      //Banco
                btCmds[1] = (byte)0xA2;    
                btCmds[0] = 0x1B;    
                for(wdCnt=0;wdCnt < stValue.length() ;wdCnt++ ){
                    btCmds[wdCnt+2] = stValue.getBytes()[wdCnt];
                    }
                    btCmds[wdCnt+2] = 0x0D;
                    szCmds = wdCnt+3;     
                    for(int Count = 0;Count <  szCmds; Count ++) 
                        { serialPort.writeByte(btCmds[Count]); }

    No caso do Java ele faz um for para ir enviando byte por byte,   me parece que no C#  você já coloca o inicio e fim,  estou certo?
    como ficaria este comando no c#  com base no codigo acima.

    Write(Byte[], Int32, Int32)

    se coloco desta forma, da erro na variavel int 

    { serialPort.Write (btCmds[Count],0,szCmds); }



    terça-feira, 24 de setembro de 2019 12:50

Todas as Respostas

  • Bom dia!

    Tenho uma rotina em java para imprimir em porta serial que preciso passar parao c#,  os comando são bem semelhantes, mas acredito ter esbarrado em algumas diferenças:
    // Java

    //Envia Dados
                stValue = "748";      //Banco
                btCmds[1] = (byte)0xA2;    
                btCmds[0] = 0x1B;    
                for(wdCnt=0;wdCnt < stValue.length() ;wdCnt++ ){
                    btCmds[wdCnt+2] = stValue.getBytes()[wdCnt];
                    }
                    btCmds[wdCnt+2] = 0x0D;
                    szCmds = wdCnt+3;     
                    for(int Count = 0;Count <  szCmds; Count ++) 
                        { serialPort.writeByte(btCmds[Count]); }

    No caso do Java ele faz um for para ir enviando byte por byte,   me parece que no C#  você já coloca o inicio e fim,  estou certo?
    como ficaria este comando no c#  com base no codigo acima.

    Write(Byte[], Int32, Int32)

    se coloco desta forma, da erro na variavel int 

    { serialPort.Write (btCmds[Count],0,szCmds); }



    eu tenho mudar  a array para char?
    //byte[] btCmds = byte[200];
    char[] btCmds = new char[200];


    terça-feira, 24 de setembro de 2019 13:07