aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTinWoodman92 <chrhodgden@gmail.com>2023-06-25 19:43:22 -0500
committerTinWoodman92 <chrhodgden@gmail.com>2023-06-25 19:43:22 -0500
commitf0dd55f5c89cfbff8b74ff408c4a2237896385ac (patch)
tree6a1e59b41b6f4055c6b9fcdf2269cc7e786e26d0
parentf17fc401c4e5a462d18209822b3c9e253ec7ec11 (diff)
Added boolean handling
-rw-r--r--dialoguer/__init__.py5
-rw-r--r--dialoguer/context_script.r28
2 files changed, 20 insertions, 13 deletions
diff --git a/dialoguer/__init__.py b/dialoguer/__init__.py
index ddff309..bf1e978 100644
--- a/dialoguer/__init__.py
+++ b/dialoguer/__init__.py
@@ -57,9 +57,8 @@ class Dialogue:
self._launch.start()
self._connect.join()
- data = self.recv(True)
- #This was not updated.
- self.active = (data == 'TRUE')
+ data = self.recv(set_data_type=bool)
+ self.active = (data == True)
def send(self, data, send_data_type = False):
if send_data_type:
diff --git a/dialoguer/context_script.r b/dialoguer/context_script.r
index 9c600f5..9d4a4d1 100644
--- a/dialoguer/context_script.r
+++ b/dialoguer/context_script.r
@@ -15,11 +15,10 @@ data_type_vect <- c(
bool = 'logical'
)
-display_msg <- function(msg) {
- cat(
- '\033[94m',
- msg,
- sep = '',
+display_msg <- function(...) {
+ cat('\033[94m')
+ cat(
+ ...,
end = '\033[0m\n'
)
}
@@ -42,6 +41,9 @@ bin_conv <- function(data, data_type_name = NA) {
} else if (is.integer(data) && is.na(data_type_name)) {
conv_data <- as.raw(data)
conv_data <- rawToBits(conv_data)
+ } else if (is.logical(data) && is.na(data_type_name)) {
+ conv_data <- as.raw(data)
+ conv_data <- rawToBits(conv_data)
# convert from binary
} else if (is.raw(data) && data_type_name == "character") {
conv_data <- add_missing_bits(data)
@@ -51,6 +53,10 @@ bin_conv <- function(data, data_type_name = NA) {
conv_data <- add_missing_bits(data)
conv_data <- packBits(conv_data, "raw")
conv_data <- as.integer(conv_data)
+ } else if (is.raw(data) && data_type_name == "logical") {
+ conv_data <- add_missing_bits(data)
+ conv_data <- packBits(conv_data, "raw")
+ conv_data <- as.logical(conv_data)
}
return(conv_data)
}
@@ -115,17 +121,19 @@ con <- find_connection()
#load target file
source(TARGET_FILE)
-confirm <- TRUE
-msg <- 'confirm'
+send(con, TRUE)
+msg <- ''
while (msg != '!DISCONNECT') {
# there should be several handeling methods
# returning variables
# evaluating expressions
- display_msg(msg)
- val <- get(msg)
- send(con, val, TRUE)
msg <- recv(con, FALSE, "character")
+ if (msg != '!DISCONNECT') {
+ val <- get(msg)
+ display_msg(msg, val)
+ send(con, val, TRUE)
+ }
}
close(con) \ No newline at end of file