This commit is contained in:
parent
d69c4cda68
commit
2d8b66e1e8
@ -30,5 +30,6 @@ namespace skyscraper5.src.InteractionChannel
|
|||||||
void OnReturnTransmissionMOdes(PhysicalAddress macAddress, _0xb2_ReturnTransmissionModesDescriptor descriptor);
|
void OnReturnTransmissionMOdes(PhysicalAddress macAddress, _0xb2_ReturnTransmissionModesDescriptor descriptor);
|
||||||
void OnConnectionControl(PhysicalAddress macAddress, _0xaf_ConnectionControlDescriptor descriptor);
|
void OnConnectionControl(PhysicalAddress macAddress, _0xaf_ConnectionControlDescriptor descriptor);
|
||||||
void OnTerminalBurstTimePlan2(ushort interactiveNetworkId, Tbtp2 tbtp2);
|
void OnTerminalBurstTimePlan2(ushort interactiveNetworkId, Tbtp2 tbtp2);
|
||||||
|
void OnFrameComposition2(ushort? networkId, Fct2 fct2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -204,7 +204,9 @@ namespace skyscraper5.src.InteractionChannel
|
|||||||
_handler.OnInteractionChannelError(InteractionChannelErrorState.Fct2Invalid);
|
_handler.OnInteractionChannelError(InteractionChannelErrorState.Fct2Invalid);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
throw new NotImplementedException("FCT2");
|
|
||||||
|
Handler.OnFrameComposition2(NetworkId, fct2);
|
||||||
|
return;
|
||||||
case 0xAC: //BCT
|
case 0xAC: //BCT
|
||||||
//see en_30154502v010401p.pdf, page 49
|
//see en_30154502v010401p.pdf, page 49
|
||||||
throw new NotImplementedException("BCT");
|
throw new NotImplementedException("BCT");
|
||||||
|
|||||||
@ -9,11 +9,12 @@ using skyscraper5.Skyscraper.IO;
|
|||||||
|
|
||||||
namespace skyscraper5.src.InteractionChannel.Model2
|
namespace skyscraper5.src.InteractionChannel.Model2
|
||||||
{
|
{
|
||||||
internal class Fct2 : Validatable
|
public class Fct2 : Validatable
|
||||||
{
|
{
|
||||||
public Fct2(MemoryStream ms)
|
public Fct2(MemoryStream ms)
|
||||||
{
|
{
|
||||||
byte frameTypeLoopCount = ms.ReadUInt8();
|
byte frameTypeLoopCount = ms.ReadUInt8();
|
||||||
|
frameTypeLoopCount--;
|
||||||
FrameTypes = new Frame[frameTypeLoopCount];
|
FrameTypes = new Frame[frameTypeLoopCount];
|
||||||
for (int i = 0; i < frameTypeLoopCount; i++)
|
for (int i = 0; i < frameTypeLoopCount; i++)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -27,6 +27,11 @@ namespace skyscraper5.src.InteractionChannel
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void OnFrameComposition2(ushort? networkId, Fct2 fct2)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
public void OnContentionControl(PhysicalAddress macAddress, _0xab_ContentionControlDescriptor ccd)
|
public void OnContentionControl(PhysicalAddress macAddress, _0xab_ContentionControlDescriptor ccd)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2413,6 +2413,18 @@ namespace skyscraper5.Skyscraper.Scraper
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void OnFrameComposition2(ushort? networkId, Fct2 fct2)
|
||||||
|
{
|
||||||
|
foreach (Fct2.Frame frame in fct2.FrameTypes)
|
||||||
|
{
|
||||||
|
if (!DataStorage.TestForFrameComposition2(networkId.Value, frame))
|
||||||
|
{
|
||||||
|
LogEvent(SkyscraperContextEvent.FrameComposition2,String.Format("Network ID = {0}, Frame Type = {1}",networkId.Value,frame.FrameType));
|
||||||
|
DataStorage.InsertFct2Frame(networkId.Value, frame);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void InteractionChannelHandler.OnTimeslotComposition(ushort interactiveNetworkId, Tct tct)
|
void InteractionChannelHandler.OnTimeslotComposition(ushort interactiveNetworkId, Tct tct)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
|
|||||||
@ -86,6 +86,7 @@
|
|||||||
OtvSsuComplete,
|
OtvSsuComplete,
|
||||||
NdsSsuFileAnnounced,
|
NdsSsuFileAnnounced,
|
||||||
NdsSsuProgress,
|
NdsSsuProgress,
|
||||||
TerminalBurstTimePlan2
|
TerminalBurstTimePlan2,
|
||||||
|
FrameComposition2
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -196,5 +196,7 @@ namespace skyscraper8.Skyscraper.Scraper.Storage
|
|||||||
object[] GetLastUiBlindscanSettings();
|
object[] GetLastUiBlindscanSettings();
|
||||||
bool TestForTerminalBurstTimePlan2(ushort interactiveNetworkId, byte tbtp2GroupId, byte frameFrameNumber);
|
bool TestForTerminalBurstTimePlan2(ushort interactiveNetworkId, byte tbtp2GroupId, byte frameFrameNumber);
|
||||||
void StoreTerminalBurstTimePlan2(ushort interactiveNetworkId, byte tbtp2GroupId, Tbtp2.Frame frame);
|
void StoreTerminalBurstTimePlan2(ushort interactiveNetworkId, byte tbtp2GroupId, Tbtp2.Frame frame);
|
||||||
|
bool TestForFrameComposition2(ushort networkId, Fct2.Frame fct2);
|
||||||
|
void InsertFct2Frame(ushort networkId, Fct2.Frame frame);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1166,6 +1166,16 @@ namespace skyscraper5.Skyscraper.Scraper.Storage.Filesystem
|
|||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool TestForFrameComposition2(ushort networkId, Fct2.Frame fct2)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void InsertFct2Frame(ushort networkId, Fct2.Frame frame)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
public IEnumerable<Tuple<int, int, ProgramMapping>> SelectAllPmt()
|
public IEnumerable<Tuple<int, int, ProgramMapping>> SelectAllPmt()
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
|
|||||||
@ -986,6 +986,25 @@ namespace skyscraper5.Skyscraper.Scraper.Storage.InMemory
|
|||||||
_tbtp2.Add(key, frame);
|
_tbtp2.Add(key, frame);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Dictionary<Tuple<ushort, byte>, Fct2.Frame> _fct2Frames;
|
||||||
|
public bool TestForFrameComposition2(ushort networkId, Fct2.Frame fct2)
|
||||||
|
{
|
||||||
|
if (_fct2Frames == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
Tuple<ushort, byte> key = new Tuple<ushort, byte>(networkId, fct2.FrameType);
|
||||||
|
return _fct2Frames.ContainsKey(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void InsertFct2Frame(ushort networkId, Fct2.Frame frame)
|
||||||
|
{
|
||||||
|
if (_fct2Frames == null)
|
||||||
|
_fct2Frames = new Dictionary<Tuple<ushort, byte>, Fct2.Frame>();
|
||||||
|
|
||||||
|
Tuple<ushort, byte> key = new Tuple<ushort, byte>(networkId, frame.FrameType);
|
||||||
|
_fct2Frames.Add(key, frame);
|
||||||
|
}
|
||||||
|
|
||||||
public IEnumerable<Tuple<int, int, ProgramMapping>> SelectAllPmt()
|
public IEnumerable<Tuple<int, int, ProgramMapping>> SelectAllPmt()
|
||||||
{
|
{
|
||||||
for (int x = 0; x < pmtEntries.Length; x++)
|
for (int x = 0; x < pmtEntries.Length; x++)
|
||||||
|
|||||||
@ -192,5 +192,10 @@ namespace skyscraper5.src.Skyscraper.Scraper.StreamAutodetection.Contestants
|
|||||||
Score++;
|
Score++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void OnFrameComposition2(ushort? networkId, Fct2 fct2)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user