LCOV - code coverage report
Current view: top level - felix-star/src - bus.c (source / functions) Hit Total Coverage
Test: coverage.info Lines: 25 31 80.6 %
Date: 2025-06-10 03:23:28 Functions: 1 1 100.0 %

          Line data    Source code
       1             : #include <limits.h>
       2             : #include <unistd.h>
       3             : #include <string.h>
       4             : 
       5             : #include "felixbus/felixbus.h"
       6             : #include "bus.h"
       7             : #include "log.h"
       8             : 
       9             : #define MAX_LINE_SIZE (4096)
      10             : 
      11             : void
      12          83 : bus_write(felix_bus bus, struct elink_descr* elinks, unsigned num, int pubsub, int unbuffered, struct config* cfg)
      13             : {
      14         210 :   for(unsigned int i = 0; i < num; i++) {
      15         127 :     struct elink_descr* e = elinks+i;
      16         127 :     unsigned int max_sid = e->has_streams ? 256 : 1;
      17        1274 :     for(unsigned int sid = 0; sid < max_sid; sid++) {
      18        1147 :       uint8_t to_flx = !pubsub;
      19        1147 :       uint8_t virtual = e->type == TTC;
      20        1147 :       uint64_t fid = get_fid(cfg->co, e->elink + cfg->elink_offset, sid, cfg->vid, to_flx, virtual);
      21        1147 :       struct felix_bus_info info;      
      22        1147 :       if ((cfg->ttcport != 0) && (e->type == TTC)) {
      23           4 :         info.ip = cfg->ip;
      24           4 :         info.port = cfg->ttcport;
      25           4 :         info.unbuffered = false;
      26           4 :         info.pubsub = true;
      27           4 :         info.netio_pages = cfg->ttc_netio_pages;
      28           4 :         info.netio_pagesize = cfg->ttc_netio_pagesize;
      29             :       }
      30        1143 :       else if ((cfg->dcsport != 0) && ((e->type == DCS) || (e->type == IC))){
      31           0 :         info.ip = cfg->ip;
      32           0 :         info.port = cfg->dcsport;
      33           0 :         info.unbuffered = !cfg->dcs_buffered;
      34           0 :         info.pubsub = true;
      35           0 :         info.netio_pages = cfg->dcs_netio_pages;
      36           0 :         info.netio_pagesize = cfg->dcs_netio_pagesize;
      37             :       }
      38             :       else {
      39        1143 :         info.ip = cfg->ip;
      40        1143 :         info.port = cfg->port;
      41        1143 :         info.unbuffered = unbuffered;
      42        1143 :         info.pubsub = pubsub;
      43        1143 :         info.netio_pages = cfg->netio_pages;
      44        1143 :         info.netio_pagesize = cfg->netio_pagesize;
      45             :       }
      46        1147 :       felix_bus_write(bus, fid, &info);
      47             :     }
      48             :   }
      49          83 : }

Generated by: LCOV version 1.0