public boolean commandProgramInternalMemory(){
			UrpPkg pkg = new UrpPkg();
			UrpCmd cmd = new UrpCmd();
			cmd.setCmdID(COMMAND_ProgramInternalMemory);
			cmd.setdLen(0);
			pkg.setCmdFlag(COMMAND_FLAG);
			pkg.setCmd(cmd);
			pkg.setSeqID(++MainFrame.sequence);
			//Maximum time is approximately around 5 minutes for gain maps, so time out = 300000
			UrpPkg reply = _UDPCommunication.send(detectorIp, detectorPort, pkg,false,300000);
			UrpCmd urpcmd = reply.getCmd();
			if(urpcmd!=null){
				byte[] data = urpcmd.getData();
				byte status  = data[0];
//				0x00 : Download okay
//				 0x01 : Size incorrect
//				 0x02: Unknown ‘Download Identifier’ (this
//				error should have been returned earlier in the
//				last ‘Configure Download Reply’)
//				 0x04: Download data CRC Check failed.
//				 0x05:Internal Memory Access Error.
//				 0x06: Internal Memory Write Error.
//				 0x07: Internal Memory CRC Error.
				
				if(status == 0x00){
					logger.info("[Program Internal Memory]:Download okay");
					return true;
				}else if(status == 0x01){
					logger.error("[Program Internal Memory]:Size incorrect");
				}else if(status == 0x02){
					logger.error("[Program Internal Memory]:Unknown ‘Download Identifier’ (this error should have been returned earlier in the last ‘Configure Download Reply’)");
				}else if(status == 0x04){
					logger.error("[Program Internal Memory]: Download data CRC Check failed.");
				}else if(status == 0x05){
					logger.error("[Program Internal Memory]: Internal Memory Access Error.");
				}else if(status == 0x06){
					logger.error("[Program Internal Memory]: Internal Memory Write Error.");
				}else if(status == 0x07){
					logger.error("[Program Internal Memory]: Internal Memory CRC Error.");
				}
				
			}
			return false;
	}