00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include "sos.h"
00012 #include <stdio.h>
00013
00014 SOS::SOS(
00015 const Id& n,
00016 In<Bits>& ScanHeaderBitsIn,
00017 Out<VYAimageDepth>& scanDepthOut,
00018 Out<VYAimageComponent>& scanComponentIdOut,
00019 Out<VYAid>& HTableIdOut)
00020 :
00021 Process(n),
00022 ScanHeaderBitsInP( id("ScanHeaderBitsInP"), ScanHeaderBitsIn),
00023 scanDepthOutP( id("scanDepthOutP"), scanDepthOut),
00024 scanComponentIdOutP( id("scanComponentIdOutP"), scanComponentIdOut),
00025 HTableIdOutP( id("HTableIdOutP"), HTableIdOut)
00026 {
00027 }
00028
00029 void SOS::main()
00030 {
00031 Bits aux;
00032 VYAimageDepth numberOfComponents;
00033 VYAimageComponent scanComponentId;
00034 VYAid HTableId;
00035
00036 while (true)
00037 {
00038 read(ScanHeaderBitsInP, aux);
00039 read(ScanHeaderBitsInP, aux);
00040 read(ScanHeaderBitsInP, numberOfComponents);
00041 write(scanDepthOutP, numberOfComponents);
00042 for (unsigned int i=0; i<numberOfComponents; i++)
00043 {
00044 read(ScanHeaderBitsInP, aux);
00045 scanComponentId = aux-1;
00046 write(scanComponentIdOutP, scanComponentId);
00047 read(ScanHeaderBitsInP, HTableId);
00048 write(HTableIdOutP, HTableId);
00049 }
00050 read(ScanHeaderBitsInP, aux);
00051 read(ScanHeaderBitsInP, aux);
00052 read(ScanHeaderBitsInP, aux);
00053 }
00054 }