diff --git a/.gitignore b/.gitignore
index 3dfbc80..d60c37d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -83,3 +83,19 @@
.vscode/settings.json
.vscode/uv4.log
.vscode/uv4.log.lock
+RTE/CMSIS/RTX_Config.c.update@5.1.1
+RTE/CMSIS/RTX_Config.h.update@5.5.2
+RTE/Compiler/EventRecorderConf.h.update@1.1.0
+RTE/Device/STM32F746NGHx/RTE_Device.h.update@1.5.1
+RTE/Device/STM32F746NGHx/startup_stm32f746xx.s.update@1.2.2
+RTE/Device/STM32F746NGHx/stm32f7xx_hal_conf.h.update@1.2.7
+RTE/Device/STM32F746NGHx/system_stm32f7xx.c.update@1.2.2
+RTE/Hesso_pack/ext_buttons.c.base@1.0.0
+RTE/Hesso_pack/ext_buttons.h.base@1.0.0
+RTE/Hesso_pack/ext_keyboard.c.update@1.1.1
+RTE/Hesso_pack/ext_keyboard.h.update@1.1.1
+RTE/Hesso_pack/ext_led.c.base@1.0.0
+RTE/Hesso_pack/ext_led.h.base@1.0.0
+RTE/Hesso_pack/ext_uart.c.base@1.0.0
+RTE/Hesso_pack/ext_uart.h.base@1.0.0
+RTE/uGFX_library/gfxconf.h.update@2.0.0
diff --git a/mac_receiver.c b/mac_receiver.c
index 63e8e09..ca2d104 100644
--- a/mac_receiver.c
+++ b/mac_receiver.c
@@ -23,6 +23,8 @@ void send_DATA_IND(Adresse source, Adresse destination, uint8_t* dataFramePtr) {
}
strPtr[dataFramePtr[2]] = '\0'; // null-terminate string
queueMsg.anyPtr = strPtr;
+ //retCode = osMemoryPoolFree(memPool, dataFramePtr);
+ //CheckRetCode(retCode, __LINE__, __FILE__, CONTINUE);
switch (destination.sapi) {
case TIME_SAPI:
diff --git a/mac_sender.c b/mac_sender.c
index ee4a558..f16ca14 100644
--- a/mac_sender.c
+++ b/mac_sender.c
@@ -15,7 +15,8 @@ const osMessageQueueAttr_t queue_macData_attr = {
void sendToken() {
struct queueMsg_t queueMsg;
- queueMsg.anyPtr = lastToken;
+ queueMsg.anyPtr = osMemoryPoolAlloc(memPool,osWaitForever);
+ memcpy(queueMsg.anyPtr, lastToken, TOKENSIZE-2);
queueMsg.type = TO_PHY;
osStatus_t retCode = osMessageQueuePut(
queue_phyS_id,
@@ -60,6 +61,8 @@ void MacSender(void *argument) {
//----------------------------------------------------------------------
case TOKEN: {
// Get token and save it
+// osDelay(300);
+ //lastToken = osMemoryPoolAlloc(memPool,osWaitForever);
memcpy(lastToken, msg, TOKENSIZE-2);
// update token
@@ -70,13 +73,16 @@ void MacSender(void *argument) {
// send to lcd
queueMsg.type = TOKEN_LIST;
- queueMsg.anyPtr = lastToken;
+ memcpy(queueMsg.anyPtr , lastToken, TOKENSIZE-2);
retCode = osMessageQueuePut(
queue_lcd_id,
&queueMsg,
osPriorityNormal,
osWaitForever);
CheckRetCode(retCode, __LINE__, __FILE__, CONTINUE);
+
+ retCode = osMemoryPoolFree(memPool, queueMsg.anyPtr);
+ CheckRetCode(retCode, __LINE__, __FILE__, CONTINUE);
// Send one msg from internal queue if exist
//if (osMemoryPoolGetCount(queue_macData_id) != 0) { // Message in Queue
@@ -196,7 +202,8 @@ void MacSender(void *argument) {
}
gTokenInterface.station_list[gTokenInterface.myAddress] = (0x1 << TIME_SAPI) + (gTokenInterface.connected << CHAT_SAPI);
lastToken[gTokenInterface.myAddress+1] = gTokenInterface.station_list[gTokenInterface.myAddress];
-
+ sendToken();
+ /*
queueMsg.type = TO_PHY;
queueMsg.anyPtr = lastToken;
@@ -206,6 +213,7 @@ void MacSender(void *argument) {
osPriorityNormal,
osWaitForever);
CheckRetCode(retCode, __LINE__, __FILE__, CONTINUE);
+ */
break;
}
@@ -237,19 +245,17 @@ void MacSender(void *argument) {
src.nothing = 0;
length = strlen(queueMsg.anyPtr);
- if(dst.addr != BROADCAST_ADDRESS) {
+ if(dst.addr == BROADCAST_ADDRESS) {
+ status.read = 1;
+ status.ack = 1;
+ stationStatus.raw = 0;
+ } else {
+ status.read = 0;
+ status.ack = 0;
stationStatus.raw = gTokenInterface.station_list[dst.addr];
}
- if( (stationStatus.chat == 1) || (dst.addr == BROADCAST_ADDRESS)) {
-
- if(dst.addr == BROADCAST_ADDRESS) {
- status.read = 1;
- status.ack = 1;
- } else {
- status.read = 0;
- status.ack = 0;
- }
+ if( (dst.addr == BROADCAST_ADDRESS) || (stationStatus.chat == 1)) {
msg = osMemoryPoolAlloc(memPool, 0);
if(msg == NULL) {
@@ -274,7 +280,6 @@ void MacSender(void *argument) {
assert(false);
}
memcpy(lastSentMsgPtr, msg, length+4);
- // TODO test if station is online
}
queueMsg.anyPtr = msg;
diff --git a/main.h b/main.h
index 2cf9529..3c2ba57 100644
--- a/main.h
+++ b/main.h
@@ -16,7 +16,7 @@
//--------------------------------------------------------------------------------
// Constants to change the system behavior
//--------------------------------------------------------------------------------
-#define DEBUG_MODE 1 // mode is physical line (0) or debug (1)
+#define DEBUG_MODE 0 // mode is physical line (0) or debug (1)
#define MYADDRESS 3 // your address choice (table number)
#define MAX_BLOCK_SIZE 100 // size max for a frame
diff --git a/tokenring_project.uvoptx b/tokenring_project.uvoptx
index b18b2c9..e156d63 100644
--- a/tokenring_project.uvoptx
+++ b/tokenring_project.uvoptx
@@ -157,9 +157,41 @@
0
0
- 18
+ 108
1
- 134311450
+ 134255386
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ .\mac_sender.c
+
+ \\tokenring_project\mac_sender.c\108
+
+
+ 1
+ 0
+ 110
+ 1
+ 134255394
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ .\mac_sender.c
+
+ \\tokenring_project\mac_sender.c\110
+
+
+ 2
+ 0
+ 116
+ 1
+ 134254758
0
0
0
@@ -168,44 +200,28 @@
1
.\mac_receiver.c
- \\tokenring_project\mac_receiver.c\18
-
-
- 1
- 0
- 264
- 1
- 134256144
- 0
- 0
- 0
- 0
- 0
- 1
- .\mac_sender.c
-
- \\tokenring_project\mac_sender.c\264
-
-
- 2
- 0
- 86
- 1
- 134255102
- 0
- 0
- 0
- 0
- 0
- 1
- .\mac_sender.c
-
- \\tokenring_project\mac_sender.c\86
+ \\tokenring_project\mac_receiver.c\116
3
0
- 199
+ 89
+ 1
+ 134255344
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ .\mac_sender.c
+
+ \\tokenring_project\mac_sender.c\89
+
+
+ 4
+ 0
+ 92
1
0
0
@@ -219,10 +235,42 @@
- 4
+ 5
+ 0
+ 109
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ .\mac_sender.c
+
+
+
+
+ 6
+ 0
+ 111
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ .\mac_sender.c
+
+
+
+
+ 7
0
199
- 1
+ 0
0
0
0
@@ -239,27 +287,37 @@
0
1
- sai
+ gTokenInterface
1
1
- gTokenInterface
+ t
2
1
- t
+ lastToken,0x10
3
1
- lastToken
+ memPool
4
1
- memPool
+ qPtr[0]
+
+
+ 5
+ 1
+ qPtr[1]
+
+
+ 6
+ 1
+ qPtr[2]
@@ -294,7 +352,7 @@
0
1
- 1
+ 0
0
0
0