@@ -551,7 +551,40 @@ public static unsafe int GetMs1ScanNumberFromRt(long arg0, double arg1)
551551 }
552552
553553 [ UnmanagedCallersOnly ( EntryPoint = "get_chromatogram" ) ]
554- public static unsafe int GetChromatogram ( long arg0 , int arg1 , byte * arg2 , double * arg3 , double * arg4 , int arg5 , int arg6 , int arg7 , double * arg8 , double * arg9 , int arg10 ) { return RunOnWorker ( ( ) => { if ( ! _openFiles . TryGetValue ( arg0 , out var f ) ) return 0 ; try { return 0 ; } catch { return 0 ; } } ) ; }
554+ public static unsafe int GetChromatogram ( long arg0 , int arg1 , byte * arg2 , double * arg3 , double * arg4 , int arg5 , int arg6 , int arg7 , double * arg8 , double * arg9 , int arg10 )
555+ {
556+ return RunOnWorker ( ( ) => {
557+ if ( ! _openFiles . TryGetValue ( arg0 , out var f ) ) return 0 ;
558+ try {
559+ string filter = Marshal . PtrToStringAnsi ( ( IntPtr ) arg2 ) ?? "" ;
560+ var settings = new ChromatogramTraceSettings ( ( TraceType ) arg1 ) { Filter = filter } ;
561+
562+ if ( arg5 > 0 )
563+ {
564+ settings . MassRangeCount = arg5 ;
565+ for ( int i = 0 ; i < arg5 ; i ++ )
566+ {
567+ settings . SetMassRange ( i , new Range ( arg3 [ i ] , arg4 [ i ] ) ) ;
568+ }
569+ }
570+
571+ var data = f . GetChromatogramData ( new [ ] { settings } , arg6 , arg7 ) ;
572+
573+ if ( data == null || data . PositionsArray == null || data . PositionsArray . Length == 0 )
574+ {
575+ return 0 ;
576+ }
577+
578+ int count = Math . Min ( data . PositionsArray [ 0 ] . Length , arg10 ) ;
579+ for ( int i = 0 ; i < count ; i ++ )
580+ {
581+ arg8 [ i ] = data . PositionsArray [ 0 ] [ i ] ;
582+ arg9 [ i ] = data . IntensitiesArray [ 0 ] [ i ] ;
583+ }
584+ return count ;
585+ } catch { return 0 ; }
586+ } ) ;
587+ }
555588
556589 [ UnmanagedCallersOnly ( EntryPoint = "get_filters" ) ]
557590 public static unsafe int GetFilters ( long arg0 , byte * arg1 , int arg2 ) { return RunOnWorker ( ( ) => { if ( ! _openFiles . TryGetValue ( arg0 , out var f ) ) return 0 ; try { return 0 ; } catch { return 0 ; } } ) ; }
0 commit comments