profile
viewpoint
Serge Camille scamille Germany Software developer C#/C++/Python

WarcraftPriests/sl-shadow-priest 10

Shadow Priest sim repo

scamille/s7netplus 1

S7.NET+ -- A .NET library to connect to Siemens Step7 devices

scamille/AutoSimC 0

Python script to create multiple profiles for Simcraft to find Best-in-Slot and best enchants/gems/talents combination.

scamille/bloodytools 0

Bloodytools merges multiple different input generators into one system. Offers data generation for Azerite Traits, Trinkets, Races, and Secondary Distributions.

scamille/msvc-dev-cmd 0

GitHub Action to setup Developer Command Prompt for Microsoft Visual C++

scamille/simc 0

Simulationcraft engine/GUI

scamille/simc_support 0

libs to support with wow data and simc data

push eventsimulationcraft/simc

gastank

commit sha cab07a2aeee0d82e9ce7a73cb9073b3bd5fcc78c

regenerate spell data

view details

push time in 42 minutes

Pull request review commentS7NetPlus/s7netplus

Added WString support + fixed max size in S7String

 public static byte[] ToByteArray(string value, int reservedLength)                 throw new ArgumentNullException(nameof(value));             } -            if (reservedLength > byte.MaxValue) throw new ArgumentException($"The maximum string length supported is {byte.MaxValue}.");+            if (reservedLength >= byte.MaxValue) throw new ArgumentException($"The maximum string length supported is {byte.MaxValue}.");

No problem but isn't it better to use a constant instead of byte.MaxValue -1?

MCPC10

comment created time in an hour

pull request commentS7NetPlus/s7netplus

Added WString support + fixed max size in S7String

Isn't it better to use a constant instead of byte.MaxValue -1?

MCPC10

comment created time in an hour

push eventsimulationcraft/simc

Vít Šefl

commit sha 4ab785b4263ff57dbc81b2a39a9206237a7a62a7

[Mage] Remove GF Blizzard on ST This optimization is a DSP gain only with low mastery levels.

view details

push time in 2 hours

push eventsimulationcraft/simc

Timothy Seltman

commit sha 151aa05f01379a2addfd49ec595eb4aada6a2f92

[Monk] Update which Windwalker abilities uses both Weapons in their calculations.

view details

push time in 2 hours

issue commentS7NetPlus/s7netplus

read plc DB error

There recently was someone else that ran into the OverflowException, I believe the cause was related to multithreaded access to the PLC instance in that case. Also, you're just posting a bunch of stack traces, that isn't really helpful. Maybe you could share an excerpt of the code you're using? Also, I'd recommend you start with something small like a console program to read one variable only. Your issue seems to indicate improper use of the library (like multithreaded access), not an issue within the library.

stonellearning

comment created time in 8 hours

push eventWarcraftPriests/sl-shadow-priest

Publik

commit sha c0fc1eb6b887326867f2b646afb2d04a04b14f2d

update covenants

view details

Publik

commit sha 60a647aa24afcf1f6759afd29176ad3ba962429b

Merge branch 'master' of github.com:WarcraftPriests/sl-shadow-priest into master

view details

push time in 14 hours

issue commentS7NetPlus/s7netplus

read plc DB error

2020-11-18 09:06:34,893 [26] ERROR: read plc DB:32 error S7.Net.TPKTInvalidException: TPKT is incomplete / invalid at S7.Net.TPKT.ReadAsync(Stream stream) at S7.Net.COTP.TPDU.ReadAsync(Stream stream) at S7.Net.COTP.TSDU.ReadAsync(Stream stream) at S7.Net.Plc.ReadBytesWithSingleRequestAsync(DataType dataType, Int32 db, Int32 startByteAdr, Int32 count) at S7.Net.Plc.ReadBytesAsync(DataType dataType, Int32 db, Int32 startByteAdr, Int32 count) at CoreLibrary.PLC.PlcReadCore.ReadBytesAsync(Int32 db, Int32 startByteAdr, Int32 count) in E:\WorkProject\SmartGuy\Longli\SourceCode\ApiCode\WinService\CoreLibrary\PLC\PlcReadCore.cs:line 272

stonellearning

comment created time in 15 hours

push eventsimulationcraft/simc

EvanMichaels

commit sha d353c77f0e1591e837070fd2a7443971eb592888

[Rogue] Fix Spell Crit, Between the Eyes bug, Outlaw use APL updates * Add Master Assassin (legendary) and Planned Execution to composite_spell_crit_chance() * Implement in-game bug that the bonus critical damage of Between the Eyes is not translated to Blade Flurry correctly * Update on-use item APL logic for Outlaw to sync on-use damage trinkets with Master Assassin

view details

Quirin

commit sha 1b3f040130f497f644b8d5069248ec58326abac4

[Balance] Fix ignore Starsurge condition It was previously casting Starsurges outside Eclipses and this also increases the target amount required to no longer Starsurge by 1 balance-simc/Balance-SimC@d593083 Co-authored-by: Balance-SimC <Balance-SimC@github.com>

view details

gastank

commit sha 8c95de6fb9091097e86b4e01ac5fbc5e6d05c3d8

update spell data dump

view details

Quirin Teunis

commit sha 7989d81c9e3a65650b060384c0e54f264e593735

[Gear] A party only has 5 people in it

view details

Azevara

commit sha fd8299bd6c49f0f2bf93b039923a84f2e4771356

[Warlock] Demonology APL tweaks (#5759) * Demonology APL updates * Regenerate profiles * Actually regenerate profiles

view details

Quirin

commit sha a4c390e780b5451b777762553607dac6efff0d77

[Balance] Update comments and minor pulsar fix Capitalization is a good thing balance-simc/Balance-SimC@53d7cff Co-authored-by: Balance-SimC <Balance-SimC@github.com>

view details

Vít Šefl

commit sha 61a91d6c2280276e95ee928fbe6d85d6c3664201

Make sure time_to_percent doesn't return negative values

view details

Quirin

commit sha 314f097151a0072cf45bd8e0a2fb0a5028d81381

[Balance] Remove Dreambinder action list This list was outdated and didn't require a separate action list to maintain balance-simc/Balance-SimC@521558c Co-authored-by: Balance-SimC <Balance-SimC@github.com>

view details

Antoine Colin

commit sha 575cdcf610a795a05ab59c48073f179f456e3c2c

[Enemy] Time to percent will now work with enemy_fixed_health_percentage

view details

EvanMichaels

commit sha 5c760ef755a6717e289e56bb4d5b0a43f65e6456

[Gear] Add support for trinket.X.has_stat.any_dps expression * As various trinket effects have things like Speed or Leech on them, add an any_dps alternative for DPS-oriented effects

view details

EvanMichaels

commit sha 8992ba3968c6bcca492ac74f8d63679ef523248c

[Outlaw] Update trinket APL to use has_stat.any_dps instead of has_stat.any

view details

Antoine Colin

commit sha 5ce98c9bff64852e501a44fd11af2712e2efc98c

[Enemy] time_to_die should ignore fixed_health_percentage + fix a sign 5am woopsy

view details

Quirin

commit sha 87806008f92298a4c5ec5be05cfa35ccac5ca12e

[Balance] Trinkets are very fun This fixes short duration cd trinkets not being used in between ca/inc uses and no longer makes ca/inc not being used when no trinkets are ready at the end of a fight balance-simc/Balance-SimC@c03e373 Co-authored-by: Balance-SimC <Balance-SimC@github.com>

view details

gastank

commit sha 46c582036e2436aaf028214b05a05d66ece3380a

[Soulbind] typo in exacting preparation name is fixed

view details

gastank

commit sha bfee6a841bfa75910965501de7165da5b161a887

[Soulbind] remove unnecessary exacting preparation code

view details

Quirin Teunis

commit sha 5238bfbb8db8f6f2e84b9135eb361c04ccc079cf

[Gear] Add option to fail the stat proc for iqd

view details

Antoine Colin

commit sha d547d1acc2e5e56ff31347fcbaf26a7ce64125e1

[Expressions] Implement remains_expected and duration_expected in core Stolen from the hunter module's remains/duration_guess. Both _guess and _expected versions are valid but _expected makes more sense imho.

view details

Putro

commit sha 372dc8375750d42ab8d42810a6028163d4f37f20

[Hunter] Add back Arcane Torrent for BM APL

view details

Putro

commit sha c06d18ddb9bfedcab4716c499dca37efc5a33376

[Hunter] Arcane Torrent requires a bit lower focus in AoE since other abilities are worth more then

view details

EvanMichaels

commit sha 54471e92034a27edc28907d3dea4ba1cdde6c5f0

[Havoc] Update Blade Dance APL Thresholds * Split out Chaos Theory and non-Chaos Theory lines for readability * Remove special Meta-specific threshold adjustments now that the hotfixes have normalized the AP coefficients again

view details

push time in 19 hours

PR merged WarcraftPriests/sl-shadow-priest

Update Default APL

Add the AM fix that we pushed to simc.

+1 -1

0 comment

1 changed file

Saeldur

pr closed time in 19 hours

push eventWarcraftPriests/sl-shadow-priest

Saeldur

commit sha 2fac89131c0094be89f6e2afa9e2b9f59ab6618b

Update Default APL (#203) Add the AM fix that we pushed to simc

view details

push time in 19 hours

push eventWarcraftPriests/sl-shadow-priest

Publik

commit sha dba73a451e127300add26fa8d04e2f47f3a06260

update consumables

view details

push time in 20 hours

push eventWarcraftPriests/sl-shadow-priest

Publik

commit sha c00099dcb65d6beeec98cb2f665b0136928dac76

update conduits

view details

push time in 20 hours

pull request commentS7NetPlus/s7netplus

Added WString support + fixed max size in S7String

Please change the S7string max length error message, other changes are fine.

MCPC10

comment created time in 21 hours

Pull request review commentS7NetPlus/s7netplus

Added WString support + fixed max size in S7String

 public static byte[] ToByteArray(string value, int reservedLength)                 throw new ArgumentNullException(nameof(value));             } -            if (reservedLength > byte.MaxValue) throw new ArgumentException($"The maximum string length supported is {byte.MaxValue}.");+            if (reservedLength >= byte.MaxValue) throw new ArgumentException($"The maximum string length supported is {byte.MaxValue}.");

Can you correct the size in the error message as well?

MCPC10

comment created time in 21 hours

Pull request review commentS7NetPlus/s7netplus

Added WString support

+using System;+using System.Text;++namespace S7.Net.Types+{+    /// <summary>+    /// Contains the methods to convert from S7 wstrings to C# strings+    /// An S7 WString has a preceding 4 byte header containing its capacity and length+    /// </summary>+    public static class S7WString+    {+        /// <summary>+        /// Converts S7 bytes to a string+        /// </summary>+        /// <param name="bytes"></param>+        /// <returns></returns>+        public static string FromByteArray(byte[] bytes)+        {+            if (bytes.Length < 4)+            {+                throw new PlcException(ErrorCode.ReadData, "Malformed S7 WString / too short");+            }++            int size = ((bytes[0] << 8) & 0xFF) | (bytes[1] & 0xFF);

100% correct xD

MCPC10

comment created time in 21 hours

Pull request review commentS7NetPlus/s7netplus

Added WString support

 public static byte[] ToByteArray(string value, int reservedLength)                 throw new ArgumentNullException(nameof(value));             } -            if (reservedLength > byte.MaxValue) throw new ArgumentException($"The maximum string length supported is {byte.MaxValue}.");+            if (reservedLength >= byte.MaxValue) throw new ArgumentException($"The maximum string length supported is {byte.MaxValue}.");

In the siemens doc they say that 254 is the maximum for a S7String (it's in german): https://support.industry.siemens.com/cs/mdm/109011420?c=63689840011&lc=de-DE

MCPC10

comment created time in 21 hours

Pull request review commentS7NetPlus/s7netplus

Added WString support

+using System;+using System.Text;++namespace S7.Net.Types+{+    /// <summary>+    /// Contains the methods to convert from S7 wstrings to C# strings+    /// An S7 WString has a preceding 4 byte header containing its capacity and length+    /// </summary>+    public static class S7WString+    {+        /// <summary>+        /// Converts S7 bytes to a string+        /// </summary>+        /// <param name="bytes"></param>+        /// <returns></returns>+        public static string FromByteArray(byte[] bytes)+        {+            if (bytes.Length < 4)+            {+                throw new PlcException(ErrorCode.ReadData, "Malformed S7 WString / too short");+            }++            int size = ((bytes[0] << 8) & 0xFF) | (bytes[1] & 0xFF);+            int length = ((bytes[2] << 8) & 0xFF) | (bytes[3] & 0xFF);

As above.

MCPC10

comment created time in a day

Pull request review commentS7NetPlus/s7netplus

Added WString support

 public static byte[] ToByteArray(string value, int reservedLength)                 throw new ArgumentNullException(nameof(value));             } -            if (reservedLength > byte.MaxValue) throw new ArgumentException($"The maximum string length supported is {byte.MaxValue}.");+            if (reservedLength >= byte.MaxValue) throw new ArgumentException($"The maximum string length supported is {byte.MaxValue}.");

Are you sure about this change? If you are, please also change the message. This does deserve to be in it's own commit though (so that'd be nice if you could split it off as well).

MCPC10

comment created time in a day

Pull request review commentS7NetPlus/s7netplus

Added WString support

+using System;+using System.Text;++namespace S7.Net.Types+{+    /// <summary>+    /// Contains the methods to convert from S7 wstrings to C# strings+    /// An S7 WString has a preceding 4 byte header containing its capacity and length+    /// </summary>+    public static class S7WString+    {+        /// <summary>+        /// Converts S7 bytes to a string+        /// </summary>+        /// <param name="bytes"></param>+        /// <returns></returns>+        public static string FromByteArray(byte[] bytes)+        {+            if (bytes.Length < 4)+            {+                throw new PlcException(ErrorCode.ReadData, "Malformed S7 WString / too short");+            }++            int size = ((bytes[0] << 8) & 0xFF) | (bytes[1] & 0xFF);

Should this perhaps be (bytes[0] << 8) & 0xff00? Also, I don't think you actually need to perform the bitwise and, the shift will always have the lower 8 bits zeroed out....

MCPC10

comment created time in a day

Pull request review commentS7NetPlus/s7netplus

Added WString support

+using System;+using System.Text;++namespace S7.Net.Types+{+    /// <summary>+    /// Contains the methods to convert from S7 wstrings to C# strings+    /// An S7 WString has a preceding 4 byte header containing its capacity and length+    /// </summary>+    public static class S7WString+    {+        /// <summary>+        /// Converts S7 bytes to a string+        /// </summary>+        /// <param name="bytes"></param>+        /// <returns></returns>+        public static string FromByteArray(byte[] bytes)+        {+            if (bytes.Length < 4)+            {+                throw new PlcException(ErrorCode.ReadData, "Malformed S7 WString / too short");+            }++            int size = ((bytes[0] << 8) & 0xFF) | (bytes[1] & 0xFF);+            int length = ((bytes[2] << 8) & 0xFF) | (bytes[3] & 0xFF);++            if (length > size)+            {+                throw new PlcException(ErrorCode.ReadData, "Malformed S7 WString / length larger than capacity");+            }++            try+            {+                return Encoding.BigEndianUnicode.GetString(bytes, 4, length * 2);

I didn't know about Encoding.BigEndianUnicode, but that actually makes this one pretty easy.

MCPC10

comment created time in a day

Pull request review commentS7NetPlus/s7netplus

Added WString support

+using System;+using System.Text;++namespace S7.Net.Types+{+    /// <summary>+    /// Contains the methods to convert from S7 wstrings to C# strings+    /// An S7 WString has a preceding 4 byte header containing its capacity and length+    /// </summary>+    public static class S7WString+    {+        /// <summary>+        /// Converts S7 bytes to a string+        /// </summary>+        /// <param name="bytes"></param>+        /// <returns></returns>+        public static string FromByteArray(byte[] bytes)+        {+            if (bytes.Length < 4)+            {+                throw new PlcException(ErrorCode.ReadData, "Malformed S7 WString / too short");+            }++            int size = ((bytes[0] << 8) & 0xFF) | (bytes[1] & 0xFF);

(bytes[0] << 8) & 0xFF is always 0

MCPC10

comment created time in a day

push eventWarcraftPriests/sl-shadow-priest

Publik

commit sha a6839397663d604a253b626182aeaac86eff969c

update soulbinds

view details

push time in a day

push eventsimulationcraft/simc

Dorovon

commit sha dcf98e2380cc10d1856aca52169278d8341f909f

regenerate profiles

view details

push time in a day

push eventsimulationcraft/simc

Dorovon

commit sha 0d87d3c549a22027ecfe292dd564cc4d75930bf6

[Mage] update Fire APL * added combustion_cast_remains variable * removed immediate PF usage on AoE in Combustion * fixed Fire Blast pooling on AoE * added better on-use item support * adjusted Shifting Power usage before Rune of Power to happen more often * added additional comments

view details

push time in a day

issue commentS7NetPlus/s7netplus

read plc DB error

How can I solve it?

stonellearning

comment created time in a day

issue commentS7NetPlus/s7netplus

read plc DB error

System.OverflowException: Arithmetic operation resulted in an overflow. at S7.Net.TPKT.ReadAsync(Stream stream) at S7.Net.COTP.TPDU.ReadAsync(Stream stream) at S7.Net.COTP.TSDU.ReadAsync(Stream stream) at S7.Net.Plc.ReadBytesWithSingleRequestAsync(DataType dataType, Int32 db, Int32 startByteAdr, Byte[] buffer, Int32 offset, Int32 count) at S7.Net.Plc.ReadBytesAsync(DataType dataType, Int32 db, Int32 startByteAdr, Int32 count) at CoreLibrary.PLC.ReadCore.PlcReadCore.ReadBytesAsync(Int32 db, Int32 startByteAdr, Int32 count) in

stonellearning

comment created time in a day

issue commentS7NetPlus/s7netplus

read plc DB error

System.IO.IOException: Unable to read data from the transport connection: 由于线程退出或应用程序请求,已中止 I/O 操作。. ---> System.Net.Sockets.SocketException (995): 由于线程退出或应用程序请求,已中止 I/O 操作。 --- End of inner exception stack trace --- at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken) at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.GetResult(Int16 token) at System.Threading.Tasks.ValueTask`1.ValueTaskSourceAsTask.<>c.<.cctor>b__4_0(Object state) --- End of stack trace from previous location where exception was thrown --- at S7.Net.StreamExtensions.ReadExactAsync(Stream stream, Byte[] buffer, Int32 offset, Int32 count) at S7.Net.TPKT.ReadAsync(Stream stream) at S7.Net.COTP.TPDU.ReadAsync(Stream stream) at S7.Net.COTP.TSDU.ReadAsync(Stream stream) at S7.Net.Plc.ReadBytesWithSingleRequestAsync(DataType dataType, Int32 db, Int32 startByteAdr, Byte[] buffer, Int32 offset, Int32 count) at S7.Net.Plc.ReadBytesAsync(DataType dataType, Int32 db, Int32 startByteAdr, Int32 count) at CoreLibrary.PLC.ReadCore.PlcReadCore.ReadBytesAsync(Int32 db, Int32 startByteAdr, Int32 count) in

stonellearning

comment created time in a day

issue openedS7NetPlus/s7netplus

read plc DB error

System.ObjectDisposedException: Cannot access a disposed object. Object name: 'System.Net.Sockets.NetworkStream'. at System.Net.Sockets.NetworkStream.ReadAsync(Byte[] buffer, Int32 offset, Int32 size, CancellationToken cancellationToken) at S7.Net.StreamExtensions.ReadExactAsync(Stream stream, Byte[] buffer, Int32 offset, Int32 count) at S7.Net.TPKT.ReadAsync(Stream stream) at S7.Net.COTP.TPDU.ReadAsync(Stream stream) at S7.Net.COTP.TSDU.ReadAsync(Stream stream) at S7.Net.Plc.ReadBytesWithSingleRequestAsync(DataType dataType, Int32 db, Int32 startByteAdr, Byte[] buffer, Int32 offset, Int32 count) at S7.Net.Plc.ReadBytesAsync(DataType dataType, Int32 db, Int32 startByteAdr, Int32 count) at CoreLibrary.PLC.ReadCore.PlcReadCore.ReadBytesAsync(Int32 db, Int32 startByteAdr, Int32 count) in

created time in a day

push eventsimulationcraft/simc

EvanMichaels

commit sha 525fdd92f8388027cac5b45e1f58f96a3c519732

[Outlaw] Minor APL Adjustments * Fix some precombat durations * Adjust Between the Eyes to not be cast on enemies that will die within the next 3 seconds

view details

push time in a day

more