
Комментарии 12
Небольшой промптинг привёл к более железобетонному чистому С с bitfield-ами и LUT для конечного автомата, как раз для мелких контроллеров носимых изделий. Для текста - отдельные таблицы.
Автомат с LUT
#include <stdint.h>
// Numeric mappings for States and Outputs
typedef enum { ST_START = 0, ST_SLEEP, ST_REST, ST_WALK, ST_RUN } State;
typedef enum { Y0_NULL = 0, Y1, Y2, Y3 } Output;
// Bitfield for packed inputs
typedef struct {
uint8_t x2 : 1; // Bit 0
uint8_t x3 : 1; // Bit 1
uint8_t x4 : 1; // Bit 2
uint8_t _res: 5;
} InputBits;
typedef struct {
State next_state;
Output output_id;
} Transition;
// Transition table: [CurrentState][InputBitmask]
// InputBitmask = (x4 << 2) | (x3 << 1) | (x2)
static const Transition TBL_BONYA[5][8] = {
[ST_START] = { {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3} },
[ST_SLEEP] = { {0,0}, {1,1}, {2,2}, {1,1}, {0,0}, {1,1}, {2,2}, {1,1} },
[ST_REST] = { {4,2}, {1,2}, {2,1}, {2,1}, {3,2}, {1,2}, {2,1}, {2,1} },
[ST_WALK] = { {4,2}, {0,0}, {2,2}, {2,2}, {3,1}, {3,1}, {3,1}, {3,1} },
[ST_RUN] = { {4,1}, {0,0}, {0,0}, {0,0}, {3,2}, {3,2}, {3,2}, {3,2} }
};
typedef struct {
State current;
int intensity;
int activity;
} FBonya;
// Output dispatcher using enum IDs
void execute_y(FBonya* obj, Output y) {
switch (y) {
case Y2:
// Custom y2 logic from your simulator class
obj->intensity = 100; // Simulated GetDataSrc()
obj->activity = 50;
break;
case Y1: /* default logic */ break;
case Y3: /* init logic */ break;
default: break;
}
}
void step_fsa(FBonya* obj, InputBits in) {
// Convert bitfield to index 0-7
uint8_t idx = (in.x4 << 2) | (in.x3 << 1) | in.x2;
Transition t = TBL_BONYA[obj->current][idx];
if (t.next_state != 0 || t.output_id != 0) {
obj->current = t.next_state;
execute_y(obj, t.output_id);
}
}
Промпт: convert to pure C with bitfield state machine do not use text fields
Хейт к Виктории Боне роняет ценность вашей статьи.
Это шутка. Захотелось немного приколоться над действительностью :)
По поводу чего хейт? Это ж вроде какая-то инстаграмщица, одна из тысяч.
Которая, к тому же, считает, что вышки связи 5G создаются для облучения населения "микроволными волнами" и снижения иммунитета, а пандемия в 20-х была создана искуственно для чипирования людей под видом вакцинации по плану Билла Гейтса :) в общем, не знаю, откуда и почему у неё столько защитников на данной платформе
А хейт к её оппоненту в недавнем споре - поднимает.
нет она динамический переворачивающийся триггер
Браслет для Бони