/** * Método que permite escribir el valor de un slot. * * @param slot Dirección de memoria donde se guardan los parámetros de la locomotora. * @param stat * @param Lok * @param speed * @param dirf * @param trk * @param ss2 * @param addr2 * @param snd * @param id1 * @param id2 * @return */ public static byte[] slot_DataWrite( int slot, int stat, int Lok, int speed, int dirf, int trk, int ss2, int addr2, int snd, int id1, int id2) { Message miss = new Message(14); miss.setByte(0, (byte) OPC_WR_SL_DATA); miss.setByte(1, (byte) 0x0E); miss.setByte(2, (byte) slot); miss.setByte(3, (byte) stat); miss.setByte(4, (byte) Lok); miss.setByte(5, (byte) speed); miss.setByte(6, (byte) dirf); miss.setByte(7, (byte) trk); miss.setByte(8, (byte) ss2); miss.setByte(9, (byte) addr2); miss.setByte(10, (byte) snd); miss.setByte(11, (byte) id1); miss.setByte(12, (byte) id2); miss.calculateChecksum(); return (miss.getMiss()); }
/** * Método que permite cambiar la velocidad de una locomotora. * * @param slot Dirección de memória del decoder donde se guardan los parámetros de la locomotora. * @param speed Nueva velocidad de la locomotora. * @return */ public static byte[] lok_Speed(int slot, int speed) { Message miss = new Message(4); miss.setByte(0, (byte) OPC_LOCO_SPD); miss.setByte(1, (byte) slot); miss.setByte(2, (byte) speed); miss.calculateChecksum(); return (miss.getMiss()); }
/** * Método que permite asignar el estado de las funciones consist. * * @param slot Dirección de memoria del decoder donde se van a modificar los parámtros del * consist. * @param dirf Dirección y funciones a modificar. * @return Retorna el mensaje que permite modificar las funciones del consist. */ public static byte[] consist_Func(int slot, int dirf) { Message miss = new Message(4); miss.setByte(0, (byte) OPC_CONSIST_FUNC); miss.setByte(1, (byte) slot); miss.setByte(2, (byte) dirf); miss.calculateChecksum(); return (miss.getMiss()); }
/** * Método que permite escribir un estado de Slot. * * @param slot Dirección del slot en el que se quiere escribir. * @param stat Nuevo estado del slot. * @return Retorna el mensaje que permite escribir el slot indicado. */ public static byte[] slot_WriteStat(int slot, int stat) { Message miss = new Message(4); miss.setByte(0, (byte) OPC_SLOT_STAT1); miss.setByte(1, (byte) slot); miss.setByte(2, (byte) stat); miss.calculateChecksum(); return (miss.getMiss()); }
/** * Método que permite mover la información de un slot determinado a otro. * * @param src Dirección del slot que contiene la información de los parámetros que se moverán. * @param dst Dirección del slot de destino que recibirá la información movida. * @return Retorna el mensaje que permite mover la información de un slot a otro. */ public static byte[] slot_Mov(int src, int dst) { Message miss = new Message(4); miss.setByte(0, (byte) OPC_MOVE_SLOT); miss.setByte(1, (byte) src); miss.setByte(2, (byte) dst); miss.calculateChecksum(); return (miss.getMiss()); }
/** * Método que permite deslincar dos slots. * * @param slt1 Dirección del primer slot a deslincar. * @param slt2 Dirección del segundo slot a deslincar. * @return Retorna el mensaje que permite deslincar los dos slots. */ public static byte[] slot_Unlink(int slt1, int slt2) { Message miss = new Message(4); miss.setByte(0, (byte) OPC_UNLINK_SLOTS); miss.setByte(1, (byte) slt1); miss.setByte(2, (byte) slt2); miss.calculateChecksum(); return (miss.getMiss()); }
/** * Método que permite conocer el estado de un slot. * * @param slot Dirección del slot del que se quiere conocer el estado. * @return Retorna el mensaje que permite conocer el estado de un slot. */ public static byte[] slot_State(int slot) { Message miss = new Message(4); miss.setByte(0, (byte) OPC_RQ_SL_DATA); miss.setByte(1, (byte) slot); miss.setByte(2, (byte) 0x00); miss.calculateChecksum(); return (miss.getMiss()); }
/** * Método que permite obtener el estado de un desvio o de un semáforo. * * @param addr Identificador del desvio o semáforo del que se quiere conocer el estado. * @return Retorna el mensaje que permite conocer el estado de un desvio o semáforo. */ public static byte[] trn_State(int addr) { Message miss = new Message(4); miss.setByte(0, (byte) OPC_SW_STATE); miss.setByte(1, (byte) (addr & 0x7F)); miss.setByte(2, (byte) ((addr >> 7 & 0x0F))); miss.calculateChecksum(); return (miss.getMiss()); }
/** * @param lopc * @param ack * @return */ public static byte[] longAck(int lopc, int ack) { Message miss = new Message(4); miss.setByte(0, (byte) OPC_LONG_ACK); miss.setByte(1, (byte) lopc); miss.setByte(2, (byte) ack); miss.calculateChecksum(); return (miss.getMiss()); }
/** * @param addr * @param on_off_value * @return */ public static byte[] swich_Req(int addr, ON_OFF on_off_value) { Message miss = new Message(4); addr--; miss.setByte(0, (byte) OPC_SW_REQ); miss.setByte(1, (byte) (addr & 0x7F)); miss.setByte(2, (byte) (on_off_value.value | (addr >> 7 & 0x0F))); miss.calculateChecksum(); return (miss.getMiss()); }
/** * Método que permite recibir el estado de una locomotora. * * @param addr Identificación de una locomotora de la que se quiere obtener el estado. * @return Retorna el mensaje que permite recibir como respuesta el estado de la locomotora. */ public static byte[] lok_State(int addr) { byte lowLokAddress = (byte) (addr & 0x00FF); byte highLokAddress = (byte) (addr >> 8 & 0xFF); Message miss = new Message(4); miss.setByte(0, (byte) OPC_LOCO_ADR); miss.setByte(1, (byte) highLokAddress); miss.setByte(2, (byte) lowLokAddress); miss.calculateChecksum(); return (miss.getMiss()); }
/** * Método que permite cambiar el valor de las funciones del slot de dirección. * * @param slot Dirección de memória del decoder donde se guardan los parámetros de la locomotora. * @param dirf Valor de la dirección de locomotora y funciones. * @return Retorna el mensaje que permite cambiar el valor de las funciones del slot de dirección. */ public static byte[] lok_DirF(int slot, int dirf) { // Dirf = 0 Direction number 1 of locomotive // Dirf = 32 dirction number 2 of locomotive Message miss = new Message(4); miss.setByte(0, (byte) OPC_LOCO_DIRF); miss.setByte(1, (byte) slot); miss.setByte(2, (byte) dirf); miss.calculateChecksum(); return (miss.getMiss()); }
/** * @param src * @param dstl * @param dsth * @param pxct1 * @param d1 * @param d2 * @param d3 * @param d4 * @param pxct2 * @param d5 * @param d6 * @param d7 * @param d8 * @return */ public static byte[] peerXFer( int src, int dstl, int dsth, int pxct1, int d1, int d2, int d3, int d4, int pxct2, int d5, int d6, int d7, int d8) { Message miss = new Message(14); miss.setByte(0, (byte) 0xE5); miss.setByte(1, (byte) 0x0F); miss.setByte(2, (byte) src); miss.setByte(3, (byte) dstl); miss.setByte(4, (byte) dsth); miss.setByte(5, (byte) pxct1); miss.setByte(6, (byte) d1); miss.setByte(7, (byte) d2); miss.setByte(8, (byte) d3); miss.setByte(9, (byte) d4); miss.setByte(10, (byte) pxct2); miss.setByte(11, (byte) d5); miss.setByte(12, (byte) d6); miss.setByte(13, (byte) d7); miss.setByte(14, (byte) d8); miss.calculateChecksum(); return (miss.getMiss()); }
/** * @param reps * @param dhi * @param im1 * @param im2 * @param im3 * @param im4 * @param im5 * @return */ public static byte[] immPacket(int reps, int dhi, int im1, int im2, int im3, int im4, int im5) { Message miss = new Message(14); miss.setByte(0, (byte) 0xED); miss.setByte(1, (byte) 0x0B); miss.setByte(2, (byte) 0x7F); miss.setByte(3, (byte) reps); miss.setByte(4, (byte) dhi); miss.setByte(5, (byte) im1); miss.setByte(6, (byte) im2); miss.setByte(7, (byte) im3); miss.setByte(8, (byte) im4); miss.setByte(9, (byte) im5); miss.calculateChecksum(); return (miss.getMiss()); }
/** * Método que permite conocer el estado de un desvio o semáforo. * * @param addr Dirección del sensor. * @param IO Por defecto este valor es 1. * @param sI Fuente de entrada. * @param sL Bit de control. * @return Retorna el mensaje que permite conocer el estado de un desvio o un semáforo. */ public static byte[] sensor_State(int addr, boolean IO, boolean sI, boolean sL) { int stateIO = 0; if (IO) { stateIO = 1; } int stateI = 0; if (sI) { stateI = 1; } int stateL = 0; if (sL) { stateL = 1; } byte stateIL = (byte) ((byte) (((stateIO << 1) | stateI) << 1) | stateL); Message miss = new Message(4); addr--; miss.setByte(0, (byte) OPC_SW_REP); miss.setByte(1, (byte) (addr & 0x7F)); miss.setByte(2, (byte) ((stateIL << 4) | (addr >> 7 & 0x0F))); miss.calculateChecksum(); return (miss.getMiss()); }
/** * Método que permite escribir los valores de un sensor. * * @param addr Dirección del sensor. * @param sI Fuente de entrada. * @param sL Nivel del sensor. * @param sX Bit de control. * @return Retorna el mensaje que permite escribir los valores de un sensor. */ public static byte[] sensor_Write(int addr, boolean sI, boolean sL, boolean sX) { int stateI = 0; if (sI) { stateI = 1; } int stateL = 0; if (sL) { stateL = 1; } int stateX = 0; if (sX) { stateX = 1; } byte stateILX = (byte) ((byte) (((stateI << 1) | stateL) << 1) | stateX); Message miss = new Message(4); addr--; miss.setByte(0, (byte) OPC_INPUT_REP); miss.setByte(1, (byte) (addr & 0x7F)); miss.setByte(2, (byte) ((stateILX << 4) | (addr >> 7 & 0x0F))); miss.calculateChecksum(); return (miss.getMiss()); }
/** * Método que permite forzar idle en el decoder. * * @return Retorna el mensaje que permite comunicar al decoder que debe forzar idle. */ public static byte[] intelli_idleForce() { Message miss = new Message(2); miss.setByte(0, OPC_IDLE); miss.calculateChecksum(); return (miss.getMiss()); }
/** * Método que permite mantener el decoder en estado ocupado. * * @return Retorna el mensaje que permite comunicar al decoder que debe mantenerse en estado * ocupado. */ public static byte[] intelli_Bussy() { Message miss = new Message(2); miss.setByte(0, OPC_BUSY); miss.calculateChecksum(); return (miss.getMiss()); }