[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[cash2ecash] branch master updated: debugging
From: |
gnunet |
Subject: |
[cash2ecash] branch master updated: debugging |
Date: |
Thu, 02 Jan 2025 19:36:10 +0100 |
This is an automated email from the git hooks/post-receive script.
manuel-geissbuehler pushed a commit to branch master
in repository cash2ecash.
The following commit(s) were added to refs/heads/master by this push:
new 86c5638 debugging
86c5638 is described below
commit 86c56384a14f26cc04a4b86ce840a26a4d52fbb2
Author: Manuel Geissbühler <manuel@debian>
AuthorDate: Thu Jan 2 19:35:45 2025 +0100
debugging
---
src/#cash2ecash.cpp# | 250 -----------------------------------------
src/.#cash2ecash.cpp | 1 -
src/bank/bankCommunication.hpp | 3 +-
src/cash2ecash.cpp | 2 +-
4 files changed, 3 insertions(+), 253 deletions(-)
diff --git a/src/#cash2ecash.cpp# b/src/#cash2ecash.cpp#
deleted file mode 100644
index 02a0472..0000000
--- a/src/#cash2ecash.cpp#
+++ /dev/null
@@ -1,250 +0,0 @@
-// This is the main function for the cash2ecash program
-#include <cstdio>
-#include <iostream>
-#include <ostream>
-#include <vector>
-#include <mutex>
-#include "utils.hpp"
-#include "gui.hpp"
-#include "global.hpp"
-#include "bank.hpp"
-
-// Global Definitions
-enum state_e {
- INIT,
- SLEEP,
- IDLE,
- CONNECTION,
- ACCEPTCASH,
- DONE,
- IDENTIFICATION,
- ENUM_STATE_END
-};
-#define NUMBER_OF_STATES 7
-
-enum state_e state = INIT;
-
-const char *withdrawal_id;
-const char *taler_withdraw_uri;
-
-std::vector<event_e> eventFIFO;
-std::mutex eventFIFOMutex;
-
-
-char hello[] = "hello";
-char world[] = "wold";
-char *string = hello;
-Gui gui;
-Timer withdrawalStatusTimer;
-
-ScreenWelcome *screenWelcome = new ScreenWelcome;
-ScreenIdentification *screenIdentification = new ScreenIdentification;
-ScreenConnection *screenConnection = new ScreenConnection;
-ScreenAcceptCash *screenAcceptCash = new ScreenAcceptCash(string);
-void guiDriver();
-BankCommunication bankCommunication;
-
-typedef void(*action_t)();
-
-typedef struct {
- action_t action;
- state_e nextState;
-} stateEventPair;
-
-stateEventPair stateEventTable[NUMBER_OF_STATES][NUMBER_OF_EVENTS];
-//std::vector< std::vector<stateEventPair> >stateEvent2dVector(6,
std::vector<stateEventPair>(4));
-
-
-void actionEventInitialize() {
- std::cout << "Event action initialze called" << std::endl;
- gui.setActiveScreen(screenWelcome);
-}
-
-void actionEventUnexpected(){
- std::cerr << "Event not expected in this state: " << state << std::endl;
-}
-
-void actionEventStart(){
- std::cout << "Action Event Start called" << std::endl;
- //gui.setActiveScreen(screenIdentification);
- gui.setActiveScreen(screenIdentification);
-}
-
-void actionEventAbortIdent(){
- std::cout << "Action Event Abort Ident called" << std::endl;
- gui.setActiveScreen(screenWelcome);
-}
-
-void actionEventAbortConnection(){
- std::cout << "Action Abort Connection called" << std::endl;
- gui.setActiveScreen(screenWelcome);
-}
-
-void actionEventFinishCashin(){
- std::cout << "Action Event Finish Cashin called" << std::endl;
- gui.setActiveScreen(screenWelcome);
-}
-
-void actionEventSleep() { std::cout << "Action Event xx called" << std::endl; }
-
-void actionEventWakeup() { std::cout << "Action Event xx called" << std::endl;
}
-
-void actionEventIdentificationSuccess(){
- std::cout << "Action Event Identification Success called" << std::endl;
- gui.setActiveScreen(screenConnection);
- bankCommunication.init();
-}
-
-void actionEventBankTokenDone(){
- std::cout << "Action Event Bank Token Done called" << std::endl;
- static struct TALER_Amount amountZero;
- TALER_amount_set_zero("KUDOS", &amountZero);
- bankCommunication.withdrawalRequest(NULL, &amountZero, &withdrawal_id,
&taler_withdraw_uri);
-}
-
-void actionEventBankWithdrawalDone(){
- std::cout << "Action Event Bank Withdrawal Done called" << std::endl;
- screenConnection->generateQR(taler_withdraw_uri);
- bankCommunication.withrawalStatusRequest(withdrawal_id);
-}
-
-void actionEventBankWStatusSelected(){
- std::cout << "Action Event Bank Withdrawal Status Confirmed called" <<
std::endl;
- gui.setActiveScreen(screenAcceptCash);
-}
-
-void actionEventBankWStatusPending(){
- std::cout << "Action Event Bank Withdrawal Status Pending called" <<
std::endl;
- bankCommunication.withrawalStatusRequest(withdrawal_id);
-}
-
-void actionEventWConfirmationDone(){
- std::cout << "Action Event Bank Confirmation Done called" << std::endl;
- gui.setActiveScreen(screenWelcome);
-}
-
-void actionEventIdentificationTimeout(){
- std::cout << "Action Event Identification Timeout called" << std::endl;
- gui.setActiveScreen(screenWelcome);
-}
-
-void actionEventAcceptCashTimeout(){
- std::cout << "Action Event Acceptcash Timeout called" << std::endl;
- static struct TALER_Amount confirmedAmount;
- TALER_string_to_amount("KUDOS:2.0", &confirmedAmount);
- bankCommunication.withdrawalConfirmReques(withdrawal_id, &confirmedAmount);
-}
-
-void actionEventConnectionTimeout(){
- std::cout << "Action Event Connection Timeout called" << std::endl;
- gui.setActiveScreen(screenWelcome);
-}
-
-void actionEventDoneTimeout() {
- std::cout << "Action Event Done Timeout called" << std::endl;
- gui.setActiveScreen(screenWelcome);
-}
-
-
-
-
-void initStateEvent(){
- //Runtime initialzation is used due to convienient array indexing.
- //Initzialize all state-event pairs to handleuUnexpectedEvent
- int state, event;
- for (state = 0; state < ENUM_STATE_END; state++) {
- for (event = 0; event < ENUM_EVENT_END; event++) {
- stateEventTable[state][event].action = &actionEventUnexpected;
- stateEventTable[state][event].nextState = (state_e)state;
- }
- }
-
- //Overwrite desired state-event pairs to provide actual functionality
- stateEventTable[INIT][EVENT_INITIALIZE].action = actionEventInitialize;
- stateEventTable[INIT][EVENT_INITIALIZE].nextState = IDLE;
- stateEventTable[IDLE][EVENT_BUTTON_START].action = actionEventStart;
- stateEventTable[IDLE][EVENT_BUTTON_START].nextState = IDENTIFICATION;
//needs to be changed to initialization later
- stateEventTable[IDLE][EVENT_SLEEP].action = actionEventSleep;
- stateEventTable[IDLE][EVENT_SLEEP].nextState = SLEEP;
-
- stateEventTable[SLEEP][EVENT_WAKEUP].action = actionEventWakeup;
- stateEventTable[SLEEP][EVENT_WAKEUP].nextState = IDLE;
-
- stateEventTable[IDENTIFICATION][EVENT_BUTTON_ABORT].action =
actionEventAbortIdent;
- stateEventTable[IDENTIFICATION][EVENT_BUTTON_ABORT].nextState = IDLE;
- stateEventTable[IDENTIFICATION][EVENT_IDENTIFICATION_SUCCESS].action =
actionEventIdentificationSuccess;
- stateEventTable[IDENTIFICATION][EVENT_IDENTIFICATION_SUCCESS].nextState =
CONNECTION;
- stateEventTable[IDENTIFICATION][EVENT_TIMEOUT].action =
actionEventIdentificationTimeout;
- stateEventTable[IDENTIFICATION][EVENT_TIMEOUT].nextState = IDLE;
-
- stateEventTable[CONNECTION][EVENT_BUTTON_ABORT].action =
actionEventAbortConnection;
- stateEventTable[CONNECTION][EVENT_BUTTON_ABORT].nextState = IDLE;
- stateEventTable[CONNECTION][EVENT_BANK_TOKEN_DONE].action =
actionEventBankTokenDone;
- stateEventTable[CONNECTION][EVENT_BANK_TOKEN_DONE].nextState = CONNECTION;
- stateEventTable[CONNECTION][EVENT_BANK_WITHDRAWAL_DONE].action =
actionEventBankWithdrawalDone;
- stateEventTable[CONNECTION][EVENT_BANK_WITHDRAWAL_DONE].nextState =
CONNECTION;
- stateEventTable[CONNECTION][EVENT_BANK_W_STATUS_PENDING].action =
actionEventBankWStatusPending;
- stateEventTable[CONNECTION][EVENT_BANK_W_STATUS_PENDING].nextState =
CONNECTION;
- stateEventTable[CONNECTION][EVENT_BANK_W_STATUS_SELECTED].action =
actionEventBankWStatusSelected;
- stateEventTable[CONNECTION][EVENT_BANK_W_STATUS_SELECTED].nextState =
ACCEPTCASH;
- stateEventTable[CONNECTION][EVENT_TIMEOUT].action =
actionEventConnectionTimeout;
- stateEventTable[CONNECTION][EVENT_TIMEOUT].nextState = IDLE;
-
- stateEventTable[ACCEPTCASH][EVENT_BUTTON_FINISH_CASHIN].action =
actionEventFinishCashin;
- stateEventTable[ACCEPTCASH][EVENT_BUTTON_FINISH_CASHIN].nextState = DONE;
- stateEventTable[ACCEPTCASH][EVENT_TIMEOUT].action =
actionEventAcceptCashTimeout;
- stateEventTable[ACCEPTCASH][EVENT_TIMEOUT].nextState = DONE;
- stateEventTable[DONE][EVENT_TIMEOUT].action = actionEventDoneTimeout;
- stateEventTable[DONE][EVENT_TIMEOUT].nextState = IDLE;
-}
-
-
-void event(event_e event){
- eventFIFOMutex.lock();
- eventFIFO.push_back(event);
- eventFIFOMutex.unlock();
-}
-
-void eventHandler(){
- state_e oldstate;
- event_e event;
- eventFIFOMutex.lock();
- while (0 < eventFIFO.size()) {
- oldstate = state;
- event = eventFIFO.front();
- eventFIFOMutex.unlock();
- state = stateEventTable[state][event].nextState;
- stateEventTable[oldstate][event].action();
- eventFIFOMutex.lock();
- eventFIFO.erase(eventFIFO.begin());
- }
- eventFIFOMutex.unlock();
-}
-
-int main(int argc, char *argv[]){
- char serialpath[] = "/dev/ttyAMA3";
- std::cout << "The Program is running" <<std::endl;
- Timer timer1;
- timer1.setTimeMillis(10000);
- TALER_Amount testamount;
-
- //Initialize State Machine
- initStateEvent();
-
- //Trigger Initialzation Event
- event(EVENT_INITIALIZE);
-
- while (true) {
- eventHandler();
- guiDriver();
- }
-}
-
-
-void guiDriver(){
- static Timer guiSleep;
- if (guiSleep.over()){
- guiSleep.setTimeMillis(gui.timerHandler());
- guiSleep.start();
- }
-}
diff --git a/src/.#cash2ecash.cpp b/src/.#cash2ecash.cpp
deleted file mode 120000
index 08d23a4..0000000
--- a/src/.#cash2ecash.cpp
+++ /dev/null
@@ -1 +0,0 @@
-manuel@debian.5156:1735820266
\ No newline at end of file
diff --git a/src/bank/bankCommunication.hpp b/src/bank/bankCommunication.hpp
index 11296b2..6a64582 100644
--- a/src/bank/bankCommunication.hpp
+++ b/src/bank/bankCommunication.hpp
@@ -7,6 +7,7 @@
#include <cstring>
#include <iostream>
#include <ostream>
+#include <thread>
class BankCommunication{
private:
@@ -41,7 +42,7 @@ class BankCommunication{
protected:
public:
void init(){
- bankCommunicationInit(initCallback);
+ std::thread threadInit(&bankCommunicationInit, initCallback);
}
void withdrawalRequest(struct TALER_Amount *amount, struct TALER_Amount
*suggestedAmount, const char **res_withdrawal_id, const char
**res_taler_withdraw_uri){
diff --git a/src/cash2ecash.cpp b/src/cash2ecash.cpp
index 02a0472..a058559 100644
--- a/src/cash2ecash.cpp
+++ b/src/cash2ecash.cpp
@@ -235,8 +235,8 @@ int main(int argc, char *argv[]){
event(EVENT_INITIALIZE);
while (true) {
- eventHandler();
guiDriver();
+ eventHandler();
}
}
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [cash2ecash] branch master updated: debugging, (continued)
- [cash2ecash] branch master updated: debugging, gnunet, 2025/01/02
- [cash2ecash] branch master updated: debugging, gnunet, 2025/01/02
- [cash2ecash] branch master updated: debugging, gnunet, 2025/01/02
- [cash2ecash] branch master updated: debugging, gnunet, 2025/01/02
- [cash2ecash] branch master updated: debugging, gnunet, 2025/01/02
- [cash2ecash] branch master updated: debugging, gnunet, 2025/01/02
- [cash2ecash] branch master updated: debugging, gnunet, 2025/01/02
- [cash2ecash] branch master updated: debugging, gnunet, 2025/01/02
- [cash2ecash] branch master updated: debugging, gnunet, 2025/01/02
- [cash2ecash] branch master updated: debugging, gnunet, 2025/01/02
- [cash2ecash] branch master updated: debugging,
gnunet <=
- [cash2ecash] branch master updated: debugging, gnunet, 2025/01/02
- [cash2ecash] branch master updated: debugging, gnunet, 2025/01/02
- [cash2ecash] branch master updated: debugging, gnunet, 2025/01/02
- [cash2ecash] branch master updated: debugging, gnunet, 2025/01/02
- [cash2ecash] branch master updated: debugging, gnunet, 2025/01/02
- [cash2ecash] branch master updated: debugging, gnunet, 2025/01/02