Skip to content
Snippets Groups Projects
Commit cb14366f authored by Lennard Karger's avatar Lennard Karger
Browse files

Added Readout of CtrlBytes on Master

parent 4660fb7b
No related branches found
No related tags found
2 merge requests!4PIO Projekte in main-Branch implementieren,!3Vorbereitung Main merge PIO - Projektstrukturen
...@@ -1502,6 +1502,48 @@ int BlePoll::getMeas(int slAdr, byte *dest) ...@@ -1502,6 +1502,48 @@ int BlePoll::getMeas(int slAdr, byte *dest)
return(anzByte); return(anzByte);
} }
int BlePoll::getCtrlM(int slAdr, byte *dest){
int anzByte;
PlpType appId;
if(slAdr < 1) return(false);
if(slAdr >= MAXSLAVE) return(false);
SlavePtr slavePtr = &slaveList[slAdr];
appId = (PlpType) slavePtr->result.plData[0];
switch(appId)
{
case plptMeas6:
anzByte = 0;
break;
case plptMeas9:
anzByte = 0;
break;
case plptMeas9Ctrl4:
anzByte = 4;
break;
case plptMeas13:
anzByte = 0;
break;
default:
anzByte = 0;
break;
}
for (int i = 0; i < anzByte; i++)
{
dest[i] = slavePtr->result.plData[i+20];
}
return(anzByte);
}
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
// Debugging // Debugging
......
...@@ -219,6 +219,7 @@ typedef struct _PollInfo ...@@ -219,6 +219,7 @@ typedef struct _PollInfo
dword wrongs; // Anzahl ungewünschter Netzaktivitäten dword wrongs; // Anzahl ungewünschter Netzaktivitäten
} PollInfo, *PollInfoPtr; } PollInfo, *PollInfoPtr;
typedef struct _PollState typedef struct _PollState
{ {
byte slIdx; // Index in der Slave-Liste byte slIdx; // Index in der Slave-Liste
...@@ -493,7 +494,7 @@ public: ...@@ -493,7 +494,7 @@ public:
int getArea(int slIdx); // Wert der Area auslesen int getArea(int slIdx); // Wert der Area auslesen
PlpType getAppId(int slIdx); // Wert der AppId (BlePoll) auslesen PlpType getAppId(int slIdx); // Wert der AppId (BlePoll) auslesen
int getMeas(int slIdx, byte *dest); // Messwerte übergeben int getMeas(int slIdx, byte *dest); // Messwerte übergeben
int getCtrlM(int slIdx, byte *dest);
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
......
...@@ -37,6 +37,11 @@ ...@@ -37,6 +37,11 @@
// Vorwärtsreferenzen // Vorwärtsreferenzen
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// //
void ctrlIdle();
void ctrlInit();
void sendCtrl();
void checkCtrl();
void apInit(); void apInit();
void apWaitDE(); void apWaitDE();
void apWaitMeas(); void apWaitMeas();
......
...@@ -259,7 +259,9 @@ void loop() ...@@ -259,7 +259,9 @@ void loop()
// //
byte apTmpByteArray[256]; // Zwischenspeicher für Zeichenfolgen byte apTmpByteArray[256]; // Zwischenspeicher für Zeichenfolgen
int apNrOfMeasBytes; // Anzahl der empfangenen Messwertbytes int apNrOfMeasBytes; // Anzahl der empfangenen Messwertbytes
int apNrOfCtrlBytes; // Anzahl der empfangenen Steuerbytes inkl count und path
byte apMeasByteArray[32]; // Zwischenspeicher für Messwerte byte apMeasByteArray[32]; // Zwischenspeicher für Messwerte
byte apCtrlByteArray[32]; // Zwischenspeicher für Steuerbytes
byte apSlaveList[NrOfSlavesToPoll]; // Merker für gepollte Slaves byte apSlaveList[NrOfSlavesToPoll]; // Merker für gepollte Slaves
int apNrOfSlaves; // Aktuelle Anzahl von Slaves int apNrOfSlaves; // Aktuelle Anzahl von Slaves
int curListIdx; // Aktueller Index für Slaveliste int curListIdx; // Aktueller Index für Slaveliste
...@@ -352,6 +354,7 @@ void apProcMeas() ...@@ -352,6 +354,7 @@ void apProcMeas()
area = blePoll.getArea(slNr); area = blePoll.getArea(slNr);
pAppId = blePoll.getAppId(slNr); pAppId = blePoll.getAppId(slNr);
apNrOfMeasBytes = blePoll.getMeas(slNr, apMeasByteArray); apNrOfMeasBytes = blePoll.getMeas(slNr, apMeasByteArray);
apNrOfCtrlBytes = blePoll.getCtrlM(slNr, apCtrlByteArray);
#ifdef TEST001 #ifdef TEST001
ap.enter(apWaitMeas); ap.enter(apWaitMeas);
...@@ -530,6 +533,17 @@ void smCtrlPolling() ...@@ -530,6 +533,17 @@ void smCtrlPolling()
} }
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
else if(mon.lastKeyIn == 'K' || mon.lastKeyIn == 'k')
{
mon.print(slNr); mon.print((char *)"|");
for(int i= 0; i< apNrOfCtrlBytes; i++){
mon.print(apCtrlByteArray[i]);
mon.print((char *)" ");
}
mon.print((char *) "\n");
sm.resetEnter();
}
// --------------------------------------------------------------------------
else if(mon.lastKeyIn == 'L' || mon.lastKeyIn == 'l') else if(mon.lastKeyIn == 'L' || mon.lastKeyIn == 'l')
{ {
mon.print((char *) "Slave-Liste: "); mon.print((char *) "Slave-Liste: ");
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include "SoaapBleSlave.h" #include "SoaapBleSlave.h"
#define SlaveADR1 #define SlaveADR1
#define DebugTerminal
#ifdef SlaveADR1 #ifdef SlaveADR1
#define SlaveADR 1 #define SlaveADR 1
...@@ -310,7 +311,8 @@ bool xchgCtrl(PlpType plpType, byte *dest, byte *src, int sSize) ...@@ -310,7 +311,8 @@ bool xchgCtrl(PlpType plpType, byte *dest, byte *src, int sSize)
dest[di++] = procPath; dest[di++] = procPath;
dest[di++] = procCnt; dest[di++] = procCnt;
dest[di++] = (byte) (gpio.readArd(ArdA0A3) & 0x0F); dest[di++] = (byte) (gpio.readArd(ArdA0A3) & 0x0F);
dest[di++] = 0; dest[di++] = 0xAB;
retv = true; retv = true;
break; break;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment