Skip to content

Commit daa7dce

Browse files
authored
Merge pull request #90 from ShimmerEngineering/CA-93_2
CA-93 Shimmer 3 CRC Support
2 parents 877bfcf + 36aa869 commit daa7dce

File tree

1 file changed

+37
-26
lines changed

1 file changed

+37
-26
lines changed

ShimmerAPI/ShimmerAPI/ShimmerBluetooth.cs

Lines changed: 37 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -4797,56 +4797,56 @@ protected void SetCompatibilityCode()
47974797
{
47984798
if (FirmwareIdentifier == ShimmerBluetooth.FW_IDENTIFIER_BTSTREAM) //BtStream //Also Used For EXG MD, 9/2/2018: No longer used for newer ECGMD fw versions
47994799
{
4800-
if (FirmwareMajor == 0 && FirmwareMinor == 1)//FirmwareVersion == 0.1)
4800+
if (compareVersions(0, 8))//(FirmwareVersion >= 0.8)
48014801
{
4802-
CompatibilityCode = 1;
4802+
CompatibilityCode = 7;
48034803
}
4804-
else if (FirmwareMajor == 0 && FirmwareMinor == 2)//FirmwareVersion == 0.2)
4804+
else if (compareVersions(0, 7, 3))//(FirmwareVersion >= 0.7 && FirmwareInternal>2)
48054805
{
4806-
CompatibilityCode = 2;
4806+
CompatibilityCode = 7; //skip CompatibilityCode = 6 since functionality of code 6 and 7 was introduced at the same time
48074807
}
4808-
else if (FirmwareMajor == 0 && FirmwareMinor == 3)//FirmwareVersion == 0.3)
4808+
else if (compareVersions(0, 5) && (!compareVersions(0, 7, 3)))//(FirmwareVersion >= 0.5 && (FirmwareVersion <= 0.7 && FirmwareInternal <= 2))
48094809
{
4810-
CompatibilityCode = 3;
4810+
CompatibilityCode = 5;
48114811
}
4812-
else if (FirmwareMajor == 0 && FirmwareMinor == 4)//FirmwareVersion == 0.4)
4812+
else if (compareVersions(0, 4))//FirmwareVersion == 0.4)
48134813
{
48144814
CompatibilityCode = 4;
48154815
}
4816-
else if ((FirmwareMajor == 0 && FirmwareMinor >= 5) && (FirmwareMajor == 0 && FirmwareMinor <= 7 && FirmwareInternal <= 2))//(FirmwareVersion >= 0.5 && (FirmwareVersion <= 0.7 && FirmwareInternal <= 2))
4816+
else if (compareVersions(0, 3))//FirmwareVersion == 0.3)
48174817
{
4818-
CompatibilityCode = 5;
4818+
CompatibilityCode = 3;
48194819
}
4820-
else if (FirmwareMajor == 0 && FirmwareMinor >= 7 && FirmwareInternal > 2)//(FirmwareVersion >= 0.7 && FirmwareInternal>2)
4820+
else if (compareVersions(0, 2))//FirmwareVersion == 0.2)
48214821
{
4822-
CompatibilityCode = 7; //skip CompatibilityCode = 6 since functionality of code 6 and 7 was introduced at the same time
4822+
CompatibilityCode = 2;
48234823
}
4824-
else if ((FirmwareMajor == 0 && FirmwareMinor >= 8))//(FirmwareVersion >= 0.8)
4824+
else if (compareVersions(0, 1))//FirmwareVersion == 0.1)
48254825
{
4826-
CompatibilityCode = 7;
4826+
CompatibilityCode = 1;
48274827
}
48284828
}
48294829
else if (FirmwareIdentifier == ShimmerBluetooth.FW_IDENTIFIER_LOGANDSTREAM) //LogAndStream
48304830
{
4831-
if ((FirmwareMajor == 0 && FirmwareMinor >= 13 && FirmwareInternal >= 7))
4831+
if (compareVersions(0, 13, 7)) //(FirmwareVersion >= 0.13.7)
48324832
{
48334833
CompatibilityCode = 8;
48344834
}
4835-
else if (FirmwareMajor == 0 && FirmwareMinor == 1) //(FirmwareVersion == 0.1)
4835+
else if (compareVersions(0, 5, 4) || compareVersions(0, 6))//(FirmwareVersion >= 0.5 && FirmwareInternal >= 4 || FirmwareVersion == 0.6)
48364836
{
4837-
CompatibilityCode = 3;
4837+
CompatibilityCode = 6;
48384838
}
4839-
else if (FirmwareMajor == 0 && FirmwareMinor == 2) //(FirmwareVersion == 0.2)
4839+
else if ((compareVersions(0, 3)) && (!compareVersions(0, 5)))//(FirmwareVersion >= 0.3 && FirmwareVersion<0.5)
48404840
{
4841-
CompatibilityCode = 4;
4841+
CompatibilityCode = 5;
48424842
}
4843-
else if ((FirmwareMajor == 0 && FirmwareMinor >= 3) && (FirmwareMajor == 0 && FirmwareMinor < 5))//(FirmwareVersion >= 0.3 && FirmwareVersion<0.5)
4843+
else if (compareVersions(0, 2)) //(FirmwareVersion == 0.2)
48444844
{
4845-
CompatibilityCode = 5;
4845+
CompatibilityCode = 4;
48464846
}
4847-
else if ((FirmwareMajor == 0 && FirmwareMinor >= 5 && FirmwareInternal >= 4) || (FirmwareMajor == 0 && FirmwareMinor == 6))//(FirmwareVersion >= 0.5 && FirmwareInternal >= 4 || FirmwareVersion == 0.6)
4847+
else if (compareVersions(0, 1)) //(FirmwareVersion == 0.1)
48484848
{
4849-
CompatibilityCode = 6;
4849+
CompatibilityCode = 3;
48504850
}
48514851
else
48524852
{
@@ -4862,7 +4862,7 @@ protected void SetCompatibilityCode()
48624862
{
48634863
if (FirmwareIdentifier == 1) //BtStream
48644864
{
4865-
if ((FirmwareMajor == 1 && FirmwareMinor == 2))//FirmwareVersion == 1.2)
4865+
if (compareVersions(1, 2))//FirmwareVersion == 1.2)
48664866
{
48674867
CompatibilityCode = 1;
48684868
}
@@ -6187,9 +6187,20 @@ protected void OnNewEvent(EventArgs e)
61876187
public bool compareVersions(int compMajor, int compMinor, int compInternal)
61886188
{
61896189

6190-
if ((compMajor > FirmwareMajor)
6191-
|| (FirmwareMajor == compMajor && compMinor > FirmwareMinor)
6192-
|| (FirmwareMajor == compMajor && FirmwareMinor == compMinor && compInternal >= FirmwareInternal))
6190+
if ((FirmwareMajor > compMajor)
6191+
|| (FirmwareMajor == compMajor && FirmwareMinor > compMinor)
6192+
|| (FirmwareMajor == compMajor && FirmwareMinor == compMinor && FirmwareInternal >= compInternal))
6193+
{
6194+
return true; // if FW ID is the same and version is greater or equal
6195+
}
6196+
return false; // if less or not the same FW ID
6197+
}
6198+
6199+
public bool compareVersions(int compMajor, int compMinor)
6200+
{
6201+
6202+
if ((FirmwareMajor > compMajor)
6203+
|| (FirmwareMajor == compMajor && FirmwareMinor >= compMinor))
61936204
{
61946205
return true; // if FW ID is the same and version is greater or equal
61956206
}

0 commit comments

Comments
 (0)