diff --git a/EpdBase/EpdBase.cpp b/EpdBase/EpdBase.cpp index 2894998..4c0be3e 100644 --- a/EpdBase/EpdBase.cpp +++ b/EpdBase/EpdBase.cpp @@ -619,6 +619,7 @@ int EpdBase::Epd2U::ConnectAndStatus(int tokenSourceTimeoutms) int EpdBase::Epd2U::IssueAndCheck(float gain) { + //chirp not supported int rv = 0; if (isNG) { int kx = (int)gain; diff --git a/EpdBase3/Epd3Base.cpp b/EpdBase3/Epd3Base.cpp index 1378777..472a9f4 100644 --- a/EpdBase3/Epd3Base.cpp +++ b/EpdBase3/Epd3Base.cpp @@ -1230,40 +1230,65 @@ int Epd3Base::Epd3U::WriteConfig(void) int32_t r = 0; ECLen = 32; - token = BeginWriteAccessLevel(epdComsHandle, AccessLevel_t::Admin, EC, ECLen, , nullptr); + token = BeginWriteAccessLevel(epdComsHandle, AccessLevel_t::Admin, EC, ECLen, nullptr); r = Commit3(epdComsHandle); r = EndWriteAccessLevel(epdComsHandle, token); - displayIds = new QuickAccessDisplay_t[6]{ - { 0,0x0021 }, - { 1,0x0022 }, - { 2,0x0031 }, - { 3,0x0032 }, - { 4,0x0051 }, - { 5,0x0062 } - }; - numDisplays = 6; + + if (!r) { + displayIds = new QuickAccessDisplay_t[6]{ + { 0,0x0021 }, + { 1,0x0022 }, + { 2,0x0031 }, + { 3,0x0032 }, + { 4,0x0051 }, + { 5,0x0062 } + }; + + numDisplays = 6; + token = BeginWriteQuickAccessDisplays_R3(epdComsHandle, displayIds, numDisplays, nullptr); + r = Commit3(epdComsHandle); + r = EndWriteQuickAccessDisplays_R3(epdComsHandle, token); + } + if (!r) { + numItems = 9; + enables = new DisplayAttributeMap_t[9]{ + { 0,0xF8FF,0xFFFF }, + { 1,0xF8FF,0xFFE7 }, + { 2,0xF8FF,0xFFFF }, + { 3,0xF8FF,0xFFFF }, + { 4,0xF8FF,0xFE01 }, + { 5,0xF8FF,0xFFFF }, + { 6,0xF8FF,0xFFFF }, + { 7,0xF8FF,0xFFFB }, + { 8,0xF8FF,0xFFFF }, + }; + + token = BeginWriteDisplayEnables_R3(epdComsHandle, enables, numItems, nullptr); + r = Commit3(epdComsHandle); + r = EndWriteDisplayEnables_R3(epdComsHandle, token); + } + + if (!r) { + uint8_t numMenus = 9; + uint16_t permissions[9] = { + 0x0000 , + 0x0016 , + 0x0000 , + 0x0000 , + 0x0000 , + 0x0000 , + 0x0000 , + 0x0006 , + 0x0000 , + }; + + token = BeginWriteDisplayEnablePermissions_R3(epdComsHandle, AccessLevel_t::Admin, permissions, numDisplays, nullptr); + r = Commit3(epdComsHandle); + r = EndWriteDisplayEnablePermissions_R3(epdComsHandle, token); + + } + - token = BeginWriteQuickAccessDisplays_R3(epdComsHandle, displayIds, 6, , nullptr); - r = Commit3(epdComsHandle); - r = EndWriteQuickAccessDisplays_R3(epdComsHandle, token); - - numItems = 9; - enables = new DisplayAttributeMap_t[9]{ - { 0, 0x5E96, 0xFFFF }, - { 1, 0x5E96, 0xFFE1 }, - { 2, 0x5E96, 0xFFFF }, - { 3, 0x5E96, 0xFF0F }, - { 4, 0x5E96, 0xFE01 }, - { 5, 0x5E96, 0xFF03 }, - { 6, 0x5E96, 0xFFFF }, - { 7, 0x5E96, 0xFF81 }, - { 8, 0x5E96, 0xFFFF } - }; - - token = BeginWriteDisplayEnables_R3(epdComsHandle, enables, numItems, nullptr); - r = Commit3(epdComsHandle); - r = EndWriteDisplayEnables_R3(epdComsHandle, token); - return r; } diff --git a/EpdBase3/Epd3Base.h b/EpdBase3/Epd3Base.h index 56ac0b2..bbd90ed 100644 --- a/EpdBase3/Epd3Base.h +++ b/EpdBase3/Epd3Base.h @@ -276,7 +276,6 @@ namespace Epd3Base { WORD WriteCal(); int WriteConfig(void); - int SetChirp(float Sensitivity); }; } diff --git a/EpdBaseClr/EpdBaseClr.h b/EpdBaseClr/EpdBaseClr.h index 5c35583..c112d29 100644 --- a/EpdBaseClr/EpdBaseClr.h +++ b/EpdBaseClr/EpdBaseClr.h @@ -303,13 +303,13 @@ namespace EpdBaseClr { void WaitEnd(); int GetAll(bool close); int GetAllDeissue(); - int IssueAndCheck(float gain); + int IssueAndCheck(float gain, float ChirpRate); private: int AfterGetStatus(EpdBase::Epd2U* epd); int AfterGetStatus(Epd3Base::Epd3U* epd); int AfterGetStatus(); - int IssueAndCheck(float gain, float ChirpRate); + int SwitchCon(); void InitData(); diff --git a/EpdBaseClr/app.rc b/EpdBaseClr/app.rc index eab4306..d972c47 100644 Binary files a/EpdBaseClr/app.rc and b/EpdBaseClr/app.rc differ diff --git a/EpdBaseClr/resource.h b/EpdBaseClr/resource.h new file mode 100644 index 0000000..1f2251c --- /dev/null +++ b/EpdBaseClr/resource.h @@ -0,0 +1,3 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by app.rc diff --git a/MK3/MK3.cpp b/MK3/MK3.cpp index 09d7dbe..59aec81 100644 --- a/MK3/MK3.cpp +++ b/MK3/MK3.cpp @@ -366,21 +366,37 @@ namespace MK3 { int Epd2::ReadDisplay() { - int rv = epd->ReadDisplay(); - String^ s = System::String::Format("numItems: {0}", epd->numItems); - System::Diagnostics::Debug::WriteLine(s); - for (int i = 0; i < epd->numItems; i++) { - s = System::String::Format("{{ {0},0x{1:X4},0x{2:X4} }}", epd->enables[i].MenuId, epd->enables[i].EnableMask, epd->enables[i].Enables); - System::Diagnostics::Debug::WriteLine(s); - } + String^ closingQuote = gcnew System::String(" };"); - s = System::String::Format("numDisplays: {0}", epd->numDisplays); + String^ s = System::String::Format("\tnumDisplays = {0};\n\tdisplayIds = new QuickAccessDisplay_t[6]{{", epd->numDisplays); System::Diagnostics::Debug::WriteLine(s); for (int i = 0; i < epd->numDisplays; i++) { s = System::String::Format("{{ {0},0x{1:X4} }}", epd->displayIds[i].Position, epd->displayIds[i].DisplayId); System::Diagnostics::Debug::WriteLine(s); } + System::Diagnostics::Debug::WriteLine(closingQuote); + + s = System::String::Format("\tnumItems={0};\n\tenables = new DisplayAttributeMap_t[9]{{", epd->numItems); + System::Diagnostics::Debug::WriteLine(s); + for (int i = 0; i < epd->numItems; i++) { + s = System::String::Format("\t{{ {0},0x{1:X4},0x{2:X4} }},", epd->enables[i].MenuId, epd->enables[i].EnableMask & 0xff, epd->enables[i].Enables); + System::Diagnostics::Debug::WriteLine(s); + } + System::Diagnostics::Debug::WriteLine(closingQuote); + + s = System::String::Format("//DisplayEnablePermissions\n\tuint8_t numMenus = {0};", epd->numMenus); + System::Diagnostics::Debug::WriteLine(s); + s = System::String::Format("uint16_t permissions[{0}] = {{", epd->numMenus); + System::Diagnostics::Debug::WriteLine(s); + System::Diagnostics::Debug::WriteLine(closingQuote); + + for (int i = 0; i < epd->numMenus; i++) { + s = System::String::Format(" 0x{0:X4} ,", epd->permissions[i]); + System::Diagnostics::Debug::WriteLine(s); + } + System::Diagnostics::Debug::WriteLine(closingQuote); + return rv; } diff --git a/MK3/MK3Base.cpp b/MK3/MK3Base.cpp index 0841838..8223861 100644 --- a/MK3/MK3Base.cpp +++ b/MK3/MK3Base.cpp @@ -1078,15 +1078,17 @@ WORD MK3::Epd2U::WriteCal() WORD MK3::Epd2U::SetSettings() { + int c = 0; if (port == 0) return 1; int32_t r=0; ECLen = 32; - ResetEvent(Ev1); + ResetEvent(Ev1); c++; token = BeginWriteAccessLevel(epdComsHandle, AccessLevel_t::Admin, EC, ECLen, completion); r = Commit(epdComsHandle); r = WaitForSingleObject(Ev1, 10000); // no time-out interval r = EndWriteAccessLevel(epdComsHandle, token); + if (r) goto error; displayIds = new QuickAccessDisplay_t[6]{ @@ -1101,44 +1103,59 @@ WORD MK3::Epd2U::SetSettings() // - ResetEvent(Ev1); + ResetEvent(Ev1); c++; token = BeginWriteQuickAccessDisplays_R3(epdComsHandle, displayIds, 6, completion); r = Commit(epdComsHandle); r = WaitForSingleObject(Ev1, 10000); // no time-out interval r = EndWriteQuickAccessDisplays_R3(epdComsHandle, token); + if (r) goto error; - //numItems = 9; - //enables = new DisplayAttributeMap_t[9]{ - // { 0,0xCB03,0xFFFF }, - // { 1,0xCB03,0xFFE7 }, - // { 2,0xCB03,0xFFFF }, - // { 3,0xCB03,0xFFFF }, - // { 4,0xCB03,0xFE01 }, - // { 5,0xCB03,0xFFFF }, - // { 6,0xCB03,0xFFFF }, - // { 7,0xCB03,0xFFFB }, - // { 8,0xCB03,0xFFFF } - //}; + //DisplayEnablePermissions + uint8_t numMenus = 9; + uint16_t permissions[9] = { + 0x0000, + 0x0016, + 0x0000, + 0x0000, + 0x0000, + 0x0000, + 0x0000, + 0x0006, + 0x0000 + }; + ResetEvent(Ev1); c++; + token = BeginWriteDisplayEnablePermissions_R3(epdComsHandle, AccessLevel_t::Admin, permissions, numDisplays, completion); + r = Commit(epdComsHandle); + r = WaitForSingleObject(Ev1, 10000); // no time-out interval + r = EndWriteDisplayEnablePermissions_R3(epdComsHandle, token); + if (r) goto error; + numItems = 9; enables = new DisplayAttributeMap_t[9]{ - { 0, 0x5E96, 0xFFFF }, - { 1, 0x5E96, 0xFFE1 }, - { 2, 0x5E96, 0xFFFF }, - { 3, 0x5E96, 0xFF0F }, - { 4, 0x5E96, 0xFE01 }, - { 5, 0x5E96, 0xFF03 }, - { 6, 0x5E96, 0xFFFF }, - { 7, 0x5E96, 0xFF81 }, - { 8, 0x5E96, 0xFFFF } + { 0,0x5CFF,0xFFFF }, + { 1,0x5CFF,0xFFE7 }, + { 2,0x5CFF,0xFFFF }, + { 3,0x5CFF,0xFFFF }, + { 4,0x5CFF,0xFE01 }, + { 5,0x5CFF,0xFFFF }, + { 6,0x5CFF,0xFFFF }, + { 7,0x5CFF,0xFFFB }, + { 8,0x5CFF,0xFFFF } }; - ResetEvent(Ev1); + ResetEvent(Ev1); c++; token = BeginWriteDisplayEnables_R3(epdComsHandle, enables, numItems, completion); r = Commit(epdComsHandle); r = WaitForSingleObject(Ev1, 10000); // no time-out interval r = EndWriteDisplayEnables_R3(epdComsHandle, token); + if (r) goto error; + + + return r; + +error: return r; } @@ -1212,7 +1229,11 @@ WORD MK3::Epd2U::ReadDisplay() r = WaitForSingleObject(Ev1, 10000); // no time-out interval r = EndReadDisplayEnables_R3(epdComsHandle, token, enables, 20, &numItems); - + token= BeginReadDisplayEnablePermissions_R3(epdComsHandle, AccessLevel_t::Admin, completion); + ResetEvent(Ev1); + r = Commit(epdComsHandle); + r = WaitForSingleObject(Ev1, 10000); // no time-out interval + EndReadDisplayEnablePermissions_R3(epdComsHandle, token, &curAccessLevel, permissions, permissionsLen, &numMenus); return CommitRV; } \ No newline at end of file diff --git a/MK3/MK3Base.h b/MK3/MK3Base.h index da94d9d..fc01d8f 100644 --- a/MK3/MK3Base.h +++ b/MK3/MK3Base.h @@ -303,6 +303,13 @@ namespace MK3 QuickAccessDisplay_t *displayIds; uint8_t numDisplays; + + AccessLevel_t curAccessLevel; + uint16_t permissions[100]; + uint8_t permissionsLen = 100; + uint8_t numMenus; + + EncryptionKey EC; uint8_t ECLen; //static HANDLE Ev1 ; diff --git a/TestEPD3Dll/Program.cs b/TestEPD3Dll/Program.cs index 3afd2f5..8e3bcfb 100644 --- a/TestEPD3Dll/Program.cs +++ b/TestEPD3Dll/Program.cs @@ -11,7 +11,6 @@ namespace TestEPD3Dll { static void Main(string[] args) { - DateTime jan1970 = new DateTime(1970, 1, 1); var snow = (DateTime.Now - jan1970).TotalSeconds; DateTime dt2 = DateTime.Now.AddSeconds(-254246887); @@ -22,7 +21,7 @@ namespace TestEPD3Dll x.Connect(false); x.ECIn = System.Security.Cryptography.SHA256.Create().ComputeHash(System.Text.Encoding.UTF8.GetBytes("Administrator")); - rv= x.SetChirp(5); + //rv= x.SetChirp(5); x.SetSettings(); x.ReadDisplay(); // ToDo list diff --git a/eDosStation/Properties/AssemblyInfo.cs b/eDosStation/Properties/AssemblyInfo.cs index 160d8c7..e3cc7b4 100644 --- a/eDosStation/Properties/AssemblyInfo.cs +++ b/eDosStation/Properties/AssemblyInfo.cs @@ -51,5 +51,5 @@ using System.Windows; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2.8.0.0")] -[assembly: AssemblyFileVersion("2.8.0.0")] +[assembly: AssemblyVersion("2.10.0.0")] +[assembly: AssemblyFileVersion("2.10.0.0")]