Melhorar código Java

Método de pagamento: Verificado


Realizado
Descrição:
Eu tenho um serviço desenvolvido em java que consiste na transmissão de  dados por socket baseado em um layout de dados eu posto uma chave numérica proveniente de uma tabela na base de dados.
Atualmente o código me permite somente enviar um numérico de 1 a 9999 e eu preciso aumentar a capacidade numérica enviada.

Este pacote de dados é implementado e enviado, dentro do sistema pelo código descrito abaixo em java:

if (type == MSG_GPS || type == MSG_GPS_LBS || type == MSG_GPS_LBS_STATUS || type == MSG_GPS_PHONE) {
    try {
        Command cmd = getDataManager().getCommandById(deviceId);
        if ((cmd.getCommand() != null) && (!cmd.getCommand().equals(""))) {
            String strcmd = cmd.getCommand().trim();
            ChannelBuffer bufcmd = ChannelBuffers.directBuffer(100);

            bufcmd.writeByte(0x78);
            bufcmd.writeByte(0x78);
            bufcmd.writeByte((5 + strcmd.length()));
            bufcmd.writeByte(0x80);
            bufcmd.writeByte((4 + strcmd.length()));

            long serverBitFlag = (long) cmd.getId(); //codigo numerico
            String sbf = String.valueOf(serverBitFlag);
            while (sbf.length() < 4) {
                sbf = "0" + sbf;
            }
            byte[] array = new byte[4];
            for (int i = 0; i < sbf.length(); i++) {
                array[i] = (byte) Character.getNumericValue(sbf.charAt(i));
            }

            bufcmd.writeByte(array[0]);
            bufcmd.writeByte(array[1]);
            bufcmd.writeByte(array[2]);
            bufcmd.writeByte(array[3]);

            bufcmd.writeBytes(ChannelBuffers.copiedBuffer(strcmd, CharsetUtil.US_ASCII));
2            bufcmd.writeShort(buf.readUnsignedShort());
            bufcmd.writeShort(Crc.crc16Ccitt(bufcmd.toByteBuffer(2, 4)));
            bufcmd.writeByte(0x0D);
            bufcmd.writeByte(0x0A);
            channel.write(bufcmd);               
            Log.info("Sent Command: " + strcmd);            
            return null;
        }
    } catch (Exception error) {
        Log.warning("Error to sent command: " + error.toString());
    }
}

(...)

Por sua vez é enviada para o dispositivo e o mesmo executa o comando e retorna para o servidor outro pacote que é lido pela implementação:

if (type == MSG_STRING) {
    Command cmd = new Command();
    cmd.setDeviceId(deviceId);
    int commandLength = buf.readByte();

    //recebe codigo numerico
    StringBuilder id = new StringBuilder();
    for (int i = 0; i < 4; i++) {
        int b = buf.readUnsignedByte();
        id.append(b);
    }
    cmd.setId(Long.parseLong(id.toString()));

    StringBuilder content = new StringBuilder();
    for (int i = 0; i < commandLength; i++) {
        byte c = buf.readByte();
        content.append((char) c);
    }
    cmd.setReturned(content.toString());
    Log.warning("Command response - id:" + cmd.getId().toString() + " device:" + cmd.getDeviceId().toString() + " return:" + cmd.getReturned());
    return cmd;
}


(...)

O arquivo completo da implementação java, está anexo e para maiores dúvidas entre em contato.

Categoria: TI e Programação

Java C

Arquivos anexados:

Aberto

Orçamento

1

Propostas

1

Freelancers interessados

Publicado: há 5 anos

Prazo de Entrega: 1 dia

Crie seu próprio projeto

Você está procurando um freelancer para realizar um projeto parecido? Crie seu próprio projeto e você receberá ofertas dos melhores freelancers.


Freelancers que já se candidataram para este trabalho

Cris S.Desenvolvedor de software back-end e front-end. Mais detalhes