BitSupport Nuget ์ถœ์‹œ

์•ˆ๋…•ํ•˜์„ธ์š” ์ด๊ด‘์„์ž…๋‹ˆ๋‹ค.

BitSupport ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ถœ์‹œํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์ถœ์‹œ ๊ณ„๊ธฐ

PacketSupoort ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ํ™•์žฅ์„ ์œ„ํ•ด Bit๋ฅผ ํ†ตํ•œ Byte ์ƒ์„ฑ ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ–ˆ๊ณ  @suwoo ๋‹˜์˜ FlagsAttribute ์˜๊ฒฌ์„ ๊ฐ€์ง€๊ณ  ๊ฐœ๋ฐœํ•˜๊ฒŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

BitSupport ์ฃผ์š” ๊ธฐ๋Šฅ

[BitSupportFlags]๋Š” [Flags]๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ–ฅํ›„ ํ™•์žฅ ๋ชฉ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค.
ํ˜„์žฌ ์‹œ์ ์—์„œ Enum์˜ Value์˜ ๊ฐ’์„ ๋„ฃ์ง€ ์•Š๊ณ  ์ž๋™ ์ƒ์„ฑ์„ ๋ชฉ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค.

  • Enum To Byte
// ๊ธฐ์กด Enum๊ฐ’์„ Flagsํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค
// ๋ณ€ํ™˜ ๋œ Flags๋“ค์„ ์กฐํ•ฉํ•˜์—ฌ ํ•˜๋‚˜์˜ Byte๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
var MACHINEFlags = MACHINE.POWER.ToFlags() | MACHINE.RIGHT.ToFlags(); // ๋˜๋Š” MACHINEFlags.POWER | MACHINEFlags.RIGHT
byte byteValue = MACHINEFlags.ToByte ();
  • Byte To Enum
// Byte ๋ฐ์ดํ„ฐ๋ฅผ Enum๊ฐ’์œผ๋กœ ๋ณ€ํ™˜์ฒ˜๋ฆฌํ•ด์ค๋‹ˆ๋‹ค.
byte byteValue = 0x05;
var enumData = byteValue.ToEnum<MACHINE> (); // ๋˜๋Š” data.ToEnum<MACHINEFlags>
  • HasFlags, HasAnyFlags, HasNotFlags ๋ฅผ ํ†ตํ•œ Byte ๋ถ„์„

BitSupport ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฐœ๋ฐœ๊ธฐ

๋‚ด๊ฐ€ ๋งŒ๋“ค์—ˆ์–ด์š” ๋กœ ์‹œ์ž‘๋˜์—ˆ์ง€๋งŒ ๋‹ท๋„ท ๊ฐœ๋ฐœ์ž๋ถ„๋“ค์˜ ์˜๊ฒฌ์„ ์ˆ˜๋ ดํ•˜๊ณ  ๋‹ค๋“ฌ์–ด์ง€๋‹ค๋ณด๋‹ˆ Slog์˜ ์„ฑํ–ฅ๋„ ๋ณด์ด๋„ค์š” :slight_smile:

PacketSupoort ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ณ„๋„ ๊ด€๋ฆฌ ์ด์œ 

PacketSupoort๋Š” netStandard2.1 ๊ธฐ๋ฐ˜์ž…๋‹ˆ๋‹ค. BitSupportFlags๋Š” ์ œ๋„ค๋ ˆ์ดํ„ฐ Source Generator ๊ธฐ๋Šฅ์„ ํ† ๋Œ€์˜ ๊ธฐ๋Šฅ์ด๊ธฐ ๋•Œ๋ฌธ์— ํ•ฉ์น  ์ˆ˜๊ฐ€ ์—†์—ˆ๊ณ ,

ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  SourceGeneraorํ•ด์„œ ๋งŒ๋“ค์–ด ์“ฐ๋ฉด ๋˜์ง€ ์•Š๋ƒ? ๋ผ๋Š” ์ƒ๊ฐ๋„ ๋“ค์—ˆ์ง€๋งŒ ๋‹จ์ˆœ BitSupport๋งŒ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์ง€ ์•Š์„๊นŒ ๋ผ๋Š” ์ƒ๊ฐ์—์„œ
๋ณ„๋„ ๊ด€๋ฆฌ๋ฅผ ์„ ํƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

9 Likes

๋ฉ‹์ง„ ํŒจํ‚ค์ง€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!
์—ญ์‹œ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒŒ ๋” ๊น”๋”ํ•ด ๋ณด์ด๋„ค์š”.
๊ทธ๋‚˜์ €๋‚˜ ์ œ๊ฐ€ ๋ง์”€ ๋“œ๋ฆฐ ๊ฒƒ๋„ ๋ฐ˜์˜ํ•ด์ฃผ์‹œ๋‹ค๋‹ˆ ๊ทธ์ € ์˜๊ด‘์ž…๋‹ˆ๋‹ค ใ…Ž.ใ…Ž

1 Like

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค :slight_smile:

์•„์ง์€ [Flags]๋ง๊ณ  ์™œ [BitSupportFlags]๋ฅผ ์จ์•ผํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ์žฅ์ ์ด 1๊ฐ€์ง€ ๋ฐ–์— ์—†์Šต๋‹ˆ๋‹ค.

๋”์šฑ ๋ถ„๋ฐœํ•ด๋ณผ๊ฒŒ์š” :slight_smile:

1 Like

์ œ๋„ค๋ ˆ์ดํ„ฐ => Source Generator๋ฅผ ๋ง์”€ํ•˜์‹œ๋Š” ๊ฑฐ ์•„๋‹Œ๊ฐ€์š”?
Source Generator๋Š” .netstandard2.0 ๋ถ€ํ„ฐ ์ง€์›ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์•„๋Š”๋ฐ ํ˜น์‹œ ๋‹ค๋ฅธ ๊ฑด๊ฐ€์š”?

1 Like

๋„ค ์ •๋ฆฌํ•˜๋‹ค๋ณด๋‹ˆ ์ƒ๋žต๋˜์—ˆ๋„ค์š” ใ…Žใ…Ž

์ œ๋„ค๋ ˆ์ดํ„ฐ โ†’ ์†Œ์Šค ์ œ๋„ค๋ ˆ์ดํ„ฐ ์ด ๋งž์Šต๋‹ˆ๋‹ค.

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ถ„๊ฐœํ•˜์ง€ ์•Š๊ณ 
PacketSupoort ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์†Œ์Šค์ œ๋„ค๋ ˆ์ดํ„ฐ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ณ ์ž ํ•˜์˜€๋Š”๋ฐ
PacketSupoort๋Š” netStandard2.1 ๊ธฐ๋ฐ˜์ด๊ธฐ์— ๋ถˆ๊ฐ€๋Šฅํ•ด์„œ BitSupport๋กœ ์ƒˆ๋กœ ๊ฐœ๋ฐœํ•˜๊ฒŒ ๋˜์—ˆ๋‹คโ€ฆ ์ด๋Ÿฐ ๋œป์ด์˜€์Šต๋‹ˆ๋‹ค.


์œ„์— ์ •๋ฆฌํ•˜๋ฉด์„œ ๋‚ด์šฉ์€ ์ถ”๊ฐ€ํ–ˆ์ง€๋งŒ ์—ฌ๊ธฐ์— ๋ถ€์—ฐ์„ค๋ช…ํ•ด๋†“๊ฒ ์Šต๋‹ˆ๋‹ค!

BitSupport๋Š” BitSupportFlags์— ํ•œ์ • ๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. PacketSupoort์˜ PacketBuilder๋Š” Byte๋“ค์„ ์ง๊ด€์  ํ‘œํ˜„ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค๋ฉด
BitSupport๋Š” Bit LeftShift, RightShift ๋“ฑ ๋‹ค์–‘ํ•œ Bit์กฐ์ž‘์„ ํ†ตํ•ด Byte ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“ค์–ด๋‚ด๊ธฐ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ž…๋‹ˆ๋‹ค.

๋„ค. ๊ทธ๋ ‡๊ตฐ์š”. ์ž˜๋ชป ์ดํ•ดํ–ˆ์—ˆ๋„ค์š”.

1 Like