update ctypes Test input to bytes

This commit is contained in:
lyon1998 2022-04-19 18:30:24 +08:00
parent e44f9c2368
commit b015af566d
8 changed files with 29 additions and 4 deletions

View File

@ -23,7 +23,7 @@ int ctypes_Test_add(PikaObj* self, PikaObj* c_uint1, PikaObj* c_uint2) {
int ctypes_Test_dc_cpuapdu_hex(PikaObj* self,
PikaObj* rcvbuf,
PikaObj* rlen,
char* sendbuf,
uint8_t* sendbuf,
int slen) {
printf("input: slen = %d, sendbuf = %s\n", slen, sendbuf);
ctypesUtils_setInt(rlen, 5);

View File

@ -31,5 +31,5 @@ class c_longdouble(c_float):...
class Test(TinyObj):
def add(self, c_uint1:c_uint, c_uint2:c_uint)->int:...
def dc_cpuapdu_hex(self, slen:int, sendbuf:str, rlen:c_uint, rcvbuf:c_char_p) -> int:...
def dc_cpuapdu_hex(self, slen:int, sendbuf:bytes, rlen:c_uint, rcvbuf:c_char_p) -> int:...
def print_rcv(self, rcvbuf: c_char_p):...

View File

@ -31,5 +31,5 @@ class c_longdouble(c_float):...
class Test(TinyObj):
def add(self, c_uint1:c_uint, c_uint2:c_uint)->int:...
def dc_cpuapdu_hex(self, slen:int, sendbuf:str, rlen:c_uint, rcvbuf:c_char_p) -> int:...
def dc_cpuapdu_hex(self, slen:int, sendbuf:bytes, rlen:c_uint, rcvbuf:c_char_p) -> int:...
def print_rcv(self, rcvbuf: c_char_p):...

View File

@ -23,7 +23,7 @@ int ctypes_Test_add(PikaObj* self, PikaObj* c_uint1, PikaObj* c_uint2) {
int ctypes_Test_dc_cpuapdu_hex(PikaObj* self,
PikaObj* rcvbuf,
PikaObj* rlen,
char* sendbuf,
uint8_t* sendbuf,
int slen) {
printf("input: slen = %d, sendbuf = %s\n", slen, sendbuf);
ctypesUtils_setInt(rlen, 5);

View File

@ -1,3 +1,8 @@
if [ $# != 1 ] ; then
echo "USAGE: $0 [pkg name]"
echo " e.g.: $0 ctypes"
exit 1;
fi
pkg=$1
cp package/pikascript/pikascript-lib/$pkg ../../package/ -r
cp package/pikascript/$pkg.py ../../package/$pkg/

View File

@ -826,18 +826,26 @@ void obj_sysPrintf(PikaObj* self, char* fmt, ...) {
va_end(args);
}
void method_returnBytes(Args* args, uint8_t* val){
args_setBytes(args, "return", val, PIKA_BYTES_DEFAULT_SIZE);
}
void method_returnStr(Args* args, char* val) {
args_setStr(args, "return", val);
}
void method_returnInt(Args* args, int32_t val) {
args_setInt(args, "return", val);
}
void method_returnFloat(Args* args, float val) {
args_setFloat(args, "return", val);
}
void method_returnPtr(Args* args, void* val) {
args_setPtr(args, "return", val);
}
void method_returnArg(Args* args, Arg* arg) {
arg = arg_setName(arg, "return");
args_setArg(args, arg);
@ -846,9 +854,11 @@ void method_returnArg(Args* args, Arg* arg) {
int32_t method_getInt(Args* args, char* argName) {
return args_getInt(args, argName);
}
float method_getFloat(Args* args, char* argName) {
return args_getFloat(args, argName);
}
char* method_getStr(Args* args, char* argName) {
return args_getStr(args, argName);
}

View File

@ -33,6 +33,7 @@
#define PIKA_STACK_BUFF_SIZE 256
#define PIKA_NAME_BUFF_SIZE 32
#define PIKA_PATH_BUFF_SIZE 64
#define PIKA_BYTES_DEFAULT_SIZE 64
#define PIKA_ARG_ALIGN_ENABLE 1
#define PIKA_METHOD_CACHE_ENABLE 0
#define PIKA_BUILTIN_LIST_ENABLE 0

View File

@ -17,6 +17,9 @@ impl PyType {
if self.type_name == "str" {
return "char*".to_string();
}
if self.type_name == "bytes" {
return "uint8_t*".to_string();
}
if self.type_name == "" {
return "void".to_string();
}
@ -46,6 +49,9 @@ impl PyType {
if self.type_name == "str" {
return "method_returnStr".to_string();
}
if self.type_name == "bytes" {
return "method_returnBytes".to_string();
}
if self.type_name == "any" {
return "method_returnArg".to_string();
}
@ -82,6 +88,9 @@ impl PyType {
if self.type_name == "str" {
return "args_getStr".to_string();
}
if self.type_name == "bytes" {
return "args_getBytes".to_string();
}
if self.type_name == "any" {
return "args_getArg".to_string();
}