Janis Streib
19.05.23 7fde24bbdc2208dca6c2436f62ee1cb5eb9eb7b0
ADD: digio support
4 files modified
22 ■■■■■ changed files
src/G4Export.cpp 10 ●●●●● patch | view | raw | blame | history
src/G4Hub.cpp 8 ●●●●● patch | view | raw | blame | history
src/G4Hub.h 3 ●●●●● patch | view | raw | blame | history
src/G4Trk.cpp 1 ●●●● patch | view | raw | blame | history
src/G4Export.cpp
@@ -56,6 +56,16 @@
            if(!use_text) {
                p << osc::BeginBundleImmediate;
            }
            p << osc::BeginMessage( (string("/g4/hub/") + std::to_string(prs->hubList[i].GetId()) + string("/digio")).c_str());
            std::ostringstream ss;
            if(use_text) {
                ss << prs->hubList[i].GetDigIOData();
                auto res = ss.str();
                p << res.c_str();
            } else {
                p << osc::int64(prs->hubList[i].GetDigIOData());
            }
            p << osc::EndMessage;
            auto dat = prs->hubList[i].GetPnoData();
            for(int j=0;j<G4_SENSORS_PER_HUB;j++) {
                if(!prs->hubList[i].IsSenActive(j)){
src/G4Hub.cpp
@@ -35,6 +35,14 @@
{
    return m_id;
}
uint32_t CG4Hub::GetDigIOData()
{
    return digio;
}
void CG4Hub::SetDigIOData(uint32_t data)
{
    digio = data;
}
bool CG4Hub::IsSenActive(int i)
{
src/G4Hub.h
@@ -20,6 +20,8 @@
    int GetId();
    void SetPnoData(float* pno,int sen);
    float (*GetPnoData())[6];
    void SetDigIOData(uint32_t pno);
    uint32_t GetDigIOData();
    bool IsSenActive(int i);
    CG4Hub();
    virtual ~CG4Hub();
@@ -30,6 +32,7 @@
    float m_col[3][3];
    int m_id;
    float m_pno[G4_SENSORS_PER_HUB][6];
    uint32_t digio;
};
#endif // !defined(AFX_G4HUB_H__41DD193E_B016_4FF7_93E6_CF8AEC652FF1__INCLUDED_)
src/G4Trk.cpp
@@ -125,6 +125,7 @@
    for (int a=0;a<m_numHubs;a++){
      if ((unsigned int)prs->hubList[a].GetId()==m_pframeData[i].hub){
    prs->hubreadmap|=(0x01<<a);
    prs->hubList[a].SetDigIOData(m_pframeData[i].dig_io);    // set digio
    for (int j=0;j<G4_SENSORS_PER_HUB;j++){
      if (m_pframeData[i].stationMap&(0x01<<j))
        prs->hubList[a].SetPnoData(m_pframeData[i].sfd[j].pos,j);    // set it