mirror of
				https://github.com/thelsing/knx.git
				synced 2025-10-26 10:26:25 +01:00 
			
		
		
		
	fix knx-demo
This commit is contained in:
		
							parent
							
								
									e0623730e3
								
							
						
					
					
						commit
						3cdc5579be
					
				| @ -417,11 +417,11 @@ int busValueToUnsigned8(const uint8_t* payload, int payload_length, const Dpt& d | ||||
|     switch (datatype.subGroup) | ||||
|     { | ||||
|         case 1: | ||||
|             value = unsigned8FromPayload(payload, 0) * 100.0 / 255.0; | ||||
|             value.ucharValue(unsigned8FromPayload(payload, 0) * 100.0 / 255.0); | ||||
|             return true; | ||||
| 
 | ||||
|         case 3: | ||||
|             value = unsigned8FromPayload(payload, 0) * 360.0 / 255.0; | ||||
|             value.ucharValue(unsigned8FromPayload(payload, 0) * 360.0 / 255.0); | ||||
|             return true; | ||||
| 
 | ||||
|         case 6: | ||||
| @ -434,14 +434,14 @@ int busValueToUnsigned8(const uint8_t* payload, int payload_length, const Dpt& d | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     value = unsigned8FromPayload(payload, 0); | ||||
|     value.ucharValue(unsigned8FromPayload(payload, 0)); | ||||
|     return true; | ||||
| } | ||||
| 
 | ||||
| int busValueToSigned8(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value) | ||||
| { | ||||
|     ASSERT_PAYLOAD(1); | ||||
|     value = unsigned8FromPayload(payload, 0); | ||||
|     value.ucharValue(unsigned8FromPayload(payload, 0)); | ||||
|     return true; | ||||
| } | ||||
| 
 | ||||
| @ -455,7 +455,7 @@ int busValueToStatusAndMode(const uint8_t* payload, int payload_length, const Dp | ||||
|     } | ||||
|     else if (datatype.index == 5) | ||||
|     { | ||||
|         value = unsigned8FromPayload(payload, 0) & 0x07; | ||||
|         value.ucharValue(unsigned8FromPayload(payload, 0) & 0x07); | ||||
|         return true; | ||||
|     } | ||||
|     return false; | ||||
| @ -514,7 +514,7 @@ int busValueToTime(const uint8_t* payload, int payload_length, const Dpt& dataty | ||||
|     switch (datatype.index) | ||||
|     { | ||||
|         case 0: | ||||
|             value = (unsigned8FromPayload(payload, 0) >> 5) & 0x07; | ||||
|             value.ucharValue((unsigned8FromPayload(payload, 0) >> 5) & 0x07); | ||||
|             return true; | ||||
|         case 1: | ||||
|         { | ||||
| @ -598,7 +598,7 @@ int busValueToAccess(const uint8_t* payload, int payload_length, const Dpt& data | ||||
|                     return false; | ||||
|                 digits += digit * factor; | ||||
|             } | ||||
|             value = digits; | ||||
|             value.intValue(digits); | ||||
|             return true; | ||||
|         } | ||||
|         case 1: | ||||
| @ -633,7 +633,7 @@ int busValueToString(const uint8_t* payload, int payload_length, const Dpt& data | ||||
| int busValueToScene(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value) | ||||
| { | ||||
|     ASSERT_PAYLOAD(1); | ||||
|     value = unsigned8FromPayload(payload, 0) & 0x3F; | ||||
|     value.ucharValue(unsigned8FromPayload(payload, 0) & 0x3F); | ||||
|     return true; | ||||
| } | ||||
| 
 | ||||
| @ -649,7 +649,7 @@ int busValueToSceneControl(const uint8_t* payload, int payload_length, const Dpt | ||||
|         } | ||||
|         case 1: | ||||
|         { | ||||
|             value = unsigned8FromPayload(payload, 0) & 0x3F; | ||||
|             value.ucharValue(unsigned8FromPayload(payload, 0) & 0x3F); | ||||
|             return true; | ||||
|         } | ||||
|     } | ||||
| @ -669,7 +669,7 @@ int busValueToSceneInfo(const uint8_t* payload, int payload_length, const Dpt& d | ||||
|         } | ||||
|         case 1: | ||||
|         { | ||||
|             value = unsigned8FromPayload(payload, 0) & 0x3F; | ||||
|             value.ucharValue(unsigned8FromPayload(payload, 0) & 0x3F); | ||||
|             return true; | ||||
|         } | ||||
|     } | ||||
| @ -684,7 +684,7 @@ int busValueToSceneConfig(const uint8_t* payload, int payload_length, const Dpt& | ||||
|     { | ||||
|         case 0: | ||||
|         { | ||||
|             value = unsigned8FromPayload(payload, 0) & 0x3F; | ||||
|             value.ucharValue(unsigned8FromPayload(payload, 0) & 0x3F); | ||||
|             return true; | ||||
|         } | ||||
|         case 1: | ||||
| @ -799,7 +799,7 @@ int busValueToAlarmInfo(const uint8_t* payload, int payload_length, const Dpt& d | ||||
|         case 0: | ||||
|         case 2: | ||||
|         case 3: | ||||
|             value = unsigned8FromPayload(payload, datatype.index); | ||||
|             value.ucharValue(unsigned8FromPayload(payload, datatype.index)); | ||||
|             return true; | ||||
|         case 4: | ||||
|         case 5: | ||||
| @ -843,7 +843,7 @@ int busValueToVersion(const uint8_t* payload, int payload_length, const Dpt& dat | ||||
|             value = (unsigned16FromPayload(payload, 0) >> 6) & 0x1F; | ||||
|             return true; | ||||
|         case 2: | ||||
|             value = unsigned8FromPayload(payload, 1) & 0x3F; | ||||
|             value.ucharValue(unsigned8FromPayload(payload, 1) & 0x3F); | ||||
|             return true; | ||||
|     } | ||||
| 
 | ||||
| @ -859,7 +859,7 @@ int busValueToScaling(const uint8_t* payload, int payload_length, const Dpt& dat | ||||
|             value = unsigned16FromPayload(payload, 0); | ||||
|             return true; | ||||
|         case 1: | ||||
|             value = unsigned8FromPayload(payload, 2) * 100.0 / 255.0; | ||||
|             value.ucharValue(unsigned8FromPayload(payload, 2) * 100.0 / 255.0); | ||||
|             return true; | ||||
|     } | ||||
| 
 | ||||
| @ -917,7 +917,7 @@ int busValueToFlaggedScaling(const uint8_t* payload, int payload_length, const D | ||||
|     switch (datatype.index) | ||||
|     { | ||||
|         case 0: | ||||
|             value = unsigned8FromPayload(payload, 0) * 100.0 / 255.0; | ||||
|             value.ucharValue(unsigned8FromPayload(payload, 0) * 100.0 / 255.0); | ||||
|             return true; | ||||
|         case 1: | ||||
|             value = bitFromPayload(payload, 15); | ||||
| @ -935,7 +935,7 @@ int busValueToActiveEnergy(const uint8_t* payload, int payload_length, const Dpt | ||||
|             value = signed32FromPayload(payload, 0); | ||||
|             return true; | ||||
|         case 1: | ||||
|             value = unsigned8FromPayload(payload, 4); | ||||
|             value.ucharValue(unsigned8FromPayload(payload, 4)); | ||||
|             return true; | ||||
|         case 2: | ||||
|         case 3: | ||||
|  | ||||
| @ -236,6 +236,104 @@ | ||||
|         <DebugUnoptimizedComponentTypes>Sketch</DebugUnoptimizedComponentTypes> | ||||
|       </BuildSettingsExtension> | ||||
|     </VisualGDBConfiguration> | ||||
|     <VisualGDBConfiguration> | ||||
|       <PlatformName>NodeMCU_1 0_(ESP-12E_Module)</PlatformName> | ||||
|       <DebugSettingsOverride xsi:type="com.visualgdb.debug.embedded"> | ||||
|         <AdditionalStartupCommands /> | ||||
|         <AdditionalGDBSettings> | ||||
|           <Features> | ||||
|             <DisableAutoDetection>false</DisableAutoDetection> | ||||
|             <UseFrameParameter>false</UseFrameParameter> | ||||
|             <SimpleValuesFlagSupported>false</SimpleValuesFlagSupported> | ||||
|             <ListLocalsSupported>false</ListLocalsSupported> | ||||
|             <ByteLevelMemoryCommandsAvailable>false</ByteLevelMemoryCommandsAvailable> | ||||
|             <ThreadInfoSupported>false</ThreadInfoSupported> | ||||
|             <PendingBreakpointsSupported>false</PendingBreakpointsSupported> | ||||
|             <SupportTargetCommand>false</SupportTargetCommand> | ||||
|             <ReliableBreakpointNotifications>false</ReliableBreakpointNotifications> | ||||
|           </Features> | ||||
|           <EnableSmartStepping>false</EnableSmartStepping> | ||||
|           <FilterSpuriousStoppedNotifications>false</FilterSpuriousStoppedNotifications> | ||||
|           <ForceSingleThreadedMode>false</ForceSingleThreadedMode> | ||||
|           <UseAppleExtensions>false</UseAppleExtensions> | ||||
|           <CanAcceptCommandsWhileRunning>false</CanAcceptCommandsWhileRunning> | ||||
|           <MakeLogFile>false</MakeLogFile> | ||||
|           <IgnoreModuleEventsWhileStepping>true</IgnoreModuleEventsWhileStepping> | ||||
|           <UseRelativePathsOnly>false</UseRelativePathsOnly> | ||||
|           <ExitAction>None</ExitAction> | ||||
|           <DisableDisassembly>false</DisableDisassembly> | ||||
|           <ExamineMemoryWithXCommand>false</ExamineMemoryWithXCommand> | ||||
|           <StepIntoNewInstanceEntry>main</StepIntoNewInstanceEntry> | ||||
|           <ExamineRegistersInRawFormat>true</ExamineRegistersInRawFormat> | ||||
|           <DisableSignals>false</DisableSignals> | ||||
|           <EnableAsyncExecutionMode>false</EnableAsyncExecutionMode> | ||||
|           <EnableNonStopMode>false</EnableNonStopMode> | ||||
|           <MaxBreakpointLimit>0</MaxBreakpointLimit> | ||||
|         </AdditionalGDBSettings> | ||||
|         <DebugMethod /> | ||||
|         <AutoDetectRTOS>true</AutoDetectRTOS> | ||||
|         <SemihostingSupport>Auto</SemihostingSupport> | ||||
|         <SemihostingPollingDelay>0</SemihostingPollingDelay> | ||||
|         <StepIntoEntryPoint>false</StepIntoEntryPoint> | ||||
|         <ReloadFirmwareOnReset>false</ReloadFirmwareOnReset> | ||||
|         <ValidateEndOfStackAddress>true</ValidateEndOfStackAddress> | ||||
|         <StopAtEntryPoint>false</StopAtEntryPoint> | ||||
|         <EnableVirtualHalts>false</EnableVirtualHalts> | ||||
|         <DynamicAnalysisSettings /> | ||||
|         <EndOfStackSymbol>_estack</EndOfStackSymbol> | ||||
|         <TimestampProviderTicksPerSecond>0</TimestampProviderTicksPerSecond> | ||||
|         <KeepConsoleAfterExit>false</KeepConsoleAfterExit> | ||||
|         <CheckInterfaceDrivers>true</CheckInterfaceDrivers> | ||||
|       </DebugSettingsOverride> | ||||
|       <BuildSettingsExtension xsi:type="com.visualgdb.build.external.arduino.extension"> | ||||
|         <BoardID>esp8266:esp8266:nodemcuv2</BoardID> | ||||
|         <Properties> | ||||
|           <Entries> | ||||
|             <KeyValue> | ||||
|               <Key>xtal</Key> | ||||
|               <Value>80</Value> | ||||
|             </KeyValue> | ||||
|             <KeyValue> | ||||
|               <Key>vt</Key> | ||||
|               <Value>flash</Value> | ||||
|             </KeyValue> | ||||
|             <KeyValue> | ||||
|               <Key>exception</Key> | ||||
|               <Value>disabled</Value> | ||||
|             </KeyValue> | ||||
|             <KeyValue> | ||||
|               <Key>ssl</Key> | ||||
|               <Value>all</Value> | ||||
|             </KeyValue> | ||||
|             <KeyValue> | ||||
|               <Key>eesz</Key> | ||||
|               <Value>4M</Value> | ||||
|             </KeyValue> | ||||
|             <KeyValue> | ||||
|               <Key>ip</Key> | ||||
|               <Value>lm2f</Value> | ||||
|             </KeyValue> | ||||
|             <KeyValue> | ||||
|               <Key>dbg</Key> | ||||
|               <Value>Disabled</Value> | ||||
|             </KeyValue> | ||||
|             <KeyValue> | ||||
|               <Key>lvl</Key> | ||||
|               <Value>None____</Value> | ||||
|             </KeyValue> | ||||
|             <KeyValue> | ||||
|               <Key>wipe</Key> | ||||
|               <Value>none</Value> | ||||
|             </KeyValue> | ||||
|             <KeyValue> | ||||
|               <Key>baud</Key> | ||||
|               <Value>115200</Value> | ||||
|             </KeyValue> | ||||
|           </Entries> | ||||
|         </Properties> | ||||
|         <DebugUnoptimizedComponentTypes>Sketch</DebugUnoptimizedComponentTypes> | ||||
|       </BuildSettingsExtension> | ||||
|     </VisualGDBConfiguration> | ||||
|   </Configurations> | ||||
|   <ProgramArgumentsSuggestions /> | ||||
| </VisualGDBProjectSettings2> | ||||
| @ -18,21 +18,25 @@ Global | ||||
| 	GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||||
| 		Debug|Arduino Genuino Zero (Native USB Port) = Debug|Arduino Genuino Zero (Native USB Port) | ||||
| 		Debug|Mixed = Debug|Mixed | ||||
| 		Debug|NodeMCU_1 0_(ESP-12E_Module) = Debug|NodeMCU_1 0_(ESP-12E_Module) | ||||
| 		Debug|VisualGDB = Debug|VisualGDB | ||||
| 		Debug|x64 = Debug|x64 | ||||
| 		Debug|x86 = Debug|x86 | ||||
| 		MinSizeRel|Arduino Genuino Zero (Native USB Port) = MinSizeRel|Arduino Genuino Zero (Native USB Port) | ||||
| 		MinSizeRel|Mixed = MinSizeRel|Mixed | ||||
| 		MinSizeRel|NodeMCU_1 0_(ESP-12E_Module) = MinSizeRel|NodeMCU_1 0_(ESP-12E_Module) | ||||
| 		MinSizeRel|VisualGDB = MinSizeRel|VisualGDB | ||||
| 		MinSizeRel|x64 = MinSizeRel|x64 | ||||
| 		MinSizeRel|x86 = MinSizeRel|x86 | ||||
| 		Release|Arduino Genuino Zero (Native USB Port) = Release|Arduino Genuino Zero (Native USB Port) | ||||
| 		Release|Mixed = Release|Mixed | ||||
| 		Release|NodeMCU_1 0_(ESP-12E_Module) = Release|NodeMCU_1 0_(ESP-12E_Module) | ||||
| 		Release|VisualGDB = Release|VisualGDB | ||||
| 		Release|x64 = Release|x64 | ||||
| 		Release|x86 = Release|x86 | ||||
| 		RelWithDebInfo|Arduino Genuino Zero (Native USB Port) = RelWithDebInfo|Arduino Genuino Zero (Native USB Port) | ||||
| 		RelWithDebInfo|Mixed = RelWithDebInfo|Mixed | ||||
| 		RelWithDebInfo|NodeMCU_1 0_(ESP-12E_Module) = RelWithDebInfo|NodeMCU_1 0_(ESP-12E_Module) | ||||
| 		RelWithDebInfo|VisualGDB = RelWithDebInfo|VisualGDB | ||||
| 		RelWithDebInfo|x64 = RelWithDebInfo|x64 | ||||
| 		RelWithDebInfo|x86 = RelWithDebInfo|x86 | ||||
| @ -80,16 +84,17 @@ Global | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Debug|Arduino Genuino Zero (Native USB Port).Build.0 = Debug|Arduino Genuino Zero (Native USB Port) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Debug|Mixed.ActiveCfg = Debug|Arduino Genuino Zero (Native USB Port) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Debug|Mixed.Build.0 = Debug|Arduino Genuino Zero (Native USB Port) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Debug|NodeMCU_1 0_(ESP-12E_Module).ActiveCfg = Debug|Arduino Genuino Zero (Native USB Port) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Debug|VisualGDB.ActiveCfg = Debug|Arduino Genuino Zero (Native USB Port) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Debug|NodeMCU_1 0_(ESP-12E_Module).ActiveCfg = Debug|NodeMCU_1 0_(ESP-12E_Module) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Debug|NodeMCU_1 0_(ESP-12E_Module).Build.0 = Debug|NodeMCU_1 0_(ESP-12E_Module) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Debug|VisualGDB.ActiveCfg = Debug|NodeMCU_1 0_(ESP-12E_Module) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Debug|x64.ActiveCfg = Debug|Arduino Genuino Zero (Native USB Port) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Debug|x86.ActiveCfg = Debug|Arduino Genuino Zero (Native USB Port) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|Arduino Genuino Zero (Native USB Port).ActiveCfg = Release|Arduino Genuino Zero (Native USB Port) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|Arduino Genuino Zero (Native USB Port).Build.0 = Release|Arduino Genuino Zero (Native USB Port) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|Mixed.ActiveCfg = Release|Arduino Genuino Zero (Native USB Port) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|Mixed.Build.0 = Release|Arduino Genuino Zero (Native USB Port) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|NodeMCU_1 0_(ESP-12E_Module).ActiveCfg = Release|Arduino Genuino Zero (Native USB Port) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|NodeMCU_1 0_(ESP-12E_Module).Build.0 = Release|Arduino Genuino Zero (Native USB Port) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|NodeMCU_1 0_(ESP-12E_Module).ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|NodeMCU_1 0_(ESP-12E_Module).Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|VisualGDB.ActiveCfg = Release|Arduino Genuino Zero (Native USB Port) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|VisualGDB.Build.0 = Release|Arduino Genuino Zero (Native USB Port) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|x64.ActiveCfg = Release|Arduino Genuino Zero (Native USB Port) | ||||
| @ -99,7 +104,8 @@ Global | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Release|Arduino Genuino Zero (Native USB Port).ActiveCfg = Release|Arduino Genuino Zero (Native USB Port) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Release|Arduino Genuino Zero (Native USB Port).Build.0 = Release|Arduino Genuino Zero (Native USB Port) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Release|Mixed.ActiveCfg = Release|Arduino Genuino Zero (Native USB Port) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Release|NodeMCU_1 0_(ESP-12E_Module).ActiveCfg = Release|Arduino Genuino Zero (Native USB Port) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Release|NodeMCU_1 0_(ESP-12E_Module).ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Release|NodeMCU_1 0_(ESP-12E_Module).Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Release|VisualGDB.ActiveCfg = Release|Arduino Genuino Zero (Native USB Port) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Release|x64.ActiveCfg = Release|Arduino Genuino Zero (Native USB Port) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Release|x86.ActiveCfg = Release|Arduino Genuino Zero (Native USB Port) | ||||
| @ -107,8 +113,8 @@ Global | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|Arduino Genuino Zero (Native USB Port).Build.0 = Release|Arduino Genuino Zero (Native USB Port) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|Mixed.ActiveCfg = Release|Arduino Genuino Zero (Native USB Port) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|Mixed.Build.0 = Release|Arduino Genuino Zero (Native USB Port) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|NodeMCU_1 0_(ESP-12E_Module).ActiveCfg = Release|Arduino Genuino Zero (Native USB Port) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|NodeMCU_1 0_(ESP-12E_Module).Build.0 = Release|Arduino Genuino Zero (Native USB Port) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|NodeMCU_1 0_(ESP-12E_Module).ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|NodeMCU_1 0_(ESP-12E_Module).Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|VisualGDB.ActiveCfg = Release|Arduino Genuino Zero (Native USB Port) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|VisualGDB.Build.0 = Release|Arduino Genuino Zero (Native USB Port) | ||||
| 		{6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|x64.ActiveCfg = Release|Arduino Genuino Zero (Native USB Port) | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user