init
This commit is contained in:
33
src/states/debug_state.c
Normal file
33
src/states/debug_state.c
Normal file
@@ -0,0 +1,33 @@
|
||||
#include <stdio.h>
|
||||
|
||||
#include "state.h"
|
||||
#include "../device.h"
|
||||
|
||||
const char debug_state_name[] = __FILE_NAME__;
|
||||
|
||||
static void pressPwrMethod(Device_t *device) {
|
||||
printf("turning off device\n");
|
||||
setOffState(device);
|
||||
}
|
||||
|
||||
static void pressStrInputMethod(Device_t *device) {
|
||||
printf("nothing happens\n");
|
||||
}
|
||||
|
||||
static void pressLockMethod(Device_t *device) {
|
||||
printf("locking device\n");
|
||||
setOffState(device);
|
||||
}
|
||||
|
||||
void setDebugState(Device_t *device) {
|
||||
device->state = (DeviceState_t){
|
||||
.state_name = debug_state_name,
|
||||
.device = device,
|
||||
.methods = (DeviceInterface_t){
|
||||
.pressPwr = &pressPwrMethod,
|
||||
.pressStrInput = &pressStrInputMethod,
|
||||
.pressLock = &pressLockMethod,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
45
src/states/lock_state.c
Normal file
45
src/states/lock_state.c
Normal file
@@ -0,0 +1,45 @@
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "state.h"
|
||||
#include "../device.h"
|
||||
|
||||
const char lock_state_name[] = __FILE_NAME__;
|
||||
|
||||
static void pressPwrMethod(Device_t *device) {
|
||||
printf("turning off device\n");
|
||||
setOffState(device);
|
||||
}
|
||||
|
||||
static void pressStrInputMethod(Device_t *device) {
|
||||
if (strcmp(device->entered_string, "dbg") == 0) {
|
||||
printf("entering debug state\n");
|
||||
setDebugState(device);
|
||||
return;
|
||||
}
|
||||
if (strcmp(device->entered_string, "pwd") == 0) {
|
||||
printf("entering unlock state\n");
|
||||
setUnlockState(device);
|
||||
return;
|
||||
}
|
||||
|
||||
printf("unknown string %s\n", device->entered_string);
|
||||
|
||||
}
|
||||
|
||||
static void pressLockMethod(Device_t *device) {
|
||||
printf("nothing happens\n");
|
||||
}
|
||||
|
||||
void setLockState(Device_t *device) {
|
||||
device->state = (DeviceState_t){
|
||||
.state_name = lock_state_name,
|
||||
.device = device,
|
||||
.methods = (DeviceInterface_t){
|
||||
.pressPwr = &pressPwrMethod,
|
||||
.pressStrInput = &pressStrInputMethod,
|
||||
.pressLock = &pressLockMethod,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
31
src/states/off_state.c
Normal file
31
src/states/off_state.c
Normal file
@@ -0,0 +1,31 @@
|
||||
#include "state.h"
|
||||
#include "../device.h"
|
||||
#include <stdio.h>
|
||||
|
||||
const char off_state_name[] = __FILE_NAME__;
|
||||
|
||||
static void pressPwrMethod(Device_t *device) {
|
||||
printf("turning on device\n");
|
||||
setLockState(device);
|
||||
}
|
||||
|
||||
static void pressStrInputMethod(Device_t *device) {
|
||||
printf("nothing happens\n");
|
||||
}
|
||||
|
||||
static void pressLockMethod(Device_t *device) {
|
||||
printf("nothing happens\n");
|
||||
}
|
||||
|
||||
void setOffState(Device_t *device) {
|
||||
device->state = (DeviceState_t){
|
||||
.state_name = off_state_name,
|
||||
.device = device,
|
||||
.methods = (DeviceInterface_t){
|
||||
.pressPwr = &pressPwrMethod,
|
||||
.pressStrInput = &pressStrInputMethod,
|
||||
.pressLock = &pressLockMethod,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
7
src/states/state.h
Normal file
7
src/states/state.h
Normal file
@@ -0,0 +1,7 @@
|
||||
#pragma once
|
||||
#include "../device.h"
|
||||
|
||||
void setLockState(Device_t *device);
|
||||
void setUnlockState(Device_t *device);
|
||||
void setDebugState(Device_t *device);
|
||||
void setOffState(Device_t *device);
|
||||
37
src/states/unlock_state.c
Normal file
37
src/states/unlock_state.c
Normal file
@@ -0,0 +1,37 @@
|
||||
#include "state.h"
|
||||
#include "../device.h"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
const char name[] = __FILE_NAME__;
|
||||
|
||||
static void pressPwrMethod(Device_t *device) {
|
||||
printf("turning off device\n");
|
||||
setOffState(device);
|
||||
}
|
||||
|
||||
static void pressStrInputMethod(Device_t *device) {
|
||||
if (strcmp(device->entered_string, "dbg") == 0) {
|
||||
printf("entering debug state\n");
|
||||
setDebugState(device);
|
||||
}
|
||||
printf("unknown string %s\n", device->entered_string);
|
||||
}
|
||||
|
||||
static void pressLockMethod(Device_t *device) {
|
||||
printf("locking device\n");
|
||||
setLockState(device);
|
||||
}
|
||||
|
||||
void setUnlockState(Device_t *device) {
|
||||
device->state = (DeviceState_t){
|
||||
.state_name = name,
|
||||
.device = device,
|
||||
.methods = (DeviceInterface_t){
|
||||
.pressPwr = &pressPwrMethod,
|
||||
.pressStrInput = &pressStrInputMethod,
|
||||
.pressLock = &pressLockMethod,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user