static int hexMode = HEXMODE;
-static const char trbcmd_version[] = "$Revision: 2.48 $";
+static const char trbcmd_version[] = "$Revision: 2.49 $";
#define BACKLOG 10
static uint16_t tcp_port = 55555;
static int tcp_debug = 0; /* turn to 0 to suppress TCP/IP output */
-static FILE* STDOUT = NULL;
-static FILE* STDERR = NULL;
-
/* ---- User Buffer Size ----------------------------------------------- */
static size_t NUM_ENDPOINTS = 1024; /* Maximum of 16KByte */
void usage(const char *progName)
{
- fprintf(STDOUT, "Usage: %s [-h] [-f script-file] [-n number] [-d level] "
+ fprintf(stdout, "Usage: %s [-h] [-f script-file] [-n number] [-d level] "
"[-H] [-V] <COMMAND>\n", progName);
- fprintf(STDOUT, "Options:\n");
- fprintf(STDOUT, " -h give this help\n");
- fprintf(STDOUT, " -f execute commands given in script-file\n");
- fprintf(STDOUT, " -n repeat COMMAND number times, -1 = endless loop\n");
- fprintf(STDOUT,
+ fprintf(stdout, "Options:\n");
+ fprintf(stdout, " -h give this help\n");
+ fprintf(stdout, " -f execute commands given in script-file\n");
+ fprintf(stdout, " -n repeat COMMAND number times, -1 = endless loop\n");
+ fprintf(stdout,
" -M turn on HighMemoryMode (maximum usage is 20MByte, default: "
"3MByte)\n");
- fprintf(STDOUT, " -d turn on Debugging Information\n");
- fprintf(STDOUT, " level 1: TRB_Package debugging\n");
- fprintf(STDOUT, " level 2: +FIFO debugging\n");
- fprintf(STDOUT, " -D FIFO DMA-Mode\n");
- fprintf(STDOUT,
+ fprintf(stdout, " -d turn on Debugging Information\n");
+ fprintf(stdout, " level 1: TRB_Package debugging\n");
+ fprintf(stdout, " level 2: +FIFO debugging\n");
+ fprintf(stdout, " -D FIFO DMA-Mode\n");
+ fprintf(stdout,
" -H hex-mode: all arguments will be interpreted "
"as hexadecimal-numbers\n");
- fprintf(STDOUT, " -V version number\n");
- fprintf(STDOUT, "\nCommands:\n");
- fprintf(STDOUT, " r <trbaddress> <register> -> "
+ fprintf(stdout, " -V version number\n");
+ fprintf(stdout, "\nCommands:\n");
+ fprintf(stdout, " r <trbaddress> <register> -> "
"read register\n");
- fprintf(STDOUT, " w <trbaddress> <register> <data> -> "
+ fprintf(stdout, " w <trbaddress> <register> <data> -> "
"write register\n");
- fprintf(STDOUT, " rm <trbaddress> <register> <size> <mode> -> "
+ fprintf(stdout, " rm <trbaddress> <register> <size> <mode> -> "
"read register-memory\n");
- fprintf(STDOUT, " wm <trbaddress> <register> <mode> <file> -> "
+ fprintf(stdout, " wm <trbaddress> <register> <mode> <file> -> "
"write to register-memory\n"
" "
"from ASCII-file\n"
" "
"('-' = stdin)\n");
- fprintf(STDOUT, " i <trbaddress> -> "
+ fprintf(stdout, " i <trbaddress> -> "
"read unique ID\n");
- fprintf(STDOUT, " s <uid> <endpoint> <trbaddress> -> "
+ fprintf(stdout, " s <uid> <endpoint> <trbaddress> -> "
"set trb-address\n");
- fprintf(STDOUT, " T <type> <random> <info> <number|%cctr> -> "
+ fprintf(stdout, " T <type> <random> <info> <number|%cctr> -> "
"send trigger\n", '%');
- fprintf(STDOUT, " TR <input> <type> <random> <info> <number|%cctr> -> "
+ fprintf(stdout, " TR <input> <type> <random> <info> <number|%cctr> -> "
"send trigger to RICH only\n", '%');
- fprintf(STDOUT, " I <type> <random> <info> <number|%cctr> -> "
+ fprintf(stdout, " I <type> <random> <info> <number|%cctr> -> "
"read IPU data\n", '%');
- fprintf(STDOUT, " reload <trbaddress> -> "
+ fprintf(stdout, " reload <trbaddress> -> "
"reload FPGA\n");
- fprintf(STDOUT, " reset -> "
+ fprintf(stdout, " reset -> "
"reset TRBNetwork\n");
- fprintf(STDOUT, " comreset -> "
+ fprintf(stdout, " comreset -> "
"reset Etrax-FIFO Logic\n");
- fprintf(STDOUT, " f <channel> -> "
+ fprintf(stdout, " f <channel> -> "
"flush FIFO of channel\n");
- fprintf(STDOUT, " R <register> -> "
+ fprintf(stdout, " R <register> -> "
"read register of the FPGA\n");
- fprintf(STDOUT, " W <register> <value> -> "
+ fprintf(stdout, " W <register> <value> -> "
"write to register of the\n"
" "
"FPGA\n");
- fprintf(STDOUT, " exit/quit -> "
+ fprintf(stdout, " exit/quit -> "
"disconnect from server\n"
" "
"(tcp-server mode only)\n\n");
- fprintf(STDOUT, "Start as TCP/IP-Server:\n");
- fprintf(STDOUT, "Usage: %s [-h] [-d] [-p portnumber] [-b] [-V] tcp\n",
+ fprintf(stdout, "Start as TCP/IP-Server:\n");
+ fprintf(stdout, "Usage: %s [-h] [-d] [-p portnumber] [-b] [-V] tcp\n",
progName);
- fprintf(STDOUT, "Options:\n");
- fprintf(STDOUT, " -h give this help\n");
- fprintf(STDOUT, " -p tcp port number (default: 55555)\n");
- fprintf(STDOUT, " -b run in background as daemon\n");
- fprintf(STDOUT, " -d turn on debugging informations (default: off)\n");
- fprintf(STDOUT, " -V version number\n");
+ fprintf(stdout, "Options:\n");
+ fprintf(stdout, " -h give this help\n");
+ fprintf(stdout, " -p tcp port number (default: 55555)\n");
+ fprintf(stdout, " -b run in background as daemon\n");
+ fprintf(stdout, " -d turn on debugging informations (default: off)\n");
+ fprintf(stdout, " -V version number\n");
}
#define CMD_SIZE 256
if (strlen(scriptFileName) > 0) {
if (strncmp(scriptFileName, "-", 256) == 0) {
scriptFile = stdin;
- fprintf(STDERR, "name: %s\n", "STDIN");
+ fprintf(stderr, "name: %s\n", "STDIN");
} else {
scriptFile = fopen(scriptFileName, "r");
if (scriptFile == NULL) {
- fprintf(STDERR, "Error opening ScriptFile '%s': %s\n",
+ fprintf(stderr, "Error opening ScriptFile '%s': %s\n",
scriptFileName, strerror(errno));
return -1;
}
continue;
} else {
/* Error reading line */
- fprintf(STDERR, "Error reading script-file\n");
+ fprintf(stderr, "Error reading script-file\n");
return -1;
}
}
}
if (scriptFile != NULL) {
- fprintf(STDOUT, "#Line %d: %s\n", lineCtr, cmdLine);
+ fprintf(stdout, "#Line %d: %s\n", lineCtr, cmdLine);
}
}
if (cmdLen != 4) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: Invalid command\n", lineCtr);
+ fprintf(stderr, "Line #%d: Invalid command\n", lineCtr);
} else {
usage(basename(argv[0]));
}
/* DEBUG Info */
if (trb_debug > 0) {
- fprintf(STDERR,
+ fprintf(stderr,
"Command: WRITE: trb_address: 0x%04x, reg_address: 0x%04x, "
"value: 0x%08x\n", trb_address, reg_address, value);
}
if (trb_register_write(trb_address, reg_address, value) == -1) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: ", lineCtr);
+ fprintf(stderr, "Line #%d: ", lineCtr);
}
trb_error("write_register failed");
if (trb_errno != TRB_ENDPOINT_NOT_REACHED) {
if ((trb_term.status_common != 0x01) ||
(trb_term.status_channel != 0)) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: ", lineCtr);
+ fprintf(stderr, "Line #%d: ", lineCtr);
}
- fprintf(STDERR, "WARNING Status-Bits:\n%s\n",
+ fprintf(stderr, "WARNING Status-Bits:\n%s\n",
trb_strterm(trb_term));
}
}
if (cmdLen != 3) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: Invalid command\n", lineCtr);
+ fprintf(stderr, "Line #%d: Invalid command\n", lineCtr);
} else {
usage(basename(argv[0]));
}
/* DEBUG Info */
if (trb_debug > 0) {
- fprintf(STDERR,
+ fprintf(stderr,
"Command: READ: trb_address: 0x%04x, "
"reg_address: 0x%04x\n", trb_address, reg_address);
}
data, NUM_ENDPOINTS * 2);
if (status == -1) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: ", lineCtr);
+ fprintf(stderr, "Line #%d: ", lineCtr);
}
trb_error("read_register failed");
if (trb_errno != TRB_ENDPOINT_NOT_REACHED) {
}
} else {
for (i = 0; i < status; i += 2) {
- fprintf(STDOUT, "0x%04x 0x%08x\n", data[i], data[i + 1]);
+ fprintf(stdout, "0x%04x 0x%08x\n", data[i], data[i + 1]);
}
/* Check Status-Bits */
if ((trb_term.status_common != 0x01) ||
(trb_term.status_channel != 0)) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: ", lineCtr);
+ fprintf(stderr, "Line #%d: ", lineCtr);
}
- fprintf(STDERR, "WARNING Status-Bits:\n%s\n",
+ fprintf(stderr, "WARNING Status-Bits:\n%s\n",
trb_strterm(trb_term));
}
}
if (cmdLen != 5) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: Invalid command\n", lineCtr);
+ fprintf(stderr, "Line #%d: Invalid command\n", lineCtr);
} else {
usage(basename(argv[0]));
}
/* DEBUG Info */
if (trb_debug > 0) {
- fprintf(STDERR,
+ fprintf(stderr,
"Command: READ_MEM: "
"trb_address: 0x%04x, "
"reg_address: 0x%04x, "
size, data, USER_BUFFER_SIZE);
if (status == -1) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: ", lineCtr);
+ fprintf(stderr, "Line #%d: ", lineCtr);
}
trb_error("read_register_mem failed");
if (trb_errno != TRB_ENDPOINT_NOT_REACHED) {
end = p + status;
while (p < end) {
len = (*p >> 16) & 0xffff;
- fprintf(STDOUT, "H: 0x%04x 0x%04x\n", (*p++) & 0xffff, len);
+ fprintf(stdout, "H: 0x%04x 0x%04x\n", (*p++) & 0xffff, len);
for (i = 0; (i < len) && (p < end); i++) {
- fprintf(STDOUT, "0x%04x 0x%08x\n",
+ fprintf(stdout, "0x%04x 0x%08x\n",
(option == 0 ? reg_address + i : i),
*p++);
}
if ((trb_term.status_common != 0x01) ||
(trb_term.status_channel != 0)) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: ", lineCtr);
+ fprintf(stderr, "Line #%d: ", lineCtr);
}
- fprintf(STDERR, "WARNING Status-Bits:\n%s\n",
+ fprintf(stderr, "WARNING Status-Bits:\n%s\n",
trb_strterm(trb_term));
}
}
if (cmdLen != 5) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: Invalid command\n", lineCtr);
+ fprintf(stderr, "Line #%d: Invalid command\n", lineCtr);
} else {
usage(basename(argv[0]));
}
} else {
file = fopen(fileName, "r");
if (file == NULL) {
- fprintf(STDERR, "Error opening file '%s': %s\n",
+ fprintf(stderr, "Error opening file '%s': %s\n",
fileName, strerror(errno));
return -1;
}
/* DEBUG Info */
if (trb_debug > 0) {
- fprintf(STDERR,
+ fprintf(stderr,
"Command: WRITE_MEM: trb_address: 0x%04x, "
"reg_address: 0x%04x, "
"option: %d, "
data, size);
if (status == -1) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: ", lineCtr);
+ fprintf(stderr, "Line #%d: ", lineCtr);
}
trb_error("write_register_memory failed");
if (trb_errno != TRB_ENDPOINT_NOT_REACHED) {
if ((trb_term.status_common != 0x01) ||
(trb_term.status_channel != 0)) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: ", lineCtr);
+ fprintf(stderr, "Line #%d: ", lineCtr);
}
- fprintf(STDERR, "WARNING Status-Bits:\n%s\n",
+ fprintf(stderr, "WARNING Status-Bits:\n%s\n",
trb_strterm(trb_term));
}
}
if (cmdLen != 2) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: Invalid command\n", lineCtr);
+ fprintf(stderr, "Line #%d: Invalid command\n", lineCtr);
} else {
usage(basename(argv[0]));
}
/* DEBUG Info */
if (trb_debug > 0) {
- fprintf(STDERR,
+ fprintf(stderr,
"Command: READ_UID: trb_address: 0x%04x\n", trb_address);
}
status = trb_read_uid(trb_address, uidBuffer, NUM_ENDPOINTS * 4);
if (status == -1) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: ", lineCtr);
+ fprintf(stderr, "Line #%d: ", lineCtr);
}
trb_error("read_uid failed");
if (trb_errno != TRB_ENDPOINT_NOT_REACHED) {
for (i = 0;
((i < (unsigned int)status) && (i < NUM_ENDPOINTS * 4));
i += 4) {
- fprintf(STDOUT, "0x%04x 0x%08x%08x 0x%02x\n",
+ fprintf(stdout, "0x%04x 0x%08x%08x 0x%02x\n",
uidBuffer[i + 3],
uidBuffer[i], uidBuffer[i + 1], uidBuffer[i + 2]);
}
if ((trb_term.status_common != 0x01) ||
(trb_term.status_channel != 0)) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: ", lineCtr);
+ fprintf(stderr, "Line #%d: ", lineCtr);
}
- fprintf(STDERR, "WARNING Status-Bits:\n%s\n",
+ fprintf(stderr, "WARNING Status-Bits:\n%s\n",
trb_strterm(trb_term));
}
}
if (cmdLen != 4) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: Invalid command\n", lineCtr);
+ fprintf(stderr, "Line #%d: Invalid command\n", lineCtr);
} else {
usage(basename(argv[0]));
}
/* DEBUG Info */
if (trb_debug > 0) {
- fprintf(STDERR,
+ fprintf(stderr,
"Command: SET_ADDRESS: "
"uid: 0x%016llx, "
"endpoint: 0x%02x, "
if (trb_set_address(uid, endpoint, trb_address) == -1) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: ", lineCtr);
+ fprintf(stderr, "Line #%d: ", lineCtr);
}
trb_error("set_address failed");
if (trb_errno != TRB_ENDPOINT_NOT_REACHED) {
if ((trb_term.status_common != 0x01) ||
(trb_term.status_channel != 0)) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: ", lineCtr);
+ fprintf(stderr, "Line #%d: ", lineCtr);
}
- fprintf(STDERR, "WARNING Status-Bits:\n%s\n",
+ fprintf(stderr, "WARNING Status-Bits:\n%s\n",
trb_strterm(trb_term));
}
}
if (cmdLen != 5) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: Invalid command\n", lineCtr);
+ fprintf(stderr, "Line #%d: Invalid command\n", lineCtr);
} else {
usage(basename(argv[0]));
}
/* DEBUG Info */
if (trb_debug > 0) {
- fprintf(STDERR,
+ fprintf(stderr,
"Command: SEND_TRIGGER: "
"type: 0x%01x, "
"random: 0x%02x, "
if (trb_send_trigger(type, info, random, number) == -1) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: ", lineCtr);
+ fprintf(stderr, "Line #%d: ", lineCtr);
}
trb_error("send_trigger failed");
if (trb_errno != TRB_ENDPOINT_NOT_REACHED) {
if ((trb_term.status_common != 0x01) ||
(trb_term.status_channel != 0)) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: ", lineCtr);
+ fprintf(stderr, "Line #%d: ", lineCtr);
}
- fprintf(STDERR, "WARNING Status-Bits:\n%s\n",
+ fprintf(stderr, "WARNING Status-Bits:\n%s\n",
trb_strterm(trb_term));
}
}
if (cmdLen != 1) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: Invalid command\n", lineCtr);
+ fprintf(stderr, "Line #%d: Invalid command\n", lineCtr);
} else {
usage(basename(argv[0]));
}
/* DEBUG Info */
if (trb_debug > 0) {
- fprintf(STDERR, "Command: RESET:\n");
+ fprintf(stderr, "Command: RESET:\n");
}
if (network_reset() == -1) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: ", lineCtr);
+ fprintf(stderr, "Line #%d: ", lineCtr);
}
trb_error("TRBNet RESET failed");
return -1;
if (cmdLen != 1) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: Invalid command\n", lineCtr);
+ fprintf(stderr, "Line #%d: Invalid command\n", lineCtr);
} else {
usage(basename(argv[0]));
}
/* DEBUG Info */
if (trb_debug > 0) {
- fprintf(STDERR, "Command: COMRESET:\n");
+ fprintf(stderr, "Command: COMRESET:\n");
}
if (com_reset() == -1) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: ", lineCtr);
+ fprintf(stderr, "Line #%d: ", lineCtr);
}
trb_error("Etrax RESET failed");
return -1;
if (cmdLen != 2) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: Invalid command\n", lineCtr);
+ fprintf(stderr, "Line #%d: Invalid command\n", lineCtr);
} else {
usage(basename(argv[0]));
}
/* DEBUG Info */
if (trb_debug > 0) {
- fprintf(STDERR,
+ fprintf(stderr,
"Command: RELOAD: trb_address: 0x%04x\n", trb_address);
}
if (trb_register_write(trb_address, 0x0020, 0x8000) == -1) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: ", lineCtr);
+ fprintf(stderr, "Line #%d: ", lineCtr);
}
trb_error("FPGA reload failed");
if (trb_errno != TRB_ENDPOINT_NOT_REACHED) {
if ((trb_term.status_common != 0x01) ||
(trb_term.status_channel != 0)) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: ", lineCtr);
+ fprintf(stderr, "Line #%d: ", lineCtr);
}
- fprintf(STDERR, "WARNING Status-Bits:\n%s\n",
+ fprintf(stderr, "WARNING Status-Bits:\n%s\n",
trb_strterm(trb_term));
}
}
if (cmdLen != 6) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: Invalid command\n", lineCtr);
+ fprintf(stderr, "Line #%d: Invalid command\n", lineCtr);
} else {
usage(basename(argv[0]));
}
/* DEBUG Info */
if (trb_debug > 0) {
- fprintf(STDERR,
+ fprintf(stderr,
"Command: SEND_TRIGGER: "
"input: 0x%01x, "
"type: 0x%01x, "
if (trb_send_trigger_rich(input, type, info, random, number) == -1) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: ", lineCtr);
+ fprintf(stderr, "Line #%d: ", lineCtr);
}
trb_error("send_trigger failed");
if (trb_errno != TRB_ENDPOINT_NOT_REACHED) {
if ((trb_term.status_common != 0x01) ||
(trb_term.status_channel != 0)) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: ", lineCtr);
+ fprintf(stderr, "Line #%d: ", lineCtr);
}
- fprintf(STDERR, "WARNING Status-Bits:\n%s\n",
+ fprintf(stderr, "WARNING Status-Bits:\n%s\n",
trb_strterm(trb_term));
}
}
if (cmdLen != 5) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: Invalid command\n", lineCtr);
+ fprintf(stderr, "Line #%d: Invalid command\n", lineCtr);
} else {
usage(basename(argv[0]));
}
/* DEBUG Info */
if (trb_debug > 0) {
- fprintf(STDERR,
+ fprintf(stderr,
"Command: READ_IPU_DATA: "
"type: 0x%01x, "
"random: 0x%02x, "
buffer, USER_BUFFER_SIZE);
if (status == -1) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: ", lineCtr);
+ fprintf(stderr, "Line #%d: ", lineCtr);
}
trb_error("read_ipu_data failed");
if (trb_errno != TRB_ENDPOINT_NOT_REACHED) {
}
} else {
for (i = 0; i < status; i++) {
- fprintf(STDOUT, "0x%08x\n", buffer[i]);
+ fprintf(stdout, "0x%08x\n", buffer[i]);
}
/* Check Status-Bits */
if ((trb_term.status_common != 0x01) ||
(trb_term.status_channel != 0)) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: ", lineCtr);
+ fprintf(stderr, "Line #%d: ", lineCtr);
}
- fprintf(STDERR, "WARNING Status-Bits:\n%s\n",
+ fprintf(stderr, "WARNING Status-Bits:\n%s\n",
trb_strterm(trb_term));
}
}
if (cmdLen != 2) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: Invalid command\n", lineCtr);
+ fprintf(stderr, "Line #%d: Invalid command\n", lineCtr);
} else {
usage(basename(argv[0]));
}
channel = strtoul(cmd[1], NULL, hexMode == 1 ? 16 : 0);
if (trb_debug > 0) {
- fprintf(STDERR, "Command: FIFO_FLUSH_CHANNEL #%d\n", channel);
+ fprintf(stderr, "Command: FIFO_FLUSH_CHANNEL #%d\n", channel);
}
if (trb_fifo_flush(channel) == -1) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: ", lineCtr);
+ fprintf(stderr, "Line #%d: ", lineCtr);
}
trb_error("trb_fifo_flush failed");
return -1;
if (cmdLen != 2) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: Invalid command\n", lineCtr);
+ fprintf(stderr, "Line #%d: Invalid command\n", lineCtr);
} else {
usage(basename(argv[0]));
}
reg_address = strtoul(cmd[1], NULL, hexMode == 1 ? 16 : 0);
if (trb_debug > 0) {
- fprintf(STDERR,
+ fprintf(stderr,
"Command: READ_FIFO_REGISTER:"
"reg_address: 0x%04x\n", reg_address);
}
if (fpga_register_read(reg_address, &value) == -1) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: ", lineCtr);
+ fprintf(stderr, "Line #%d: ", lineCtr);
}
trb_error("fpga_register_read failed");
return -1;
} else {
- fprintf(STDOUT, "0x%04x 0x%08x\n", reg_address, value);
+ fprintf(stdout, "0x%04x 0x%08x\n", reg_address, value);
}
} else if (strncmp(cmd[0], "W", CMD_SIZE) == 0) {
if (cmdLen != 3) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: Invalid command\n", lineCtr);
+ fprintf(stderr, "Line #%d: Invalid command\n", lineCtr);
} else {
usage(basename(argv[0]));
}
value = strtoul(cmd[2], NULL, hexMode == 1 ? 16 : 0);
if (trb_debug > 0) {
- fprintf(STDERR,
+ fprintf(stderr,
"Command: WRITE_FIFO_REGISTER:"
"reg_address: 0x%04x, "
"value: 0x%08x\n", reg_address, value);
if (fpga_register_write(reg_address, value) == -1) {
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: ", lineCtr);
+ fprintf(stderr, "Line #%d: ", lineCtr);
}
trb_error("fpga_register_write failed");
return -1;
/*******************************************/
if (scriptFile != NULL) {
- fprintf(STDERR, "Line #%d: Invalid command\n", lineCtr);
+ fprintf(stderr, "Line #%d: Invalid command\n", lineCtr);
} else {
usage(basename(argv[0]));
}
{
unsigned int i;
- STDOUT = stdout;
- STDERR = stderr;
+ stdout = stdout;
+ stderr = stderr;
if (strcmp(argv[argc - 1], "tcp") != 0) {
/* Run normal TRBCMD */
+#ifndef TRB_RPC
init_ports();
+#else
+ trb_connect(NULL);
+#endif
+
if (start(argc, argv) == 0) {
exit(EXIT_SUCCESS);
}
myPid = getpid();
write(myFd, "\n", 1);
atexit(atexit0);
+#ifndef TRB_RPC
init_ports();
+#else
+ trb_connect(NULL);
+#endif
clientout = fdopen(myFd, "a");
- STDOUT = clientout;
- STDERR = clientout;
- trb_stderr = clientout;
-
+
+ /* redirect output */
+ fclose(stdout);
+ fclose(stderr);
+ stdout = clientout;
+ stderr = clientout;
+
while (1) {
msgLen = recv(myFd, (void *)command, 256, 0);
if (msgLen == -1) {
-const char trbnet_version[] = "$Revision: 2.61 $";
+const char trbnet_version[] = "$Revision: 2.62 $";
#include <stdlib.h>
#include <signal.h>
unsigned int trb_debug = 0;
unsigned int trb_dma = 0;
-FILE* trb_stderr = NULL;
/* Declaration of a TRB-Package */
{
switch ((pkg->H0 & MASK_HEADER_TYPE) >> SHIFT_HEADER_TYPE) {
case HEADER_DAT:
- fprintf(trb_stderr, "H0: 0x%04x --> DATA channel: %01d reply: %01d\n",
+ fprintf(stderr, "H0: 0x%04x --> DATA channel: %01d reply: %01d\n",
pkg->H0,
(pkg->H0 & MASK_HEADER_CHANNEL) >> SHIFT_HEADER_CHANNEL,
(pkg->H0 & MASK_HEADER_REPLY) >> SHIFT_HEADER_REPLY);
- fprintf(trb_stderr, "F0: 0x%04x --> data0\n", pkg->F0);
- fprintf(trb_stderr, "F1: 0x%04x --> data1\n", pkg->F1);
- fprintf(trb_stderr, "F2: 0x%04x --> data2\n", pkg->F2);
- fprintf(trb_stderr, "F3: 0x%04x --> data3\n", pkg->F3);
+ fprintf(stderr, "F0: 0x%04x --> data0\n", pkg->F0);
+ fprintf(stderr, "F1: 0x%04x --> data1\n", pkg->F1);
+ fprintf(stderr, "F2: 0x%04x --> data2\n", pkg->F2);
+ fprintf(stderr, "F3: 0x%04x --> data3\n", pkg->F3);
break;
case HEADER_HDR:
- fprintf(trb_stderr, "H0: 0x%04x --> HEADER channel: %01d reply: %01d\n",
+ fprintf(stderr, "H0: 0x%04x --> HEADER channel: %01d reply: %01d\n",
pkg->H0,
(pkg->H0 & MASK_HEADER_CHANNEL) >> SHIFT_HEADER_CHANNEL,
(pkg->H0 & MASK_HEADER_REPLY) >> SHIFT_HEADER_REPLY);
- fprintf(trb_stderr, "F0: 0x%04x --> source address\n", pkg->F0);
- fprintf(trb_stderr, "F1: 0x%04x --> target address\n", pkg->F1);
- fprintf(trb_stderr, "F2: 0x%04x --> length\n", pkg->F2);
- fprintf(trb_stderr, "F3: 0x%04x --> sequence: 0x%02x datatype: 0x%01x\n",
+ fprintf(stderr, "F0: 0x%04x --> source address\n", pkg->F0);
+ fprintf(stderr, "F1: 0x%04x --> target address\n", pkg->F1);
+ fprintf(stderr, "F2: 0x%04x --> length\n", pkg->F2);
+ fprintf(stderr, "F3: 0x%04x --> sequence: 0x%02x datatype: 0x%01x\n",
pkg->F3,
(pkg->F3 & MASK_SEQNR) >> SHIFT_SEQNR,
(pkg->F3 & MASK_DATATYPE) >> SHIFT_DATATYPE);
break;
case HEADER_EOB:
- fprintf(trb_stderr, "H0: 0x%04x --> EOB channel: %01d reply: %01d\n",
+ fprintf(stderr, "H0: 0x%04x --> EOB channel: %01d reply: %01d\n",
pkg->H0,
(pkg->H0 & MASK_HEADER_CHANNEL) >> SHIFT_HEADER_CHANNEL,
(pkg->H0 & MASK_HEADER_REPLY) >> SHIFT_HEADER_REPLY);
- fprintf(trb_stderr, "F0: 0x%04x --> checksum\n", pkg->F0);
- fprintf(trb_stderr, "F1: 0x%04x --> reseved\n", pkg->F1);
- fprintf(trb_stderr, "F2: 0x%04x --> data count\n", pkg->F2);
- fprintf(trb_stderr, "F3: 0x%04x --> buffer number\n", pkg->F3);
+ fprintf(stderr, "F0: 0x%04x --> checksum\n", pkg->F0);
+ fprintf(stderr, "F1: 0x%04x --> reseved\n", pkg->F1);
+ fprintf(stderr, "F2: 0x%04x --> data count\n", pkg->F2);
+ fprintf(stderr, "F3: 0x%04x --> buffer number\n", pkg->F3);
break;
case HEADER_TRM:
- fprintf(trb_stderr, "H0: 0x%04x --> TERM channel: %01d reply: %01d\n",
+ fprintf(stderr, "H0: 0x%04x --> TERM channel: %01d reply: %01d\n",
pkg->H0,
(pkg->H0 & MASK_HEADER_CHANNEL) >> SHIFT_HEADER_CHANNEL,
(pkg->H0 & MASK_HEADER_REPLY) >> SHIFT_HEADER_REPLY);
- fprintf(trb_stderr, "F0: 0x%04x --> checksum\n", pkg->F0);
- fprintf(trb_stderr, "F1: 0x%04x --> statusbits channel\n", pkg->F1);
- fprintf(trb_stderr, "F2: 0x%04x --> statusbits common\n", pkg->F2);
- fprintf(trb_stderr, "F3: 0x%04x --> sequence: 0x%02x datatype: 0x%01x\n",
+ fprintf(stderr, "F0: 0x%04x --> checksum\n", pkg->F0);
+ fprintf(stderr, "F1: 0x%04x --> statusbits channel\n", pkg->F1);
+ fprintf(stderr, "F2: 0x%04x --> statusbits common\n", pkg->F2);
+ fprintf(stderr, "F3: 0x%04x --> sequence: 0x%02x datatype: 0x%01x\n",
pkg->F3,
(pkg->F3 & MASK_SEQNR) >> SHIFT_SEQNR,
(pkg->F3 & MASK_DATATYPE) >> SHIFT_DATATYPE);
break;
case HEADER_EXT:
- fprintf(trb_stderr, "H0: 0x%04x --> EXT channel: %01d reply: %01d\n",
+ fprintf(stderr, "H0: 0x%04x --> EXT channel: %01d reply: %01d\n",
pkg->H0,
(pkg->H0 & MASK_HEADER_CHANNEL) >> SHIFT_HEADER_CHANNEL,
(pkg->H0 & MASK_HEADER_REPLY) >> SHIFT_HEADER_REPLY);
- fprintf(trb_stderr, "F0: 0x%04x --> reserved\n", pkg->F0);
- fprintf(trb_stderr, "F1: 0x%04x --> reserved\n", pkg->F1);
- fprintf(trb_stderr, "F2: 0x%04x --> reserved\n", pkg->F2);
- fprintf(trb_stderr, "F2: 0x%04x --> reserved\n", pkg->F3);
+ fprintf(stderr, "F0: 0x%04x --> reserved\n", pkg->F0);
+ fprintf(stderr, "F1: 0x%04x --> reserved\n", pkg->F1);
+ fprintf(stderr, "F2: 0x%04x --> reserved\n", pkg->F2);
+ fprintf(stderr, "F2: 0x%04x --> reserved\n", pkg->F3);
break;
case HEADER_ACK:
- fprintf(trb_stderr, "H0: 0x%04x --> ACK channel: %01d reply: %01d\n",
+ fprintf(stderr, "H0: 0x%04x --> ACK channel: %01d reply: %01d\n",
pkg->H0,
(pkg->H0 & MASK_HEADER_CHANNEL) >> SHIFT_HEADER_CHANNEL,
(pkg->H0 & MASK_HEADER_REPLY) >> SHIFT_HEADER_REPLY);
- fprintf(trb_stderr, "F0: 0x%04x --> reserved\n", pkg->F0);
- fprintf(trb_stderr, "F1: 0x%04x --> lenght of buffer\n", pkg->F1);
- fprintf(trb_stderr, "F2: 0x%04x --> reserved\n", pkg->F2);
- fprintf(trb_stderr, "F2: 0x%04x --> buffer number\n", pkg->F3);
+ fprintf(stderr, "F0: 0x%04x --> reserved\n", pkg->F0);
+ fprintf(stderr, "F1: 0x%04x --> lenght of buffer\n", pkg->F1);
+ fprintf(stderr, "F2: 0x%04x --> reserved\n", pkg->F2);
+ fprintf(stderr, "F2: 0x%04x --> buffer number\n", pkg->F3);
break;
case HEADER_SIG:
- fprintf(trb_stderr, "H0: 0x%04x --> SIGNAL channel: %01d reply: %01d\n",
+ fprintf(stderr, "H0: 0x%04x --> SIGNAL channel: %01d reply: %01d\n",
pkg->H0,
(pkg->H0 & MASK_HEADER_CHANNEL) >> SHIFT_HEADER_CHANNEL,
(pkg->H0 & MASK_HEADER_REPLY) >> SHIFT_HEADER_REPLY);
- fprintf(trb_stderr, "F0: 0x%04x --> reserved\n", pkg->F0);
- fprintf(trb_stderr, "F1: 0x%04x --> reserved\n", pkg->F1);
- fprintf(trb_stderr, "F2: 0x%04x --> reserved\n", pkg->F2);
- fprintf(trb_stderr, "F2: 0x%04x --> reserved\n", pkg->F3);
+ fprintf(stderr, "F0: 0x%04x --> reserved\n", pkg->F0);
+ fprintf(stderr, "F1: 0x%04x --> reserved\n", pkg->F1);
+ fprintf(stderr, "F2: 0x%04x --> reserved\n", pkg->F2);
+ fprintf(stderr, "F2: 0x%04x --> reserved\n", pkg->F3);
break;
case HEADER_ILL:
- fprintf(trb_stderr, "H0: 0x%04x --> ILLEGAL channel: %01d reply: %01d\n",
+ fprintf(stderr, "H0: 0x%04x --> ILLEGAL channel: %01d reply: %01d\n",
pkg->H0,
(pkg->H0 & MASK_HEADER_CHANNEL) >> SHIFT_HEADER_CHANNEL,
(pkg->H0 & MASK_HEADER_REPLY) >> SHIFT_HEADER_REPLY);
- fprintf(trb_stderr, "F0: 0x%04x --> ignore\n", pkg->F0);
- fprintf(trb_stderr, "F1: 0x%04x --> ignore\n", pkg->F1);
- fprintf(trb_stderr, "F2: 0x%04x --> ignore\n", pkg->F2);
- fprintf(trb_stderr, "F2: 0x%04x --> ignore\n", pkg->F3);
+ fprintf(stderr, "F0: 0x%04x --> ignore\n", pkg->F0);
+ fprintf(stderr, "F1: 0x%04x --> ignore\n", pkg->F1);
+ fprintf(stderr, "F2: 0x%04x --> ignore\n", pkg->F2);
+ fprintf(stderr, "F2: 0x%04x --> ignore\n", pkg->F3);
break;
default:
- fprintf(trb_stderr, "INVALID\n");
+ fprintf(stderr, "INVALID\n");
}
}
read32_from_FPGA(fifoAddress, &tmp);
/* DEBUG INFO */
if ((trb_debug > 1) && ((tmp & MASK_FIFO_VALID) != 0)) {
- fprintf(trb_stderr, "FLUSH_FIFO_%03d: 0x%08x\n", counter, tmp);
+ fprintf(stderr, "FLUSH_FIFO_%03d: 0x%08x\n", counter, tmp);
counter++;
}
} while ((tmp & MASK_FIFO_VALID) != 0);
if ((counter % 5) == 0) {
/* New Package begins */
if (trb_debug > 0) {
- fprintf(trb_stderr,
+ fprintf(stderr,
"-------------------------------------------------\n");
}
packageCtr++;
/* DEBUG INFO */
if (trb_debug > 1) {
- fprintf(trb_stderr, "FIFO_%03d: 0x%08x\n",
+ fprintf(stderr, "FIFO_%03d: 0x%08x\n",
fifoDebugCtr, *tmp);
}
} else {
/* DEBUG INFO */
if (trb_debug > 1) {
- fprintf(trb_stderr, "FIFO_%03d: 0x%08x\n",
+ fprintf(stderr, "FIFO_%03d: 0x%08x\n",
fifoDebugCtr, *tmp);
}
/* DEBUG INFO */
if (trb_debug > 1) {
- fprintf(trb_stderr, "FIFO_%03d: 0x%08x\n",
+ fprintf(stderr, "FIFO_%03d: 0x%08x\n",
fifoDebugCtr, *tmp);
}
/* DEBUG INFO */
if (trb_debug > 0) {
TRB_Package_dump(&package);
- fprintf(trb_stderr,
+ fprintf(stderr,
"-------------------------------------------------\n");
}
if (dataCtr < dsize) {
data[dataCtr++] = (uint32_t)package.F0;
#ifdef TRB_DEBUGGER
- fprintf(trb_stderr, "D: 0x%04x ", data[dataCtr - 1]);
+ fprintf(stderr, "D: 0x%04x ", data[dataCtr - 1]);
#endif
} else {
fifo_flush(channel);
data[dataCtr++] = (((uint32_t)package.F1 << 16) |
((uint32_t)package.F2));
#ifdef TRB_DEBUGGER
- fprintf(trb_stderr, "0x%08x\n", data[dataCtr - 1]);
+ fprintf(stderr, "0x%08x\n", data[dataCtr - 1]);
#endif
endPointCtr++;
} else {
lastHeader = &data[dataCtr];
data[dataCtr++] = (uint32_t)package.F0;
#ifdef TRB_DEBUGGER
- fprintf(trb_stderr, "D: H: 0x%04x\n", data[dataCtr - 1]);
+ fprintf(stderr, "D: H: 0x%04x\n", data[dataCtr - 1]);
#endif
} else {
fifo_flush(channel);
data[dataCtr++] = (((uint32_t)package.F1 << 16) |
((uint32_t)package.F2));
#ifdef TRB_DEBUGGER
- fprintf(trb_stderr,
+ fprintf(stderr,
"D: 0x%04x 0x%08x\n", memLen, data[dataCtr - 1]);
#endif
memLen++;
: (((uint32_t)package.F2 << 16) |
((uint32_t)package.F3));
#ifdef TRB_DEBUGGER
- fprintf(trb_stderr, "D: 0x%08x\n", data[dataCtr - 1]);
+ fprintf(stderr, "D: 0x%08x\n", data[dataCtr - 1]);
#endif
} else {
fifo_flush(channel);
data[dataCtr++] = (uint32_t)sourceAddress;
endPointCtr++;
#ifdef TRB_DEBUGGER
- fprintf(trb_stderr, "D: 0x%04x 0x%08x%08x 0x%02x\n",
+ fprintf(stderr, "D: 0x%04x 0x%08x%08x 0x%02x\n",
(uint32_t)sourceAddress,
uidLow, uidHigh,
(uint32_t)package.F0);
int memfd;
uint32_t *mem = NULL;
- /* set default stderr */
- trb_stderr = stderr;
-
/* Set signal mask for blocking */
sigemptyset(&blockSet);
sigaddset(&blockSet, SIGINT);
/* DEBUG INFO */
if (trb_debug > 1) {
- fprintf(trb_stderr, "Flushing FIFO of channel# %d\n", channel);
+ fprintf(stderr, "Flushing FIFO of channel# %d\n", channel);
}
if (lockPorts() == -1) return -1;
/* DEBUG INFO */
if (trb_debug > 0) {
- fprintf(trb_stderr, "Init_Transfer done.\n");
+ fprintf(stderr, "Init_Transfer done.\n");
}
/* Build up package and start transfer */
/* DEBUG INFO */
if (trb_debug > 0) {
- fprintf(trb_stderr, "CMD_REGISTER_READ started.\n");
+ fprintf(stderr, "CMD_REGISTER_READ started.\n");
}
status = trb_fifo_read(3, FIFO_MODE_REG_READ, data, dsize);
/* DEBUG INFO */
if (trb_debug > 0) {
- fprintf(trb_stderr, "Init_Tranfer done.\n");
+ fprintf(stderr, "Init_Tranfer done.\n");
}
/* Build up package and start transfer */
/* DEBUG INFO */
if (trb_debug > 0) {
- fprintf(trb_stderr, "CMD_REGISTER_READ_MEM started.\n");
+ fprintf(stderr, "CMD_REGISTER_READ_MEM started.\n");
}
status = trb_fifo_read(3, FIFO_MODE_REG_READ_MEM, data, dsize);
/* DEBUG INFO */
if (trb_debug > 0) {
- fprintf(trb_stderr, "Init_Transfer done.\n");
+ fprintf(stderr, "Init_Transfer done.\n");
}
/* Build up package */
/* DEBUG INFO */
if (trb_debug > 0) {
- fprintf(trb_stderr, "CMD_REGISTER_WRITE started.\n");
+ fprintf(stderr, "CMD_REGISTER_WRITE started.\n");
}
status = trb_fifo_read(3, FIFO_MODE_REG_WRITE, NULL, 0);
/* DEBUG INFO */
if (trb_debug > 0) {
- fprintf(trb_stderr, "Init_Transfer done.\n");
+ fprintf(stderr, "Init_Transfer done.\n");
}
/* Build up package */
/* DEBUG INFO */
if (trb_debug > 0) {
- fprintf(trb_stderr, "CMD_REGISTER_WRITE_MEM started %d.\n", len);
+ fprintf(stderr, "CMD_REGISTER_WRITE_MEM started %d.\n", len);
}
status = trb_fifo_read(3, FIFO_MODE_REG_WRITE, NULL, 0);
/* DEBUG INFO */
if (trb_debug > 0) {
- fprintf(trb_stderr, "Init_Transfer done.\n");
+ fprintf(stderr, "Init_Transfer done.\n");
}
/* Build up package and start transfer */
/* DEBUG INFO */
if (trb_debug > 0) {
- fprintf(trb_stderr, "CMD_READ_UNIQUE_ID started.\n");
+ fprintf(stderr, "CMD_READ_UNIQUE_ID started.\n");
}
status = trb_fifo_read(3, FIFO_MODE_UID, (uint32_t*)data, dsize);
/* DEBUG INFO */
if (trb_debug > 0) {
- fprintf(trb_stderr, "Init_Transfer done.\n");
+ fprintf(stderr, "Init_Transfer done.\n");
}
/* Build up package and start transfer */
/* DEBUG INFO */
if (trb_debug > 0) {
- fprintf(trb_stderr, "CMD_SETADDRESS started.\n");
+ fprintf(stderr, "CMD_SETADDRESS started.\n");
}
status = trb_fifo_read(3, FIFO_MODE_SET_ADDRESS, NULL, 0);
/* DEBUG INFO */
if (trb_debug > 0) {
- fprintf(trb_stderr, "Init_Transfer done.\n");
+ fprintf(stderr, "Init_Transfer done.\n");
}
/* Prepare IPU channel */
/* DEBUG INFO */
if (trb_debug > 0) {
- fprintf(trb_stderr, "CMD_IPU_DATA_READ started.\n");
+ fprintf(stderr, "CMD_IPU_DATA_READ started.\n");
}
status = trb_fifo_read(1, FIFO_MODE_IPU_DATA, data, dsize);
/* DEBUG INFO */
if (trb_debug > 0) {
- fprintf(trb_stderr, "Init_Transfer done.\n");
+ fprintf(stderr, "Init_Transfer done.\n");
}
/* Prepare trigger channel */
SHORT_TRANSFER | (uint32_t)(type & 0x0f));
if (trb_debug > 0) {
- fprintf(trb_stderr, "trigger started.\n");
+ fprintf(stderr, "trigger started.\n");
}
/* Check for replay packets (trigger) */
/* DEBUG INFO */
if (trb_debug > 0) {
- fprintf(trb_stderr, "Init_Transfer done.\n");
+ fprintf(stderr, "Init_Transfer done.\n");
}
/* Prepare trigger channel */
SHORT_TRANSFER | (uint32_t)(type & 0x0f));
if (trb_debug > 0) {
- fprintf(trb_stderr, "trigger started.\n");
+ fprintf(stderr, "trigger started.\n");
}
/* Check for replay packets (slowcontrol) */
/* DEBUG INFO */
if (trb_debug > 0) {
- fprintf(trb_stderr, "fpga_register_read started.\n");
+ fprintf(stderr, "fpga_register_read started.\n");
}
read32_from_FPGA(reg_address, value);
/* DEBUG INFO */
if (trb_debug > 0) {
- fprintf(trb_stderr, "fpga_register_write started.\n");
+ fprintf(stderr, "fpga_register_write started.\n");
}
write32_to_FPGA(reg_address, value);
/* DEBUG INFO */
if (trb_debug > 0) {
- fprintf(trb_stderr, "network_reset started.\n");
+ fprintf(stderr, "network_reset started.\n");
}
write32_to_FPGA(0x10, 0x0000);
/* DEBUG INFO */
if (trb_debug > 0) {
- fprintf(trb_stderr, "com_reset started.\n");
+ fprintf(stderr, "com_reset started.\n");
}
setbitsPC(0x30000);