#define FRESCAN_BROADCAST_ADDR 0xF
#define FRESCAN_MX_IDS 255
#define FRESCAN_MX_PRIOS 32
-#define FRESCAN_REPL_SIGNAL_NUM FOSA_SIGNAL_MIN + 10 // real-time signal
#define FRESCAN_BACKGROUND_PRIO 0
-#define FRESCAN_MX_REPLY_OBJECTS 40
+#define FRESCAN_REPL_SIGNAL_NUM FOSA_SIGNAL_MIN + 10 // real-time signal
#define FRESCAN_REPL_THREAD_PRIO 60
-#define FRESCAN_NEG_THREAD_PRIO 50
-#define FRESCAN_MX_REQUESTS 40
-#define FRESCAN_NEG_MASTER_NODE 0
-#define FRESCAN_REPLY_OBJECTS_MX_CEILING 90
-#define FRESCAN_REQUESTS_MX_CEILING 90
-#define FRESCAN_BWRES_MX_PRIO 60
-#define FRESCAN_ACCEPTOR_THREAD_PRIO FRESCAN_NEG_THREAD_PRIO - 1
-#define FRESCAN_BWRES_NEG_MESSAGES_PRIO 8
-#define FRESCAN_NEG_CHANNEL 0
#define FRESCAN_MX_NODES 2
-#define FRESCAN_MX_CONTRACTS (FRESCAN_MX_NODES*FRESCAN_MX_IDS)
#define FRESCAN_MX_REPL_OPS FRESCAN_MX_IDS*10
-#define FRESCAN_FRAME_TX_TIME 0.000200 // measured transmission time of an 8byte frame
+
+// Configuration values for FRESCAN_BWRES
+#define FRESCAN_BWRES_MX_REPLY_OBJECTS 40
+#define FRESCAN_BWRES_MX_REQUESTS 40
+#define FRESCAN_BWRES_MASTER_NODE 0
+#define FRESCAN_BWRES_ROBJS_MX_CEILING 90
+#define FRESCAN_BWRES_REQ_MX_CEILING 90
+#define FRESCAN_BWRES_MX_PRIO 60
+#define FRESCAN_BWRES_NEG_THREAD_PRIO 50
+#define FRESCAN_BWRES_ACCEPTOR_PRIO FRESCAN_BWRES_NEG_THREAD_PRIO - 1
+#define FRESCAN_BWRES_NEG_MSG_PRIO 8
+#define FRESCAN_BWRES_NEG_MSG_BUDGET 5 // packets
+#define FRESCAN_BWRES_NEG_MSG_PERIOD 1000000 // us
+#define FRESCAN_BWRES_NEG_MSG_CHAN 0
+#define FRESCAN_BWRES_MX_CONTRACTS (FRESCAN_MX_NODES*FRESCAN_MX_IDS)
+#define FRESCAN_BWRES_MAX_GROUP_OPS 5
+#define FRESCAN_BWRES_SS_MIN_PRIO 1
+#define FRESCAN_BWRES_SS_MAX_PRIO FRESCAN_MX_PRIOS
+
+// FRESCAN_FRAME_TX_TIME_US: measured transmission time of an 8byte frame
+#define FRESCAN_FRAME_TX_TIME_US 200
#define FRESCAN_MLOCK_T unsigned
#define FRESCAN_CREATE_LOCK(l)