Skip to content

Instantly share code, notes, and snippets.

View frame-lang's full-sized avatar

Mark Truluck frame-lang

View GitHub Profile
@frame-lang
frame-lang / Frame HSM
Last active September 25, 2023 01:13
Frame Hierarchical State Machine
`import sys`
#![generate_frame_event]
fn main {
var hsm:# = #HierarchicalStateMachine()
hsm.start()
hsm.stop()
}
func (m *trafficLightManagerStruct) initTrafficLight() {
sendMessage("sendResponseToUI", "begin", "", "true")
time.Sleep(1 * time.Second)
}
func (m *trafficLightManagerStruct) startFlashingTimer() {
sendMessage("timerEvent", "startFlashingTimer", "", "")
}
func (m *trafficLightStruct) initTrafficLight() {
m._manager_.InitTrafficLight()
}
func (m *trafficLightStruct) startWorkingTimer() {
m._manager_.StartWorkingTimer()
}
func init() {
// For testing
cloudFunctionID = strconv.FormatInt(time.Now().UTC().UnixNano(), 10)
log.Println("A new cloud function is being inilialized: ", cloudFunctionID)
// err is pre-declared to avoid shadowing client.
var err error
// client is initialized with context.Background() because it should
// persist between function invocations.
func (m *trafficLightMomStruct) getFromRedis() []byte {
conn := redisPool.Get()
defer conn.Close()
data, err := redis.String(conn.Do("GET", userID))
if err != nil {
log.Println(err)
}
log.Println("Data Received from Redis for User ", userID, "->", data)
package trafficlight
import (
"time"
"log"
"github.com/gomodule/redigo/redis"
)
func (m *trafficLightMomStruct) initTrafficLight() {
$Working => $HandleExternalEvents
$HandleExternalEvents => $HandleControllerEvents
|tick|
trafficLight.Tick() -> "Tick" $Save ^
|systemError|
trafficLight.SystemError() -> "System\nError" $Save ^
|systemRestart|
```
package trafficlight
import (
"github.com/frame-lang/cloudtraffic/cloudtraffic_v2/framelang"
)
```
#TrafficLightManager >[createWorkflow:bool]
// Package p contains a Pub/Sub Cloud Function.
package trafficlight
import (
"context"
"log"
"os"
"strconv"
"time"
```
package trafficlight
import (
"encoding/json"
"github.com/frame-lang/cloudtraffic/cloudtraffic_v2/framelang"
)
```
#[derive(Marshal)]