]> jspc29.x-matter.uni-frankfurt.de Git - trbnettools.git/commitdiff
LM: added register_write_mem function
authorhadaq <hadaq>
Wed, 6 Jun 2012 21:57:33 +0000 (21:57 +0000)
committerhadaq <hadaq>
Wed, 6 Jun 2012 21:57:33 +0000 (21:57 +0000)
libtrbnet_perl/TrbNet.xs
libtrbnet_perl/lib/HADES/TrbNet.pm

index 53e8bb6e47f214513896b35d52f71ea8eef64232..25205e9f96c89e48dd507d7a8086d057b5ecbe40 100644 (file)
@@ -129,13 +129,39 @@ trb_register_write(trb_address, reg_address, value)
        int status;
        
      PPCODE:
-       status = trb_register_write(trb_address,reg_address, value);
+       status = trb_register_write(trb_address, reg_address, value);
        if (status < 0) {
           XSRETURN_UNDEF;
        } else {
           XPUSHs(sv_2mortal(newSVuv(1))); 
        }
 
+void
+trb_register_write_mem(trb_address, reg_address, option, data, size)
+       U16 trb_address
+       U16 reg_address 
+       U16 option
+       AV * data
+       U16 size
+     INIT:
+       int i;
+       int status;
+       
+     PPCODE:
+       for (i = 0; i < size; i++) {
+         buffer[i] = SvUV(*av_fetch(data, i, 0));
+       }
+
+       status = trb_register_write_mem(trb_address, reg_address,
+                                       option, buffer, size);
+       
+       printf("Status: %d\n", status);
+       if (status < 0) {
+         XSRETURN_UNDEF;
+       } else {
+         XPUSHs(sv_2mortal(newSVuv(1)));
+       }
+
 void
 trb_read_uid_c(trb_address)
        U16 trb_address
@@ -185,4 +211,4 @@ trb_register_modify(trb_address, reg_address, mode, bitMask, bitValue)
        XSRETURN_UNDEF;
      } else {
        XPUSHs(sv_2mortal(newSVuv(1)));
-     }
\ No newline at end of file
+     }
index bffa53ee31effdb83c594c0e7c2b75e12fcd235c..387f984b2a922414fb80bffa0c88d5b03385427d 100644 (file)
@@ -30,6 +30,7 @@ our %EXPORT_TAGS = ( 'all' => [ qw(
                                    trb_register_read_mem_c
                                    trb_registertime_read_mem_c
                                    trb_register_write
+                                   trb_register_write_mem
                                    trb_read_uid
                                    trb_read_uid_c
                                    trb_nettrace